System Development Methodologies
The system development life cycle (SDLC) is “the overall process of developing, implementing, and retiring information systems through a multistep process from initiation, analysis, design, implementation and maintenance to disposal.” Generally, the phases consist of the following:
- Initiation: the need for a system is identified and high-level requirements outlined
- Acquisition/Development: a system is designed, purchased, programmed, and/or constructed
- Implementation/Assessment: after initial testing, system is installed
- Operations/Maintenance: system performs
- Sunset (Disposal): system disposed once transition to new system is done (leading back to Initiation)
Each phase of this process is in itself complex with multiple considerations and challenges. Principles of project management are of the utmost importance in the process. Several system development methodologies have evolved over time that can be used to help structure, plan, and control the SDLC process. Like other information systems, clinical information systems development can fall under these same methodologies. The optimal methodology will likely depend on the clinical problem being addressed. The following methodologies are summarized from the Centers for Medicare and Medicaid Office of Information Services. 
The waterfall model is a type of linear framework, where a project is divided into sequential phases with some overlap between the phases. Tight control is maintained over the life of the project with emphasis on planning, time schedules, target dates, budgets, and documentation.
- Pros: Good for less experienced project teams or teams with fluctuating members, progress is measurable, conserves resources
- Cons: Inflexible, slow, costly, problems not discovered until system testing, difficult to respond to changes, promotes gap between users and developers
Prototyping methodology is not a standalone model. However, it is a type of iterative or cyclic approach to selected portions of a larger development methodology. It attempts to reduce risk by breaking a large project into smaller segments and includes the user throughout the process. Small scale mock-ups are developed until the prototype evolves to meet the users’ requirements.
- Pros: Improves user participation in system development and communication among project stakeholders, encourages feedback and flexible design
- Cons: Can lead to poorly designed systems, non-strict approval process and control, may lead to false expectations, may lead to increased cost and time
Rapid Application Development (RAD)
RAD is an iterative model with key focus on fast development and delivery of system with relatively low investment cost. Often fulfilling a business need is emphasized. Active user involvement is a must. Unlike prototyping, the product is production level software that aims to produce high quality systems quickly, often times taking advantage of pre-existing tools.
- Pros: Operational version of an application likely to be available much earlier than other frameworks, can produce systems at lower cost (time, money, and/or effort), users feel engaged, can rapidly change system design based on user feedback
- Cons: May lead to lower overall system quality (including reuse, scalability, etc.), danger of feature creep (extra features beyond initial scope of project), requires significant user involvement
Linear & Iterative
These methodologies are a combination of linear and iterative models. Repeated cycles are performed over chunks of time in sequence, which allows learning from previous cycles to help inform the next.
Several approaches have been explored under this title. Below are 3 examples:
- A series of mini-waterfalls, where all phases of waterfall development model are completed for small part of the system before moving on to the next increment
- Overall requirements defined before proceeding to mini-waterfall development of increments of system
- Waterfall model followed to a point where iterative prototyping then takes place until final system established and installed
- Pros: Learning from previous increments, allows gradual implementation so incremental changes can be monitored
- Cons: Difficult problems can be pushed to the future, may lose sight of project as whole if using mini-waterfalls
This combined model focuses on calculating and minimizing project risk both at the beginning and through continual evaluation throughout the project. The project is broken down into smaller segments to try to provide ease of change.
- Pros: Enhanced risk avoidance, can incorporate other methodologies
- Cons: Highly customized for each project so not likely reusable, need skilled and experienced project manager, no firm deadlines, difficult to know when cycle starting and ending
- Radack, Shirley (Ed.) April 2009. National Institute of Standards and Technology. The System Development Life Cycle (SDLC). http://csrc.nist.gov/publications/nistbul/april2009_system-development-life-cycle.pdf
- Centers for Medicare and Medicaid Services. March 2008. Selecting a Development Approach. https://www.cms.gov/Research-Statistics-Data-and-Systems/CMS-Information-Technology/XLC/Downloads/SelectingDevelopmentApproach.pdf
Submitted by Daria Ferro