Today we all acknowledge that Communism was wrong: but how come it took so long for the Berlin Wall to fall, when many people knew that it was wrong long before it happened?
Well, the software development community is facing its own Berlin Wall. The waterfall model of software development, where software is developed in a sequential process in which progress is seen as flowing steadily downwards, like a waterfall, is an antiquated system - and just like Communism, we know that it is wrong, and have since the very beginning of software development.
But somehow, we have become stuck with it. We can blame this in part on the fact that too many people in the IT world are left-brain people. Right brain versus left brain: this theory of the structure and function of the mind suggests the two different sides of the brain control two different modes of thinking. It also suggests most of us prefer one mode to the other, to some extent.
Left and right
Left-brainers are logical, sequential, rational and analytical. Right-brainers think more randomly, intuitively and holistically. Left-brainers are individuals who like rules, embrace bureaucracy.
They feel comfortable with structure. (I am indebted to creativity guru Dr Kobus Neethling for his insights into left brain and right brain thinking.) The waterfall model gives them this and hence the appeal to this community. Most know there is a better way - just like the millions who lived on the eastern side of the Wall - but even though they know there is something better out there, they don't know how to implement it. Many attempts at improving software development typically fail because of an overly left-brained approach - excessive bureaucracy, rules, rigid structure and processes, and analysis paralysis.
This calls for a paradigm shift in the software development community, and they may not be ready for it. The point is, the waterfall is not working; over 80% of current application development projects fail to deliver against one of the axes of time, budget and user requirements. Like a doctor treating a cold, we patch projects up, but without considering the problem holistically.
Many people in software development will need to change: this is the core of the problem.
Ziaan Hattingh is MD of IndigoCube.
Looking at it from another perspective - we are process-"bedonerd". We need to take a step back and realise the process is not the important aspect of project development. People come first, then you can deal with the process and the technology. Developing software is intellectual work done by intellectuals.
Many people in software development will need to change: this is the core of the problem. People will need to become more agile in their thinking and behaviour, and this requires a different skills set. We need to give them the knowledge and skills that will change their behaviour. This isn't easy. It's like teaching someone to tie a shoelace - you can show them how, but put into practice they are bound to fail a couple of times until they conquer the required skills they need to actually be able to tie their shoelaces, and in doing so, change their behaviour.
Agile world
This is where the right-brained people need to come in. We need people who can take a step back and look at the bigger picture, people who respond rapidly when change is needed - agile people.
The agile approach to software development is based on smaller, shorter iterations, with working software developed every few weeks. In the agile world, some sort of high-level plan is needed that can be broken down into the required iterations according to the priorities of the business.
These iterations are produced by a tight-knit development team, without traditional detailed up-front planning. The team, usually fewer than nine members, ideally all share the same physical environment, collaborate and communicate throughout the development of the software.
The idea is to bring workable code to the business in a much shorter period of time than that using other, more traditional approaches. This means the development team can change software requirements to suit the constantly changing needs of the business. The team deals with goalposts that are constantly moving, but it is no longer working on a large software development project, but rather enhancement requests.
This type of teamwork is the ideal environment for the right-brainer and why software development needs to attract people with more intuitive, holistic skills.
* In the next Industry Insight, I will look at the business requirements of an agile development project.
* Ziaan Hattingh is MD of IndigoCube.

