Original Issuance: February 17, 2005 Revalidated: March 27, 2008
A system development methodology refers to the framework that is used to structure, plan, and control the process of developing an information system. A wide variety of such frameworks have evolved over the years, each with its own recognized strengths and weaknesses. One system development methodology is not necessarily suitable for use by all projects. Each of the available methodologies is best suited to specific kinds of projects, based on various technical, organizational, project and team considerations. CMS has considered each of the major prescribed methodologies in context with CMS’ business, applications, organization, and technical environments. As a result, CMS requires the use of any of the following linear and iterative methodologies for CMS systems development, as appropriate.
Acceptable System Development Methodologies
Initial Investigation Requirements Definition System Design Coding, testing,... Implementation Operation & Support
Framework Type: Linear Basic Principles: 1. Project is divided into sequential phases, with some overlap and splashback acceptable between phases. 2. Emphasis is on planning, time schedules, target dates, budgets and implementation of an entire system at one time. 3. Tight control is maintained over the life of the project through the use of extensive written documentation, as well as through formal reviews and approval/signoff by the ____________________________________________________________
_________________________________ Office of Information Services 1
user and information technology management occurring at the end of most phases before beginning the next phase. Strengths: 1. Ideal for supporting less experienced project teams and project managers, or project teams whose composition fluctuates. 2. The orderly sequence of development steps and strict controls for ensuring the adequacy of documentation and design reviews helps ensure the quality, reliability, and maintainability of the developed software. 3. Progress of system development is measurable. 4. Conserves resources. Weaknesses: 1. Inflexible, slow, costly and cumbersome due to significant structure and tight controls. 2. Project progresses forward, with only slight movement backward. 3. Little room for use of iteration, which can reduce manageability if used. 4. Depends upon early identification and specification of requirements, yet users may not be able to clearly define what they need early in the project. 5. Requirements inconsistencies, missing system components, and unexpected development needs are often discovered during design and coding. 6. Problems are often not discovered until system testing. 7. System performance cannot be tested until the system is almost fully coded, and undercapacity may be difficult to correct. 8. Difficult to respond to changes. Changes that occur later in the life cycle are more costly and are thus discouraged. 9. Produces excessive documentation and keeping it updated as the project progresses is time-consuming. 10. Written specifications are often difficult for users to read and thoroughly appreciate. 11. Promotes the gap between users and developers with clear division of responsibility. Situations where most appropriate: 1. Project is for development of a mainframe-based or transaction-oriented batch system. 2. Project is large, expensive, and complicated. 3. Project has clear objectives and solution. 4. Pressure does not exist for immediate implementation. 5. Project requirements can be stated unambiguously and comprehensively. 6. Project requirements are stable or unchanging during the system development life cycle. 7. User community is fully knowledgeable in the business and application. 8. Team members may be inexperienced. 9. Team composition is unstable and expected to fluctuate. 10. Project manager may not be fully experienced....