Lesson
Structure software development ITS projects as a series of phased, smaller tasks with specific, incremental deliverables and associated acceptance testing.
A Washington State Department of Transportation implementation of a regional ATMS.
12/1/2002
Seattle,Washington,United States
Background (Show)
Lesson Learned
Software development projects structured as a series of phased, smaller tasks offer opportunities to enhance system quality. Another lesson learned from this project noted the difficulties that resulted from a lack of comprehensive testing procedures. Results from the project evaluation suggested that a phased approach to software deliverables, with accompanying testing, would offer the opportunity to incrementally test functionality, adjust subsequent deliverables as necessary, and encourage user participation and reviews.
The following observations emerged during the evaluation process:
In the case of the NSATMS, a phased software delivery approach and a testing cycle would have offered opportunities to address the lack of functionality testing that became a point of contention during the project, and they would have encouraged continuing participation by project partners.
The following observations emerged during the evaluation process:
- Structure software development projects as a series of phased, smaller tasks. A phased series of tasks, combined with acceptance tests, improves project management by identifying problems earlier in the process. Each phase must be successfully completed as a prerequisite for continuing to the next project phase. Each test also becomes a decision point that forces project managers to periodically review the logic of continuing the project and facilitates mid-course adjustments to accommodate unexpected problems, new technologies, or a changing political climate and requirement set. A phased, task-based approach helps all parties to sustain their focus on the products, thereby keeping day-to-day interest and attention levels high, and helps to simplify project management by breaking a large complex project into more manageable, testable parts.
- Define phases in a way that encourages user testing of modules at each stage of the delivery process. In the NSATMS project, the collection of installed modules at intermediate points in the development process did not provide a sufficiently useful suite of functions to entice prospective users to work with the system on a regular basis. As a result of this lack of useful user capabilities, the system was largely unused (and therefore untested) by a broad user base. In addition, the resulting lack of active “exercising” of the software components by a user group also meant that whenever even small changes in system configuration (e.g., new sensor types) were made, any conflicts with existing modules that might have been triggered by those changes were not detected. (The contractor contended that at least some of these issues could have been addressed if the client had purchased and installed a new software configuration management system, as the contractor had recommended.)
- Develop some level of operational functionality early in the project, and deliver usable, visible products periodically. The availability of even a subset of the envisioned system functionality can help establish and maintain participants’ interest in the project, particularly the prospective user group. User feedback at an early stage can also provide developers with valuable insights that can be factored into product design during its formative stages, when changes are less disruptive. Concrete progress (and active feedback) helps maintain project interest and sustains project developer focus. The distribution of product deliveries throughout the task schedule maintains interest and focus in the project, while also providing useful “go”/ “no go” decision points.
In the case of the NSATMS, a phased software delivery approach and a testing cycle would have offered opportunities to address the lack of functionality testing that became a point of contention during the project, and they would have encouraged continuing participation by project partners.
Application Areas
None defined
States
Countries
Focus Areas
None defined
Goal Areas
None defined
Keywords
None defined
Lesson ID: 2005-00112

Lesson Comments
No comments posted to date