Zero email, how to get things done! Part three: The last mile, becoming Zero email Ascent magazine: A magazine into the future of our ever-more connected planet Ascent Lookout 2014 Happiness@work – Spread a little happiness What is your future in this ultra-connected world?

The Simplicity Advantage

Over the last couple of months I have found myself thinking time and time again of this quote attributed to Bruce Lee:

Atos The Simplicity Advantage“One does not accumulate but eliminate. It is not daily increase but daily decrease. The height of cultivation always runs to simplicity.”

When working on or reviewing technical architecture, software designs or code I always feel un-easy if the solution is starting to seem complex or big. For some, size and complexity may appear impressive but, for me, creating great software is about finding simple solutions. Why do I think this? Three reasons:

Simple solutions enable you to be more agile.

Projects need to be agile to support the businesses of the future which will be agile. Complex solutions do not lend themselves to agility. In Getting Real (an eBook from 37signals who created BaseCamp, CampFire and Ruby on Rails) this is described aptly:

“You’d think that twice as much code would make your software only twice as complex. But actually, each time you increase the amount of code, your software grows exponentially more complicated.”

It goes on to describe how reducing the size and complexity of the code reduces the level of management required, the amount of maintenance work and the number of bugs.

This matches my experience. As I described in this post, reducing the size of a code base enables you to innovate more rapidly and reduces the cost of maintaining and updating your product.

Simple solutions require significantly less effort to develop.

It stands to reason that if you are writing fewer lines of code then your project can be completed in less time. But there are other savings as well. As Jamie Arnold put it in his post about the agile delivery of a large government project:

“Had we focussed on fewer things from the outset, the overhead of getting people up to speed and the additional communication needed to manage this would have been far less and our momentum would have increased. Lesson: We should have committed to doing less.”

Simple solutions allow you to deliver more value.

It is my belief that all projects should aim to deliver as much value as possible, as quickly as possible. Choosing a simple approach enables this. This idea challenges the notion that you should always deliver exactly what is requested/required at the outset. Getting Real has advice in this area too:

“The key is to restate any hard problem that requires a lot of software into a simple problem that requires much less. You may not be solving exactly the same problem but that’s alright. Solving 80% of the original problem for 20% of the effort is a major win. The original problem is almost never so bad that it’s worth five times the effort to solve it.”

Sometimes this may mean changing a business process to fit a simpler software solution. And if you do decide to change a business processes you may well find that it can benefit from a reduction in complexity in the same ways that software does.

In summary…

Perhaps all of this advice is best summed up by a quote widely attributed to a man who evidently knew a thing or two about software development, Bill Gates:

“I choose a lazy person to do a hard job, because a lazy person will find an easy way to do it.”

Image source: Flickr.com


Categories: CIO Agenda, Technology
David Daly

David has worked within the IT industry for over 14 years. In that time he has worked variously as a developer, analyst, technical architect and project manager. He now runs a team of 8 software developers responsible for delivering software that is used by over 1500 railway stations across the UK.He has successfully delivered numerous software projects and enhanced software development practices. Furthermore, by building close relationships with clients, he has strongly aligned the activities of his team with the commercial goals of his customers.David often challenges conventionally accepted wisdom and has a passion for proving that alternative approaches can produce better results.He lives in Nottingham with his better half, his 2 year old daughter and a female cat called Bob.Outside of work David enjoys running, climbing, walking, skiing and playing piano in a 60s covers band.

2 Comments »

  1. JF James says:

    Fully agree, some quotes I would like to share about simplicity:
    - “Deleted code is debuged code” from J. Sickel,
    - “The computing scientist’s main challenge is not to get confused by the complexities of his own making” from E.W Dijkstra,
    - “Today’s abstraction are tomorrow’s restriction” from D. Blevins.
    The disctinction between essential complexity and accidental complexities made by F. Brooks is also very interesting:
    - essential complexity: inherent to the problem to be solved, not avoidable,
    - accidental complexity: caused by the approach to solve the problem, non-essential and avoidable.
    So let’s adopt the KISS attitude !

  2. Niall Teskey says:

    This exactly the point that Prof. Dijkstra made in his Summer School on Computer Programming nearly 30 years ago, ‘Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.’ In the intervening years a vicious circle has developed between system vendors who want to sell ever more complex IT systems to boost their profits, and system owners who want to buy the latest systems to increase the prestige of their business unit. So in this age of Green IT, what should we do when asked to host an overly complex system with 100’s of servers that could be delivered much more simply with far fewer servers? Should we turn a blind eye to the unnecessary complexity and accept the hosting charges for all the servers or should we tell the customer “Keep it Simple Stupid”.

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>