The Pragmatic and Practical Design Template (Discussion)


(Just Jump to Design Template)

We are all designers at heart. When we are little we construct models with play-doh and virtual worlds with crayons. But somewhere along the way, particularly in engineering domains, we lose this view of design as a simple model of reality and instead insist that a model must be as close to reality a possible. A design is a plan -or probably more correctly “a guess”- for something you want to create. Its only purpose is to get you from the “thinking about” to the “building” stage as quickly-and reasonably-as possible. For some domains, space travel and nuclear power for instance, you need this stage to be much more precise and deliberate, but fortunately few domains require this level of fidelity/reliability. Particularly in quick-to-release and prototype software, you need the design stage to be quick yet useful and add value. You don’t want to invest a bunch of effort in a model that isn’t the final thing you are going to use, but you do want to show that you have at least thought about that thing in advance.

I’ve been thinking about Software Design lately because I need people to do (and want to do) this activity, i.e. show that they have thought about and planned things beforehand, but even after many years I’m still not sure the best means to achieve this end. I’ve read lots and lots of design documents and rarely are they instructive or useful. These things can cost a lot of money and time to produce, but rarely do they return tangible benefits – mainly because most of the software designs/plans/guesses are out of date as soon as they are written. In fact, the only designs I even remember actually reading and using are the ones that defined some type of data interface contract, and that was because this contract didn’t change (or change much).

So maybe it is time for a different approach to the standard “Design Document.” Perhaps a better approach is just a couple back-of-the-napkin, top-level diagrams + a simple FAQ that answers some of the most important questions. The top-level diagrams show that you have thought about this at some level of abstraction and that you can show the major parts. The FAQ is used to make a convincing argument for building this thing and the approach used. The right set of questions might even be applicable to a wide range of projects, from remodeling your bathroom, or having a medical procedure, to multi-million dollar software projects.  This FAQ answers the basic and paramount questions of “Would you do this yourself? And spend your own money on this?”

For any design or other explanatory write-up, the FAQ questions you should be able to answer (and answer clearly and concisely) if what you are planning to work on is useful and worthwhile are:

(Jump to Design Template)


Design Tools

Design Tools (CC2 – Paul Stein – Original Image:


1 Response to “The Pragmatic and Practical Design Template (Discussion)”

  1. 1 The Pragmatic and Practical Design Template | The Software Foundry Trackback on April 1, 2014 at 10:53 am

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: