Keep It Simple

Simplicity–the art of maximizing the amount of work not done–is essential.

This can be a hard one for really smart people. After all, if you know you WILL need something, why not build it now? Or if you know you MIGHT need something, isn’t it better to create it while it is fresh in your mind? The answer is NO, and for so many reasons.

  • If you don’t need it now, it doesn’t add value now
    The goal is always to deliver value to the business. Something which won’t be used until later is adding no value to the business. Always try to consider an alternative way of breaking up the work to be done so that the parts delivered add value as soon as they are delviered.
  • Future features may never make it into the product
    Realize that anything not accepted for delivery during this iteration may never make it into the product. Newer, better, more important features may be discovered (or legislated into existence) which make everything else you had planned to do obsolete or unimportant.
  • Keep the cycle time short on pieces of code
    If you write a bunch of code that won’t be integrated to for another several weeks or months, then by the time you get around to doing the work of integrating them, the code will no longer be fresh in your mind. In fact, it may not even be you doing the work. When you finally start finding defects, it will be harder to debug and fix. Much better to do it all at once, whenever possible.
  • A good architecture is extensible
    If your architecture is sound, you should be able to build the hollow shell of the components you need, get them talking to one another, and then start implementing the detailed behaviors that are required by those components on an as-needed basis. Forcing yourself to do this will help you to choose good architecture from the very beginning. It will also help identify hidden assumptions and problems sooner rather than later.

You choose how the product is built. Choose the path that gets you where you want to go in the fewest steps, overall. Do not be unnecessarily focused on the short term, but do not sacrifice the short term for the long term, either.

Trackback URI | Comments RSS

Leave a Reply