Is Agile the Right Software Development Life Cycle Model for Me?Go Back
- Posted by Sanjay
The days of waterfall development’s dominance are long gone as a number of alternatives have sprung up to challenge its reign. Today programmers and quality assurance professionals have a wider range of methods to choose from, each placing importance on different factors. Choosing an overarching method to guide development and testing processes should ultimately come down to which one best meets the needs and capabilities of a particular team or organisation. It can be difficult to pick a right Software Development Life Cycle Model. Forcing an ill-suited methodology on QA members is a recipe for disaster and may result in significant performance issues. In some instances, a poorly executed shift in development ideology can lead to more inefficiencies and worse output than what was observed with traditional approaches.
Is Agile The Answer?
Agile is perhaps the most well-known and widely sought-after methodology in the software development community. As first outlined in the Agile Manifesto, the tenets of this approach focus on the importance of collaboration, flexibility to changing conditions and continuously delivering finished products in a short window of time. When implemented correctly, agile can dramatically improve the performance of a QA team, helping members to roll out high-quality software that meets the demands and expectations of end users. In a continuously changing environment such as software development process where standards shift at a moment’s notice, the ability to dynamically alter a project to better meet emerging trends can be a major boon. Scrum offshoots of agile have enjoyed their own success with programmers looking for an alternative to waterfall that addresses their particular concerns while accentuating the skills and talents of team members. Scrum, for instance, places a great deal of importance on individuals convening and laying out their next plan of action.
As OneDesk contributor Kimberley Chan explained, Scrum echoes agile’s dedication to collaboration and communication, stressing the need for team members to come together at regular intervals to view the progress made by individuals as well as the state of the overall project. These include planning sessions for future development sprints, reviews of those efforts and the famous daily scrum meetings, where individuals assemble to ensure that everyone is on the same page. Some industry experts have criticised this approach due to some of its similarities to waterfall. For instance, Deloitte Digital’s Paul Gambill stated that the sprint-based structure of Scrum projects essentially breaks up the process into smaller waterfall-based developments.
Other programmers have questioned the ultimate value of holding so many meetings, wondering if the collaborative benefits of this approach might be offset by the amount of time that could have otherwise been better spent. Such concerns helped give rise to the lean school of development, which focuses on eliminating any and all unnecessary processes so developers can focus on delivering quality software quickly. Many organisations that have shifted to a lean approach have seen performance of their software production efforts increase. Dr. Dobb’s contributor Scott Ambler recently reviewed the results from a survey measuring IT progress success rates. According to his analysis, organisations that followed lean tactics completed a project on time and meeting certain criteria for success 72%t of the time.
Should We Go Lean?
Meanwhile, 64% of the projects carried out by agile adopters saw the same levels of performance. Does that mean developers should dump their current methods and go lean? Not necessarily. Effectively migrating to a new software development approach isn’t as easy as flipping a light switch. It takes time to bring team members up to speed and overcome initial growing pains. Before making any sweeping changes, QA management should take stock of the personnel available and identify their various strengths and weaknesses. With this information in hand, they can make more effective decision regarding the approach they adopt.
Agile can be a useful tool for any development team.