Sometimes I get confused. When this happens it can take a good smack to the ego to straighten me out. Ego or pride is the primary problem with knowing when to deliver and when to quit. Here are three points I remembered recently.
Everyone knows I’m a long time Apple user. So you can imagine there are a lot of interactions with Apple that form a fairly long, and at this point mostly positive story.
The introduction of catalogs of patterns has been a great advancement to software engineering. These collections of common solutions to common design problems are an excellent way to pass knowledge of the software engineering craft from one practitioner to another. I am happy to have several great texts from this category taking up valuable shelf space. Design Patterns, Patterns of Enterprise Application Architecture, the Pattern-Oriented Software Architecture series, Release It!, and Enterprise Integration Patterns are some of my favorite references that continue to be a source of inspiration whenever I encounter difficult design decisions. However, they are not the last word in software engineering that some engineers present them as. Acting as though pointing out that a pattern exists is a valid appeal to authority for using that pattern is like saying that serving seafood to those that are allergic is acceptable because the seafood was prepared using the recipe of a master chef.