- June 15, 2012
- Posted by: admin
- Category: Blog
Different research on the the software industry conclude that nearly 90% of all the software projects ‘fail’ and an average of 10% of projects are completed on time and in budget. Interestingly this success rate is decreasing for large companies as well.
Many, however questions that what defines a failure project? Unfortunately, it is as difficult to define a failure as it is to define a success. Let’s leave this question aside and get a bit of context.
In the depths of engineering history, it is found that there are strong parallels between software engineering and civil engineering. Practices of civil engineering have been long established and known to work well. Taking the disciplines of civil engineering as an abstract model and adopting them to software engineering principals and methodologies became the natural course. After all, the goals of both these engineering disciplines are very similar to build a simple solution while working with many complexities.
Let’s get back to the failure analysis.
After adopting, applying and practicing many civil engineering ideologies and even going so far as changing the dynamics of software engineering’s methods, the failure rate remained consistent over the past decades. Irrespective of how you define ‘failure’. This certainly raises questions over existing software development methods.
A very typical example that could be observed in every applied side of software engineering i.e. software development is a quarrel between sales and development team. Sales teams believe that adding an extra resource (labor) will help speed up building complex software (wall). When it comes to a change in requirements, a major change in already established building is impossible however in software it is usually taken for granted.
In the early 2000’s, giants of software engineering sat together and proposed an alternative solution to these classical problems.The new philosophy towards software engineering, yes you guessed it right, “Agile Software Development”. Though, it is not new per se, establishing it as a philosophy towards complex software development life cycle had some acceptance issues.
Agile approach promotes adaptive planning, incremental development and iterative approach to responding to change. A small manifesto has been established, called Agile Manifesto which reads;
“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.”
The Western world has almost moved to this incremental software development approach and this philosophy has already been adopted by well-known software giants such as Microsoft and Yahoo with definitive success stories. Regardless of the fact which ideology you follow, it is worth studying Agile Development success stories spread out over the internet.
I believe that all of software industry needs to speed up in realizing these new dynamics of Agile Development for its own survival. Software companies, new and old need to look at their working processes and start implementing what they can from these methods to develop better, faster and more flexible solutions.