By Juan Manuel Vilmaux, Senior Project Manager at Santex
No single technique or engineering process can guarantee 100% success in software development. In fact, picking a software development approach has more in common with joining a cult than it does with making a technical decision. Too often the human element of the process is overlooked.
Another factor is that many companies will not even attempt to evaluate different methodologies, but simply embrace the most popular or trendy one. The fact is there are a vast number of methodologies and techniques that, if chosen correctly, can make our work easier and more efficient.
Closer to art than engineering
As opposed to an assembly line where the definition and setting of a series of steps and procedures can ensure that the quality of a final product will be equally reproduced over time, software development usually demands a more flexible approach and less rigid control over the production process. In this industry, error margins cannot be minimized by introducing cutting-edge machinery because production is mostly dependent on the capabilities of error-prone humans, such as Developers, Analysts, Testers, and Project Managers. With this in mind, let’s now focus on how to deal with software development, something that, to my personal view, is closer to art rather than engineering.
There are about 55 specific software development methods that are currently in use in software development, and an even larger number of hybrids exist. Waterfall, Prototyping, Incremental Development, Spiral Development, Rapid Application Development (RAD), Rational Unified Process (RUP), V-Model Development, and Agile, all add up to an extensive list of methodologies that Project Managers should consider when defining a project.
The Silver Bullet is nowhere to be found yet
Until now, none of these methodologies has proven to be the Silver Bullet, meaning we have to use our own criteria and select the one that best suits our needs, our team, the project, and the type of customer/user as well. Some methods are better suited for small applications and limited teams while others perform better on large systems and numerous teams, still others work well for highly complex embedded apps and others thrive in high-speed web development.
When dealing with uncertain conditions (A.K.A software development) one needs to be as adaptable as possible and be prepared for dynamic changes in requirements and additional client requests. It’s just about unavoidable! It is this contingency in the different development environment that leads me to prefer using Agile methodologies. Agile denotes “the quality of being agile; readiness for motion; nimbleness, activity, dexterity in motion.” This type of approach has given me excellent results during the last eight years, over a traditional PMI one; an approach like waterfall or any other heavy weight management technique.
In my next article, I will explain why it’s critical to understand that there is no magic bullet that can lead us to success when dealing with software development. Project Managers need to adapt and focus on how much business value they can deliver to the project they are coordinating.
About the Author – Juan Manuel Vilmaux, a detail-oriented Project Manager at Santex, with more than eight years of experience in the IT industry has led worldwide project teams to achieve outstanding results for Tier 1 customers. Over his career he has led more than 50 projects and has worked for several verticals including financial services, healthcare, eCommerce, gaming, marketing, telecommunications, among others.
- Evaluating Agile and Scrum with Other Software Methodologies. See more at: http://www.infoq.com/articles/evaluating-agile-software-methodologies
- Agile software development methods. See more at: http://www.vtt.fi/inf/pdf/publications/2002/P478.pdf
Copyright (C) 2013 Santex Group, 1535 Linden Street – Suite 201 – Des Moines, IA 50309.