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.
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.
Author: John M. Ishimaru and Mark E. Hallenbeck
Published By: Washington State Transportation Center (TRAC)
Source Date: 12/1/2002
EDL Number: 13818URL: http://ntl.bts.gov/lib//jpodocs/repts_te//13818.html
Average User Rating