TyroCity

Discussion on: Software Development Strategies and what to consider while choosing what to use?

Collapse
 
dipadhungana profile image
DIPA_DHUNGANA

System Development Life Cycle (SDLC) is the process that incorporates planning, analysis, design, development, testing, implementation and maintenance of system/software. The software development strategies are classified depending on how they execute different stages of SDLC in developing a software (Wallace, 2015). The major software development strategies are:

Waterfall Strategy

The Waterfall model was proposed by Winston W. Royce in 1970. It is a linear and sequential approach for developing software where every preceding steps need to be completed before moving to the next stage. It is recursive in nature as each step can be endlessly repeated until it is perfected (Bassil, 2012). The output of one phase supports as the input for next phase in this model. Once a stage is completed, going back is complex, time consuming and not allowed in most cases. It is difficult to incorporate the changes that may occur after the process is started since the requirements and the procedures are predetermined and cannot be changed or modified once the process is started. Though this method is in use since decades, the success rate is very low, especially in the long-term projects.

Iterative Strategy

Iteration model, also known as incremental model focuses on compressing the time of software development to reduce the impact of changing business needs. Certain time frame is available for the completion of software development and then the requirements that can be delivered within the stipulated time is determined. Unlike in waterfall, the phases of SDLC can overlap in this model. The whole project is divided into small parts (iterations) and each iteration performs like mini waterfall model to complete the tasks assigned to particular group (Nugroho, Waluyo, & Hakim, 2017). The work of each iteration will lead to incremental achievement of the overall project goals.

Agile Strategy

Agile strategy is an adaptive model that requires active participation of the stakeholders. The involvement of end users make this strategy unstructured or less structured. In addition, activities are not sequenced as per SDLC and the phases of SDLC occur simultaneously (Wallace, 2015). It focuses on collaboration with the cohesive teams in software development process as they are the one who will be using the software. It also provides spaces for the accommodation and implementation of significant business changes that may occur during the development of software.

Selection Criteria

All software development strategies have their own significance and limitations and there is not any right or wrong method of software development. The choice of the strategy depends upon the nature of the project, organizational requirements and time and budget available for the purpose. The waterfall strategy is suitable when a clear picture of final product is available and the interest is on the final product rather than the time and money being the concern. When the requirements are well defined and are not subject to expected to change sooner, waterfall method is preferred. The developers opt for agile model when the requirements are not well defined and expected to change during the development phase and when the developers and stakeholders require freedom of time and options (Kannan, Jhajharia, & Verma, 2014). Similarly, iterative model is used when the project too large and some of the details are expected to evolve over time though the major requirements are clearly defined in the beginning.

References

Bassil, Y. (2012). A Simulation Model for the Waterfall Software Development Life Cycle. International Journal of Engineering & Technology (iJET), 2 (5). Retrieved from arxiv.org/ftp/arxiv/papers/1205/12...

Kannan, V., Jhajharia, S., & Verma, S. (2014, October). Agile vs waterfall: A Comparative Analysis. International Journal of Science, Engineering and Technology Research (IJSETR), 3 (10), 2680-2687. Retrieved from ijsetr.org/wp-content/uploads/2014...

Nugroho, S., Waluyo, S. H., & Hakim, L. (2017, July). Comparative Analysis of Software Development Methods between Parallel, V-Shaped and Iterative. International Journal of Computer Applications, 169 (11), 7-12. Retrieved from arxiv.org/ftp/arxiv/papers/1710/17...

Royce, W. W. (1970). Managing the Decelopment for Large Software Systems. Proceedings of IEEE WESCON, 26 , 1-9.

Try QA. (n.d.). What is Iterative Model- Advantages, Disadvantages and When to Use it? Retrieved from tryqa.com/what-is-iterative-model-...

Wallace, P. (2015). Introduction to Information Systems (2nd ed.). New Jersey: Pearson Education, Inc.