Defensibility as an touchstone for development decisions

The topic for this “Software Development Mantras” post is “defensibility.”

First, let me introduce the concept of “TIMTOWDI” (pronounced “tim-toady”). It’s an acronym for “there is more than one way to do it,” and software development may be unique in that for any given task, this holds true.

So, given N different ways of implementing the task at hand, which one is better?

If one way is dramatically simpler (either conceptually or implementation-wise), that may be guide your decision process.

If one way is especially more testable, that may indicate better separation of concerns, or at least lead to a provably correct solution.

I’ve found there’s a simple litmus test that is always applicable, though. Just put yourself in the developer’s shoes several months from now, who needs to work on this codebase, and ask yourself: “which solution is the most obvious, least surprising, and most defensible.” It may seem like CYA, but it’s for a good cause — you don’t want the engineers of tomorrow putting your code on thedailywtf!

What other development truisms have you found?

Related posts:

  1. Deliberate Change Management
    Software engineering can be described as the orchestration of a quasi-denumerable set of moving parts. With so many moving parts, breakages occur. One main goal as a “software craftsperson” is......
  2. Completely Correct DRY Simplicity
    This is the first in (what may be a series) of posts where I’ll share some concepts, or mantras, that I’ve found helpful in my experiences with software development. The......

This entry was posted in Software Development Mantras and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">

Additional comments powered by BackType