Friday, October 29, 2010

Software Antipatterns : The Golden Hammer


A "software pattern" is a predefined and accepted solution for a specific software problem. Similarly, a "software antipattern" is a predefined and accepted unsuccesful solution. It's known as a bad solution, and should not be used.

The Golden Hammer Antipattern

The Golden Hammer can be defined as an architecture, a solution or a software tool that is believed to be the best solution for every software problem/project. 

If a software team had successful experiences with a software architecture, tool or solution they may want to use that in every other problem/project. Especially if that experience had a success in the past, this probability will be higher. Or if that experience had been costly for the company and new experiences will be more costly, managers may not give resource for new techniques.

There can be other causes: The software team either don't want to learn new technologies and techniques, so they want to use their "known" technology/technique in every problem or they are not aware of the growing world of technology and new solutions.

For example, "using well known software patterns in every software project" is a golden hammer antipattern. Because of one or more causes told before, this approach can be used and probably will be harmful for the software. And maybe it will not be corrected in the future because of project calendar.

Eventually, each software problem/project is different is its own context. And must be evaluated in its own cases. Using same approaches for every problem is dangerous.

1 comment:

  1. Wow, Fantastic Blog, it’s so helpful to me, and your blog is very good,
    I’ve learned a lot from your blog here, Keep on going, my friend, I will keep an eye on it,