Monday 23 April 2007

Anti-patterns

An anti-pattern is a literary form that describes a commonly occurring solution to a problem that generates decidedly negative consequences [1].

If a pattern represents a “best practice”, then an anti-pattern represents a “lesson learned.” Initially proposed by Andrew Koenig in the November 1995 C++ Report, there are two notions of "anti-patterns [2].”

1. Those that describe a bad solution to a problem which resulted in a bad situation.
2. Those that describe how to get out of a bad situation and how to proceed from there to a good solution.

People think that the presence of patterns are really important in successful development of a system which is right but in the meanwhile the presence of anti-patterns make that system robust which is not being accepted and considered at a wider scale.

Writers Brown Malveau, McCormick and Mowbray wrote a book called Anti-Patterns in which they spoke about refactoring software, architectures, and projects in crisis. It is their aim to go one step beyond to recommend a course of action for alteration, recuperation, and prevention [2].

They show us how to turn lemons into lemonade and how to avoid subsequent lemons, leading us away from the misfits of anti-patterns, and back towards the patterns that resolve them [2].

References:
[1] http://www-128.ibm.com/developerworks/webservices/library/j-bitterjava/index.html
[2] http://www.cmcrossroads.com/bradapp/docs/patterns-intro.html#KindsOfPatterns

1 comment:

Daljit @ Dil said...

Hi Asmat

I agree that anti-patterns make the system robust.

This creates and oppurtunity to further investigate on the issues in depth rather than over looking the tiny aspects. Most of the time the problem occurs because of not understanding the need on the client.

Goodday!