Table 1.4 summarizes a few reasons why organizations fail to achieve their systems development objectives. To overcome these and other problems, organizations must execute the systems development process efficiently and effectively. The key to achieving these objectives is to control the development process. Apparently, that is not an easy chore, or more organizations would be successful at it.
Information Systems developers encounter similar problems. Given such problems, they have concluded that systems development must be carefully controlled and managed by following good project management principles and the organization’s quality assurance framework embodied in its systems development life cycle methodology.
A recent survey of IS audit and control professionals found the following project management items associated with failed projects:
• Underestimation of the time to complete the project
• Lack of monitoring by senior management
• Underestimation of necessary resources
• Underestimation of size and scope of the project
• Inadequate project control mechanism
• Changing systems specifications
• Inadequate planning.
The project work plan, including phases, work to be accomplished in each, times, and cost, are often documented using a project management tool such as Microsoft Project. Project management - particularly the planning process and establishing the project schedule - ultimately can determine the success of the project.
Project management frameworks apply to any project. To ensure that Information Systems will meet the needs of customers, projects involving the creation or modification of Information Systems must include elements that specifically address the quality of the system being developed. Quality assurance (QA) addresses the prevention and detection of errors, especially defects in software that may occur during the system development process.
By focusing on the procedures employed during the systems development process, QA activities are directed at preventing errors that may occur. QA activities are also directed at testing developed systems to eliminate defects - to ensure that they meet the users’ requirements - before systems are implemented.
Two prominent sources of guidance for QA are ISO 9000-3 and the Capability Maturity Model (CMM) developed by the Software Engineering Institute (SEI) at Carnegie Mellon University.
ISO 9000-3 is a set of standards developed by The International Organization for Standards (ISO) that describe what an organization must do to manage their software development processes. The assumption, as with all ISO standards, is that if the ISO 9000-3 standards are followed, the development process will produce a “quality” software “product.”
ISO defines a quality product as one that conforms to customer requirements. Notice that the ISO concepts of quality “products” and “processes” parallel our two systems development objectives. Exhibit 6.4 contains examples of the ISO 9000-3 standards. Review those examples and identify the elements that are common among project management, a systems development methodology, and the ISO standards.
Capability Maturity Model:
The Capability Maturity Model® for Software (SW-CMM) is a model that helps organizations evaluate the effectiveness of their software development processes and identifies the key practices that are required to increase the maturity of those processes. The image to the right depicts the five SW-CMM maturuity levels and the key principles and practices for each. Notice, for example, that project management is a key indicator that an organization has attained level 2.
The Software Engineering Institute believes that predictability, effectiveness, and control of an organization’s software processes improve as the organization moves up the five levels. However, moving from level 1 to level 2 may take an organization 2 years or more. Moving from level 2 to 3 may take another 2 years.
A recent study found that achievement of a Level 3 SW-CMM maturity by an organization, along with the implementation of a structured systems development methodology, contributes to the quality and cost-effectiveness of the software development process. In fact, there was significant improvement on 11 of 14 measures after Level 3 was attained. Improvements included communication and teamwork, lower maintenance costs, and lower levels of system defects.