April 29, 2008

...Learn TDD with Codemanship

Conservation of Difficulty

Scientist, author and husband of the Lord President of Gallifrey, Richard Dawkins, wrote about his Law of Conservation of Difficulty. The jist of it is that obscurantism in an academic subject expands to fill the vacuum of its intrinsic simplicity.

Quantum Electrodynamics, for example, is a genuinely difficult subject. Other, perhaps less challenging, disciplines - and let's not name them here - conceal their lack of content behind a smokescreen of deliberate obscurity.

One wonders if the law might also apply to the complexity and/or obscurity of software designs. Over the years I've noticed that, while developers dealing with genuinely challenging problem domains often strive to simplify as much as they can, other developers working on much simpler applications can tend towards gold-plated, future-proofed solutions with bucketfuls of factories and strategies and builders and bridges and commands and visitors and all manner of concepts that bear little if any relation to the problem at hand.

What do you think?

Posted 10 years, 3 months ago on April 29, 2008