Category Archives: Programming Philosophy

OOMP: Pitfalls

Over my career, I’ve come to realize there are some important truths that you should keep in mind. The senior people have experience. Pay attention to them. Senior people have seen more and likely have insight into subtle and/or complicated issues. They do not always have insight into your issue. But, their experience should not… Read More »

Aphorism Driven Development (ADD)

Over the years I have noticed a habit among some developers that I’ve come to call Aphorism Driven Development. Many best practices are taught and remembered through the use pithy statements. Although these statements are easy to remember, they can’t capture the full context and connotations of the practice in question. If someone never learns… Read More »

Fundamental Design Principle: YAGNI

Every bit of code we write is the result of trade-offs. Some seem like no-brainers: what language to use, which paradigm to use. Others are more subtle: how important is speed/maintainability/memory, fail fast or never fail, fix a bug quickly or rewrite to prevent that class of bugs. One of the big trade-offs is between… Read More »

BPGP: How Best Practices Go Bad

There are a few reasons that Best Practices get specified in a profession. Provide standards for judging proposed solutions. Provide cover for unforeseen circumstances. Provide a starting point for discussions to improve the state of the art even more. Help more junior people make better decisions before they fully understand the field. Applied to software,… Read More »