This is a kind of software development methodology if you like. If you are familiar with the game Buckaroo this will make more sense.

The general scheme is thus...

  1. Design an build a nice simple clean system using your favourite methodology
  2. Add or modify functionality over many years without regard for consistency ignoring the developers cries for a total redesign. But be careful it might 'Buckaroo'!
  3. Repeat previous step until all developers with any knowledge of the system either crack up or leave.

This is a scheme I have been forced to apply to a system I maintain for many years now. It now contains acres of functionality that is no longer used. A lot of the stuff that is used - that I wrote - I can't remember for the life of me how it works. Also, several parts of the system are used in ways it was never designed for and the customer has never really explained this to any of the maintainers.

The upshot is that we are now left with a system that should be simple but looks like Frankenstein's monster and it is terrifying several developers.