Author Archives: G Wade Johnson

BPGB: Frost-Bitten Features

In some environments where I’ve worked, new features were being added and bugs were being fixed up until the very moment that the code was released. This obviously leads to problems where one change generates new bugs that we have not yet had time to find, much less fix. Consequently, another buggy release goes out… Read More »

20 Years of Design Patterns

As I’m writing this in December of 2014, I’ve been reminded that the classic Design Patterns book came out in 1995, almost twenty years ago. I didn’t see the book until a year or two later. Reactions I remember several reactions from the programmers I was working with at the time. Most of the programmers… 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 »