One Thing To Rule Them All

One Thing To Rule Them All

Having “One Thing To Rule Them All” can be an antipattern in many systems. Probably the most common example of this antipattern is “One Database to Rule Them All,” in which a single database is used by dozens of applications … Continued
Copy Paste Programming

Copy Paste Programming

Sometimes you need to make a change that’s similar to one you’ve made before, or you have some logic that’s performed in more than one location, and it needs to change.  The temptation, of course, is to simply copy the … Continued
Fast Beats Right

Fast Beats Right

The Fast Beats Right antipattern alleges that it is always better to just get something done, regardless of quality, than to invest any effort into doing the job right.  In software development, this quickly leads to taking on Technical Debt, … Continued
Waterfall

Waterfall

Waterfall, or Waterfail, is a rigid software development life cycle methodology that moves all activity through a series of stages, such as Gather Requirements, Design, Develop, Test, Deliver, Maintain.  The first article describing this model (Managing the Development of Large … Continued
Smoke and Mirrors

Smoke and Mirrors

The practice of showing a customer “smoke and mirrors” and then hoping the engineers or developers can build it has been around for as long as sales and marketing people have had jobs.  As long as what’s being sold can … Continued
Feature Creep

Feature Creep

Many software products die an earlier death than necessary because of feature creep, by which additional bits of functionality are continually added.  Feature creep (also commonly known as scope creep) is often responsible for delays in shipping or delivering software, … Continued
Frankencode

Frankencode

Frankencode refers to code that was never designed to work together, being pulled into a single application and held together with duct tape, baling wire, and maybe some Adapter design pattern usage. While software reuse and composability are desirable, frequently … Continued
Duct Tape Coder

Duct Tape Coder

The Duct Tape Coder is someone who is able to cobble together software that solves the immediate problem, but without any concern for the code’s quality or maintainability.  Sometimes, a bit of duct tape is exactly what the situation calls … Continued
The Blob

The Blob

The Blob is an anti-pattern that describes a class which resembles the monster from the 1958 film The Blob, which absorbs anything it touches and grows larger and larger over time. Such classes are similar to God Objects and over … Continued
Iceberg Class

Iceberg Class

Although encapsulation is an oft-sited good thing to have in a design, there are many cases in which hiding an abundance of implementation behind private methods is undesirable.  Often, this behavior is beyond the actual scope of the class in … Continued