Iterative Software Development

This article addresses risks in a typical waterfall, or sequential, software development life cycle model, which arise primarily from late stage testing and limited stakeholder feedback during development. To address these risks, this article introduces, recommends, and justifies the use of an iterative approach to development. Differences in work flow and documentation under the iterative approach are also discussed.  To illustrate this approach, this article continues to discuss an employee tracking application described in a prior article.  

Background

Traditional software development life cycles are characterized by processes which proceed from project initiation in a series of sequential steps to release and maintenance of a software product (Bruegge & Dutoit, 2010, p. 637). A commonly used traditional model, known as the Waterfall life cycle mode, can be summarized by seven sequential steps; 1) project initiation, 2) requirements, 3) design, 4) construction, 5) testing, 6) release, and 7) maintenance (Ahmed, 2011, pp. 132-133). Prior efforts have resulted in an organized listing of project artifacts for the employee tracking application developed with the Waterfall life cycle approach (Attachment A). However, there are significant risks in taking the linear Waterfall approach to development.

First, the employee tracking application has many layers of requirements summarized in Table 1. The first layer of requirements, for example, consists securely connecting users with company resources on a remote database and being able to ascertain the location of that employee through the system. This first layer of development will require the programming of two interfaces for access to a location database as well as access to the network user privileges database for security verification upon login. Another layer of requirements specify that users should be able to produce three standard reports based on employee, location, and job function selection. A third and final layer of system requirements specifications allows the users to produce custom reports through different combinations of job function, location, and employees. In total, prior efforts have concluded that the system will take approximately 111 days and consume $429,000 in human resources.

Table 1: Requirements Layers

Layer

Description

1.

Base Requirements

User can securely log onto system and connect with employee location database, retrieving location, job description, and employee information.

2.

Report Requirements

User can generate three standard reports by location, job description, or employee

3.

Custom Reporting

User can generate customized reporting based on

There are significant risks with taking the traditional Waterfall approach found both in late stage testing and lack of stakeholder feedback during development (Schach, 2011, pp. 54-55). In the present case, the potential impact of late stage integration testing could be expensive in time and resources. The two new interfaces will not be tested until all of the coding for the project is complete. Late stage changes in early stage development code can result in a domino effect of necessary changes to the system code. In addition to the impact of late testing in the Waterfall approach, the Waterfall approach offers no opportunity to acquire stakeholder feedback during the 111 days of development. An iterative approach to development can provide more timely and appropriate testing as well as offer stakeholders deliverable releases and opportunity for feedback.

Iterative Approach

Rapid Application Development

The Rapid Application Development (RAD) methodology offers a strategy for incremental development with sequential releases, or prototypes (Ruparelia, 2010, p. 12). There are many advantages to taking this approach including more frequent user and stakeholder feedback, building the application meeting highest priority requirements first, continuous and ongoing testing, as well as ongoing user identification of bugs after the initial release . Taking this approach to the employee tracking application can be taken through formalizations of iterations of development to coincide with the layers of requirements. Project plans would be revised to offer target release dates instead of a final deliver date as illustrated in Table 2.

Table 2: Release Descriptions

Release

Description

Release on Day

1.

Base Requirements

User can securely log onto system and connect with employee location database, retrieving location, job description, and employee information.

45

2.

Report Requirements

User can generate three standard reports by location, job description, or employee

70

3.

Custom Reporting

User can generate customized reporting based on

111

Timeframe and Documentation

The iterative life cycle approach to meet these three release dates has been included as Attachment B, where it can be seen that project artifacts utilized in the Waterfall approach are also utilized using the iterative RAD approach. An essential aspect of the RAD approach is found in the word rapid as “the developers should endeavor to construct the [first] rapid prototype as rapidly as possible” (Schach, 2011, p. 56). In the process of quickly developing the first release, lessons learned should be documented, shared with all team members, and retained for use in subsequent phases. In order to formalize this learning process, the project manager will maintain a Lessons Learned report from each phase of development. The Lessons Learned document will be updated at the end of each prototype release.

After the first release the maintenance team will be brought into action, bringing concerns to either the requirements, design, construction or testing group as appropriate (Schach, 2011, p. 56). This workflow will offer the teams opportunity to gather additional lessons learned from bugs identified by users in early releases of the product. The change control process artifact in the maintenance phase will offer detailed procedures for documenting the user identified bug, and which team to report the bug. During development, the development team will be responsible for integrating user bug solutions into each next release and documenting the bug solution in the Lessons Learned log.

Finally, since the development now involves several fully functioning releases, the team will need to utilize an effective version management solution such as GitHub (Coding Club, 2017).

Summary

In response to challenges identified with late stage testing and limited stakeholder involvement, this article has recommended and justified an approach to developing the employee tracking application using the iterative Rapid Application Development (RAD) approach. Using the RAD approach, the project is broken down into three releases based on priority of requirements at each phase, with highest priority requirements being met in the first release. Release targets are suggested for addition to the project plan. Additional documentation will include a Lessons Learned report, an artifact to guide maintenance after the first release, and a version control system to track and monitor changes between releases.

References

Ahmed, A. (2011). Software project management: A process driven approach. Boca Raton: CRC Press. Bruegge, B., & Dutoit, A. H. (2010). Object-oriented software engineering, 3rd Edition. Upper Saddle River: Pearson Education. Coding Club. (2017, February 27). Intro to Github for version control. Retrieved from Coding Club: https://ourcodingclub.github.io/2017/02/27/git.html Department of Health and Human Services. (2012, July 18). Enterprise performance life cycle framework: Overview document. Retrieved from hhs.gov: https://www.hhs.gov/sites/default/files/ocio/eplc-lifecycle-framework.pdf GitHub. (2020). GitHub: Home Page. Retrieved from GitHub: https://github.com/ Gutha, S. (2015, August 31). Code Review Checklist To Perform Effective Code Reviews. Retrieved from EvokeTechnologies: https://www.evoketechnologies.com/blog/code-review-checklist-perform-effective-code-reviews/ Lee, C. (2020, January 29). Metrics in project management. Retrieved from cPrime: https://www.cprime.com/2010/07/metrics-in-project-management/ Martin, R. C. (2009). Clean code (The Robert C. Martin Clean Code Collection, Kindle Edition (2012) ed.). Upper Saddle River: Pearson Education. Ruparelia, N. B. (2010). Software development lifecycle models. ACM SIGSOFT Software Engineering Notes, Vol. 35, No. 3, 8-13. Schach, S. (2011). Object-oriented and classical software engineering, 8th edition. New York: McGraw Hill. Stackify. (2017, September 16). What are software metrics and how can you track them? Retrieved from Stackify: https://stackify.com/track-software-metrics/

Leave a Comment

Your email address will not be published. Required fields are marked *