Archive for October, 2009

On Complexity, Complication, Surgery and Software

Orthopedic surgery can be a complex endeavor.

No useful piece of software can be rid of complexity.

The well-trained surgeon will steer his or her scalpel clear of tendons and arteries to avoid unnecessary complication in order to ensure the operation’s success.

The well-trained software engineer will work within existing systems and problem domains to achieve a project’s goals without unnecessarily affecting elements of the environment which do not directly concern the problem at hand.

When a surgeon takes a shortcut through a tendon to get at a patient’s ailment he introduces a complication which significantly impacts the scope of the operation. The patient may be off the table more quickly, but will probably enjoy less mobility and spend more time in physical therapy as a result of such unnecessary incursion.

When a software engineer jumps to development without taking the time to design the solution in a way that sufficiently minimizes the software’s complexity, he inadvertently introduces a host of complications which can affect not only the quality of his own software but also the quality of others’.

Beware of unnecessary complication and take the time to manage complexity before it manages you.