Jun 08

My previous post about software project entropy was slightly abstract. I thought I should therefore address this in light of more thought about the subtleties of software engineering and planning for software projects.

Previously the context of the post was the disconnect between management expectations and practicality. Software projects are very difficult to plan accurately, primarily due to the means of production; people and more importantly, their imagination. Consider this scene: an open top bus with cats in it. Abstract, because the effect I want to explain is much more pronounced when dealing with new or uncommon concepts. If you were to ask a group of people to describe this scene to you, with no additional input on the scene, you would get a series of very different descriptions. This may seem obvious but the issue here is that they will all describe the same thing.

Extrapolate this situation to a low level requirement for a software product. The person defining the requirement needs to make sure that the need us expressed as clearly as possible. The designer will need to understand that need and design a solution that closely meets the need. Obviously working together will drive consensus. Usually the next step would be for an engineer to produce the code to meet that need. Again the variance in interpretation needs to be closely managed; are those cats tigers or British Blues?

This whole process, especially when working cross functionally, across different teams, requires a whole array of supporting activities to ensure alignment, a common view and a high level of fidelity against the original need. Failure to do this will result in ignorant divergence from the spec. and consternation all round.

The way that these activities are usually managed is through process; an inefficient scourge to most passionate developers.

True, all this process does introduce a relatively high level of overhead to the proceedings but the alternative is failed projects, duff products and worst of all, unhappy customers. The human factor in most production industries is removed, automated to ensure repeatable results and also speed. Humans are left to the tasks which are currently too expensive to automate or those that require thought and/or intuitive decision making.

So, given that software doesn’t yet write itself (this may be changing) the processes introduced to all but the most creative of startups, is designed to automate the human element and mitigate the entropy present when a series of talented imaginations get together to solve a shared problem.

The initial payoff may seem remote and abstract to higher management and non technical functions but over time and with an eye on suitability if your processes, you can achieve a relatively high level of human automation which will serve your confidence in delivery, your roadmap, your customers and therefore your business.

[Post to Twitter] Tweet This Post 

Leave a Reply

Tweet This Post links powered by Tweet This v1.3.2, a WordPress plugin for Twitter.