Friday, 24 January 2014

The Anti-Pattern Game

Last week a fellow IT professional and I, came up with The Anti-Pattern Game

The mechanics are very basic:

Wikipedia has a handy page with a number of Anti-Patterns

  • You add a point for each anti-Pattern listed in the Wikipedia article currently in use in your Company/Project.
  • You subtract a point for each anti-Pattern listed in the Wikipedia article that was used in your Company/Project but no longer is.

You get bonus points for anti-patterns in use but not listed in the article and not covered by the ones listed.

So how did my project do?

  • Escalation of commitment: Failing to revoke a decision when it proves wrong.
  • Management by perkele: Authoritarian style of management with no tolerance of dissent.
  • Management by objectives: Management by numbers, focus exclusively on quantitative management criteria, when these are non-essential or cost too much to acquire.
  • Mushroom management: Keeping employees uninformed and misinformed; employees are described as being kept in the dark and fed manure, left to stew, and finally canned.
  • Avalanche: An inappropriate mashup of the Waterfall model and Agile Development techniques.
  • Scope Creep: Uncontrolled changes or continuous growth in a project’s scope, or adding new features to the project after the original requirements have been drafted and accepted. (Also known as requirement creep and feature creep.)
  • Bystander apathy: When a requirement or design decision is wrong, but the people who notice this do nothing because it affects a different group of people.
  • Stovepipe system: A barely maintainable assemblage of ill-related components.
  • Boat anchor: Retaining a part of a system that no longer has any use.
  • Error hiding: Catching an error message before it can be shown to the user and either showing nothing or showing a meaningless message. Also can refer to erasing the Stack trace during exception handling, which can hamper debugging.
  • Lasagna code: Programs whose structure consists of too many layers.
  • Tester Driven Development: Software projects in which new requirements are specified in bug reports.

We've also dabbled with the crunch mode anti-pattern but it seems on as needed basis, thus not sure how to score it, so I have left it out.

In red is an anti-pattern the project no longer engages in.

My current project achieved a respectable: 10

To be fair, some of the anti-patterns are direct results of the technology used but still, 10 seems like a respectable score.

What about yours?

No comments:

Post a Comment