There are over 55 software development methodologies known so far. Choosing an appropriate methodology for your project depends on the size and type of software applications(Jones, 2013, para. 2). The following figure shows various stages of a typical SDLC:
A traditional approach called the waterfall has sequential development stages where you start from one stage, complete it and then move on to the next stage. You cannot go back so if there are any changes in the requirement, you will have to redo the whole thing from the beginning. So this approach is very inflexible and risky as defects were discovered at the late stage. Several other methodologies such as Spiral, Extreme Programming and Rational Unified Process were created to overcome the drawbacks of the waterfall model.
In recent years, one of the newer methodologies called Agile is becoming very popular, and many software companies are moving towards this approach. Agile is an efficient methodology for developing and maintaining high quality software by following an incremental and iterative approach.
“Agile methods are based on adaptive software development methods, while traditional SDLC models are based on a predictive approach”. (Stoica, Mircea & Ghilic-micu, 2013, pp. 70). The traditional SDLC depends fully on requirement analysis and detailed planning at the beginning of the cycle. The agile model has no detailed planning as the team adapts to dynamic changes in product requirements. (Stoica et al, 2013, pp. 70). In the traditional approach, testing is done after the coding is completed whereas in agile, it is done in every iteration.
In the agile model, people and interactions are emphasized rather than processes and tools. There is more interaction with the clients, developers and testers, minimal documentation and a continuous delivery of working software. A software is developed in stages by dividing the release schedule into a series of iterations. Team members coordinate their activity with a daily standup meeting that runs at the beginning of the day for less than 15 minutes (Ambler & Holitza, 2012, pp. 24). The feature that must be implemented is converted into a user story. “A user story is a simple description of a product requirement in terms of what that requirement must accomplish for whom.” (Ambler & Holitza, 2012, pp. 25). A user story must have the following parts: Title: <a name for the user story> As a <user of persona> I want to <take this action> So that <I get this benefit> (Ambler & Holitza, 2012, pp. 25)
Agile can be used from smaller to medium projects. In case of large projects, since there is a lack of necessary design and documentation, it is difficult to assess the effort required at the beginning of the SDLC. The agile model can be used when new changes are needed to be implemented as it delivers software in an incremental manner making it less expensive to remodel.
- Ambler, S.W, Holitza, M. (2012). Agile for Dummies, IBM Limited Edition. Hoboken, NJ: John Wiley & Sons, Inc.
- Jones, C. (2013, March 20). Evaluating Agile and Scrum with Other Software Methodologies. Retrieved from http://www.infoq.com/articles/evaluating-agile-software-methodologies
- Stoica, M., Mircea, M., & Ghilic-micu, B. (2013), Software Development: Agile vs. Traditional. Retrieved from http://www.revistaie.ase.ro/content/68/06%20-%20Stoica,%20Mircea,%20Ghilic.pdf
- [Diagram of Stages in SDLC]. Retrieved September 14, 2014, from: http://www.tutorialspoint.com/sdlc/sdlc_overview.htm
- [Diagram of Agile model] (2012). Retreived September 14, 2014, from: http://istqbexamcertification.com/what-is-agile-model-advantages-disadvantages-and-when-to-use-it/