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.