Structure software development ITS projects as a series of phased, smaller tasks with specific, incremental deliverables and associated acceptance testing.

The North Seattle Advanced Traffic Management System (NSATMS) was envisioned as a multi-jurisdictional arterial traffic data collection and data sharing system that would offer agencies and local governments throughout the greater Seattle, Washington, area real-time access to timely regional information about traffic conditions and traffic device status. The goals of the system were to promote regional agency coordination and cooperation, manage area traffic more efficiently, and serve as a data source for future metropolitan transportation planning and management efforts. The system would feature a central database management system that would collect information about traffic conditions and traffic device status throughout the region, and a wide-area network of remote workstations that would give participating jurisdictions access to that database.

In 1994, the Washington State DOT initiated a project to test this concept by developing an arterial data sharing system for an urban region that includes Seattle, unincorporated King County, and selected jurisdictions within northern King County and southern Snohomish County; it would also provide a testbed and data source for state intelligent transportation systems (ITS) activities. However, because of technical and project management issues, the system as originally envisioned was not implemented.

This lesson is based on excerpted results from the project’s evaluation report.

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:

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.

Lesson Comments

No comments posted to date

Comment on this Lesson

To comment on this lesson, fill in the information below and click on submit. An asterisk (*) indicates a required field. Your name and email address, if provided, will not be posted, but are to contact you, if needed to clarify your comments.