s.i.m.p.l.e.

No blog would be complete without a post on simplicity, so here’s mine. Simplicity is:

  • The ultimate sophistication
  • Taking a pencil into space
  • Ditching basecamp … if it doesn’t do half what you want, then its simple to stop using it

When it comes to building software, keeping it simple can mean anything, or nothing. Is less features simple, or is it simpler to have the tools at hand to do the job? Is better design simple, or is less design simple? Is less engineering simple, or is more engineering simple?

Here are six trade-offs for keeping software development simple:

S Scope Keeping the scope simple means less complexity, but less product. Keeping the scope simple is a good divide-and-conquer strategy, but needs to be done within a bigger context to ensure its not just scatter-gun approach for developing features.
I Interface Keeping the interface simple means a lot of design and testing and hiding and automating complexities, which can mean more logic and more complicated engineering.
M Maintenance Keeping the maintenance simple means good engineering and architecture, but with more cost and less-simplicity up-front.
P Planning The most simple approach is to take the first and most obvious solution, but is likely to mean more complex scope and interface and can result in building the wrong thing.
L Logic The fewer business rules and behind-the-scenes smarts, the simpler it is to understand and build, but needs to balanced with the scope. To simplify logic without simplifying the scope will lead to under-engineered software. To simplify the scope will naturally lead to simpler logic.
E Engineering Doing proper R&D and architecture will give a simpler, more elegant solution, but requires more work upfront and isn’t the simple approach of ‘just building it’.

Focusing on keeping the scope, interface and maintenance simple is a good thing. Trying to make the planning, logic or engineering simple is a bad thing.

All this aside, the most important factor to keep simple is the cost/benefit. As Joel Spolsky says, “With six years of experience running my own software company I can tell you that nothing we have ever done at Fog Creek has increased our revenue more than releasing a new version with more features. Nothing.”.

3 Responses to s.i.m.p.l.e.

  1. Jim Cheetham says:

    Actually NASA did take pencils into space for their earlier missions. The whole Space Pen thing was an independent product, that just advertised as if NASA had asked them to design it.

    The pencils weren’t very good, though – the particles from broken points gummed up the air filters, and they would burn happily in the high oxygen concentration atmospheres used in early missions.

    I can’t find a reference anywhere at the moment, but I remember that Russians alledgedly took ordinary disposable pens up and used them successfully, more recently.

  2. Andrew says:

    So something that appears simple isn’t so simple after all. An even better analogy of software. Thanks Jim.

  3. Tom says:

    Great article, must remember this next time I speak with clients :) . Anyway isn’t software always simple, just comes down to time and money, right??

    Keep it up.

    Cheers

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Connecting to %s

Follow

Get every new post delivered to your Inbox.