Shiny Toy

Shiny Toy

The Shiny Toy anti-pattern refers to the practice of always thinking today’s problems can all be solved by the latest bleeding-edge tool, technique, or library. While it’s true, the software industry is constantly trying to improve and evolve, new approaches … Continued
Static Cling

Static Cling

Static Cling is a code smell used to describe the undesirable coupling introduced by accessing static (global) functionality, either as variables or methods. This coupling can make it difficult to test or modify the behavior of software systems. Consider the … Continued
Not Invented Here

Not Invented Here

Organizations and individuals who refuse to trust anything they didn’t create themselves spend important resources reinventing wheels and other commodities when they could be spending those resources on the key features that differentiate their product from its competitors. See Also … Continued
Code Smells

Code Smells

Code smells, or bad smells in code, refer to symptoms in code that may indicate deeper problems. They’re a diagnostic tool used when considering refactoring software to improve its design. Not all code smells should be “fixed” – sometimes code … Continued
Calendar Coder

Calendar Coder

Featured in the 2012 Software Craftsmanship AntiPatterns calendar, the Calendar Coder antipattern is a play on the notion of cargo cult programming.  The problem in both cases is the lack of thought and understanding on the part of the developer … Continued
Broken Windows

Broken Windows

Small problems, left uncorrected, signal a lack of care about the state of things. Hence, discipline degrades and problems multiply. Combat code rot in your application by agreeing to and following coding conventions and standards, and by practicing the Boy … Continued
Spaghetti Code

Spaghetti Code

Featured in the 2012 Software Craftsmanship AntiPatterns calendar, Spaghetti Code refers to that has a tangled and hard to follow structure, especially one in which following the actual flow of the program is difficult. Different programming languages have different constructs … Continued
Antipatterns

Antipatterns

Antipatterns are simply design patterns that in many cases introduce more problems than they solve. Sometimes these are coding patterns, while others describe problems within teams or organizations. Alphabetical list of antipatterns: Anemic Model Assumption Driven Programming The Blob Broken Windows … Continued
Golden Hammer

Golden Hammer

The Golden Hammer refers to a language, tool, or platform with which the developer is comfortable and productive, so they are tempted to use it for any problem that presents itself.  As the saying goes, “If all you have is … Continued
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