It is evident by now, system development is a complex process. There are many areas where things can go wrong which may result in project failure. As per our initial discussion, the system development methodologies (such as SDLC) were proposed to provide some structure and formalism to system development process in order to ensure that valid systems are developed and to minimise the possibility of failure. Although, following a methodology does not guarantee success, it provides a mechanism to minimise failures and detect problems early in the system development.
Some of the major issues that need to be considered in system development include:
- Estimating cost and time: “What is the best way to estimate the cost and time required by a project?”
- Selecting a project team: “What members must be included in a project team? What type of background and skills are required?”
- Capturing user requirements: “What is the best method to capture user requirements? How to ensure that all requirements are captured? How to ensure that the accuracy of the requirements (that is, requirements captured meets the goals of users)?”
- Using standards: There are many standards and methodologies proposed for system development (such as SDLC). “Which standard/methodology should be used for the project?”
- Choosing design approaches: There may be many design alternatives for a problem. “How do we ensure that the best design choice is made?”
- Coding programs: There are many different programming languages, tools and programming methodologies to develop programs. “How do we ensure that the right tools and languages are used?”
- Testing programs: Programs if incorrectly written can cause errors (sometimes also called “bugs”). “How do we minimize errors in programs? What is the best way to test programs?”
- Maintaining systems: “What is the best way to ensure that the systems are maintained till the end of their life cycle?”
As per our previous discussion, many organisations try to follow a system development process (i.e. a set of activities, methods, best practices, deliverables and tools an organisation uses to develop information systems) to ensure that they develop successful information systems.
It has been shown that as an organisation’s standard information system development process matures, project delays and costs decrease while productivity and quality increases. The Software Engineering Institute at Carnegie Mellon University (USA) has observed and measured this phenomenon and developed a framework, called the Capability Maturity Model (CMM), to assist all organisations to achieve these
benefits.
The Capability Maturity Model (CMM) is a framework to assess the maturity level of an organisation’s information systems development and management processes and products. It consists of five levels of development maturity.
- Level 1 – Initial: This is sometimes called anarchy or chaos. System development projects follow no prescribed process. Each developer uses his or her own tools and methods. Success or failure is usually a function of the skill and experience of the project team. The process is unpredictable and not repeatable. A project typically encounters many crises and is frequently over budget and behind schedule. Documentation is sporadic or not consistent from project to project and causes problems for those who maintain the system over the life cycle. Almost all organisation start at Level 1.
- Level 2 – Repeatable: Project management processes and practices have been established to track project costs, schedules and functionality. The focus is on project management, not systems development. A systems development process is always followed, but it may vary from project to project. Success or failure is still a function of the skill and experience of the project team; however, a concerted effort is made to repeat earlier project successes.
- Level 3 – Defined: A standard system development process has been purchased or developed, and its use has been integrated throughout the information systems/services unit of the organisation. All projects use a tailored version of the software development process to develop and maintain information systems and software. As a result of using this standardised process for all projects, each project results in consistent high-quality documentation and deliverables. The process is stable, predictable and repeatable.
- Level 4 – Managed: Measurable goals for quality and productivity have been established. Detailed measures of the standard system development process and product quality are routinely collected and stored in a database. There is an effort to improve individual project management based on this collected data. Thus, management seeks to become more proactive than reactive to systems development problems (such as cost overruns, scope creep, schedule delays etc.). Even when projects encounter unexpected problems or issues, the project can be adjusted based on predictable and measurable impacts.
- Level 5 – Optimised: The standardised system development process is continuously monitored and improved based on measures and data analysis established in Level 4. This can include changing the technology and best practices used to perform activities required in the standard system development process, as well as adjusting the process itself. Lessons learned are shared across the organisation, with an emphasis on eliminating inefficiencies in the systems development process while sustaining quality. In summary, the organisation has institutionalised continuous systems development process improvement.
Each level is a pre-requisite for the next level. Although there are organis ations that have reached Level 5, currently, many organisations try hard to meet at least CMM Level 3. A central theme is the use of a standard process or methodology (such as SDLC) to build or integrate systems. We have now come to the end of the chapte r. It is time to review and summarize the materials learnt so far.
0 comments
Post a Comment