SOFTWARE DEVELOPMENT METHODOLOGIES

Here are three commonly used methodologies for developing software for DHS systems, each with its own advantages and disadvantages.

Method: / Waterfall / Incremental / Spiral
Advantages: / -Cost estimates tend to be more accurate
-Schedule estimates tend to be more accurate / -Usable product is provided with first release; each cycle delivers functionality
-Can be stopped any time after the first cycle to deliver a working product
-Allows for some addition or modification requirements / -Provides better risk management than other methods
-Requirements are better defined
-System is more responsive to user needs
Disadvantages: / -Working product is not available until late in project
-Progress & success are not observable until later stages
-Errors or deficiencies may not be discovered until implementation stage
-Corrections are not made until the maintenance stage / -Majority of requirements must be known at beginning
-Interfaces must be well defined at outset
-Formal reviews are more complex than for a single development effort
-Cost and schedule overruns may result in an unfinished system
-More frequent impact to operations with multiple releases / -More complex and harder to manage
-Usually increases development costs
-Usually extends the schedule
Best Applies When: / -Risk is low
-Requirements are well understood at the start
-Requirements are not expected to change / -Risk is low to medium
-Requirements are stable at the beginning
-Project funding is uncertain, as each cycle produces a working system / - Risk is high
-Requirements must be refined

Project Tailoring Plan

Regardless of which method is chosen, an approved Project Tailoring Plan must be prepared to justify the choice of development methodology. This plan documents the development approach for the program/project and is required as an entry criterion to the Planning Stage of the SELC. The Project Tailoring Plan must describe how the proposed development methodology aligns with the SELC and Acquisition Review Process and why it is the best option for successfully completing the project.

Interoperability

A particular challenge for IT system is interoperability, which is the ability of systems to provide services or data to, and accept services or data from, other systems. Interoperability requirements should first be outlined in the Mission Needs Statement (MNS) and the ORD. Then all external and internal interfaces need to be defined in system-level requirementsas part of the design process. These interfaces must be agreed upon and individually tested through the use of actual live systems in developmental tests and operational tests.