|CS/10,000 and the Capability Maturity Model|
"After two decades of unfulfilled promises about Productivity and quality gains from applying new software methodologies and technologies, industry and government organizations are realizing that their fundamental problem is the inability to manage the software process."
The Software Engineering Institute (SEI) at Carnegie Mellon University has created the Capability Maturity Model (CMM) which systematically defines and refines software development efforts. The CMM was created in response to the tremendous need for organizations to be able to create useful software efficiently and consistently. It is organized as a set of maturity levels that organizations achieve in their progress toward more consistent and effective development efforts. The focus of the CMM is on the development of effective software processes.
The difference between immature and mature software development organizations is the existence and maturity of their software processes. In an immature organization, there is no objective basis for judging product quality or development problems. In mature organizations, managers monitor the quality of the software products and customer satisfaction in a quantitative manner, and have continuous refinement built into the process.
Table 0.1: CMM Levels
|Level 1: Initial - Few processes are defined. Success depends primarily on individual effort. (Estimated 76% of all I/S development at this level in 1995.)|
|Level 2: Repeatable - Basic project management processes are established to track cost, schedule, and functionality. (Estimated 15% of all I/S development at this level in 1995.)|
|Level 3: Defined - All projects make use of an organized, documented and standardized set of activities that are consistent throughout the organization. Activities include peer reviews, product engineering, CASE tool usage, testing standards, and full lifecycle configuration management. (Estimated 8% of all I/S development at this level in 1995.)|
|Level 4: Managed - Detailed time, cost, and other metrics are collected and used to quantitatively manage software development. The organization has a quality focus, with tools and training to support development. (Estimated <1% of all I/S development at this level in 1995.)|
|Level 5: Optimizing - Continuous process improvement is achieved through quantitative management. Processes such as software inspection, code walkthroughs, automatic metrics collection, and technology review are part of the standard development methodology. (Estimated <1% of all I/S development at this level in 1995.)|
The CMM provides organizations with guidance on how to gain control of their processes for developing and maintaining software and how to evolve toward a culture of software engineering and management excellence. It is organized as a set of maturity levels which provide well defined incremental stages toward the goal of software process maturity. The 5 CMM levels described in Table 0.1 are organized as a set of key process areas, goals and suggested tasks which stabilize an important component of the software process.
The CS/* line of software from CSCL includes CS/8000 and CS/10,000. Using CS/*, organizations rapidly mature their client/server and networking development processes using the key technologies outlined in Table 0.2.
Table 0.2. CS/* Key Technologies
|Integrated Methodology - The template based "Virtual Methodology" is integrated with the Task Manager, documentation, development toolset, project estimation, and Corporate Standards subsystems. The groupware project management interface keeps the project plan in front of everyone all of the time and automatically tracks resource time metrics through the integrated timesheets.|
|Expert System Advisors - Expert systems automatically select optimal architectures, customize methodologies, and estimate projects. Project estimation expert systems are trained and configured to improve project estimates according to actual business experience and project results.|
|Visual Architectures - Visual diagrams of key system components are automatically selected and easily customized. Well documented architectures are a key factor in project coordination and communication.|
|Open Repositories - All current and historical project information is available through the standard interfaces and through the networked Open Repository. The project information is available to all users with network connectivity and proper permissions, as well as other project and process management tools.|
|Corporate Standards - Once processes have been refined, the Corporate Standards Module puts those processes in front of all of the developers and managers.|
Using these technologies and an intuitive user interface, CS/* is the ideal environment for guiding an organization rapidly through the CMM software maturity levels.
The following sections describe the five CMM Levels, key process areas, and goals in detail and show explicitly how CS/* assists in the fulfillment of those goals. The section numbers correspond to the CMM Level, the sublevels are the key process areas, and the goals are described using italicized type, e.g., 2.1.1. Goal 1: System requirements allocated to software are controlled to establish a baseline for software engineering and management use.
1. CS/* and CMM Level 1: Initial
Software organizations begin their maturity level at CMM Level 1, the Initial Level. At this level, few processes are defined and success depends on individual effort. It has been estimated that about 76% of I/S development was at this level in 1995. The CMM does not define any explicit goals for this level because it is mostly an ad-hoc development level.
At the initial level CS/* design, documentation, methodology, and project management subsystems assist in the rapid and efficient development of client/server systems. The intuitive user interface guarantees that users utilize the system right away and begin to discover and create their own best practices. Thus, companies with very little process organization automatically enter the maturation process, as CS/* provides a comprehensive process framework while simultaneously capturing current practices for the day when they begin formalizing their processes.
2. CS/* and CMM Level 2: Repeatable
The first step above the CMM Initial Level is Level 2, the Repeatable Level. At this level basic project management processes are established to track cost, schedule, and functionality. It has been estimated that 15% of all I/S development was at this level in 1995.
Repeatable software processes are supported by all of the CS/* key technologies. Specifically, at Level 2, requirements management, and software project planning are supported by the expert advisors. Also, software project tracking and oversight, software subcontract management, software quality assurance and configuration management are supported by the Task Manager and Corporate Standards Modules.
2.1. Requirements Management
It is imperative to quickly and consistently capture and track business requirements so that projects consistently meet or exceed expectations. CS/* methodology tools centralize projects under a single software interface to facilitate unprecedented levels of system organization and tracking. System requirements, system architecture and network architecture are assessed and clearly defined through a series of interactive intelligent advisors. In turn, the CS/* Task Advisor generates a customized work breakdown structure for the project at hand. The "Define" phase of the CS/* methodology is dedicated to requirements gathering, and the "Plan", "Prototype", and "Implement" phases support ongoing requirements management.
2.1.1. Goal 1: System requirements allocated to software are controlled to establish a baseline for software engineering and management use.
Requirements are systematically gathered and stored in the Open Repository using the Intelligent Questionnaire shown in Figure 2.1. For example, the Intelligent Questionnaire will ask "What are your applications fault-tolerant requirements?" The on-line documentation also helps gather requirements in a systematic way. Here, questions such as "What are the primary problems with the current system or business process?" are answered.
Overall CS/* gathers architectural, logical, physical, procedural, network, and system requirements. The on-line reports generated from the expert advisors document the project requirements.
Figure 2.1: Intelligent Questionnaire
2.1.2. Goal 2: Software plans, products, and activities are kept consistent with the system requirements allocated to software.
Expert system advisors translate requirements into detailed project plans and client/server and network architectures. The requirements are easily tracked and modified as the project progresses. With the reporting and documentation templates, the requirements are documented and modified rapidly and accurately. For instance, the Data/Process Flow Model and Data/Process Flow document is the last step within the "Model the Business Processes Task Group" of the Plan Phase. Therefore, having this document integrated into the plan allows instant access and easy modification. Further, future projects benefit greatly from the ability to reference the documents from previously successful projects managed by CS/*.
CS/* also supports process standardization through project templates. Project templates, which capture the project work breakdown structure, are easily created from any previous project. The project template mechanism captures the business knowledge of projects, including the business and technical requirements, and makes that knowledge immediately accessible to future projects. Thus, projects with similar requirements are implemented with a repeatable, efficient, standardized approach.
2.2. Software Project Planning
Task estimation and planning are essential to the production of efficient, timely and unified software. CS/* project management tools provide a rich set of utilities to assist, and automate task estimation and tracking. The Estimation Advisor creates project estimates, which are then stored and tracked through the Open Repository and Task Manager. Task estimation is continually perfected through the learning capabilities of the adaptive neural network-based Estimation Advisor. This specialized neural network estimates time per task based on the actual historical performance of development teams assigned to tasks. Task estimates can be automatically inserted into individual time sheets and task lists.
2.2.1. Goal 1: Software estimates are documented for use in planning and tracking the software project.
The Estimation Advisor uses neural networks to automate project estimation down to the task level. The estimate is easily refined according to specific project constraints and is all tracked in the Open Repository. Additionally, CS/* supports iterative estimation by allowing the manager to create multiple project estimates based on different business scenarios. With a click of the button, any one of the hypothetical estimates is documented and integrated with the project plan. The estimates are also easily exported to word processors, spreadsheets, or other project management tools.
2.2.2. Goal 2: Software project activities and commitments are planned and documented.
Through the combination of the Virtual Methodology, the Task Advisor, intuitive user interface, and the project template mechanism, projects are easily planned from business requirements and prior business experience. Additionally, projects are easily modified and customized in the Task Manager shown in Figure 2.2 as the project develops.
Plans are stored in an Open Repository from which they can be extracted through standard or custom reports, electronic mail, or export to other tools. Every task in the project plan may be assigned to a specific team and/or resource to explicitly document resource commitments.
Figure 2.2: The Task Grid
Documentation is accessible in three ways. The high level Document Advisor tracks all project document templates in the system. The methodology contains document templates for each project phase, which are integrated into the Task Manager. The reporting subsystem also creates standard reports on project plans, estimates, architectures, etc.
2.2.3. Goal 3: Affected groups and individuals agree to their commitments related to the software project.
The CS/* Virtual Methodology supports group based project planning through Joint Application Development (JAD) and Joint Requirements Planning (JRP) sessions. Joint sessions are proven ways of quickly reaching consensus on important system issues across the organization. Groups using these techniques use CS/* methodology and documentation to keep the sessions organized and in focus. The CS/* methodology guides the group through the identification of interfaces, functions, and other business requirements such as development roles, security, and end user training.
Throughout the CS/* methodology, functional commitments are agreed upon and tracked with the document template deliverable associated with every task group. Each document has an outline of required information and a sign-off section. An example of this is the GUI Prototype document that contains signoff signatures from individuals such as the MIS director, Database Manager, Project Leader, User Liaison and the Head of the User Group.
In the Task Manager, primary and secondary resources are assigned and scheduled for each task. CS/* supports team based or resource based task assignment. Teams and individuals are informed of their task and time commitments through on-line time sheets, electronic mail and/or the Task Manager itself.
2.3. Software Project Tracking and Oversight
Once a software project has begun, it is critical that the actual development practice be clearly aligned with development specifications, and that changes to specifications are clearly communicated to all affected parties. The CS/* integrated Timesheet and Task Manager guarantee global project communication and control. IS managers, project managers as well as application developers are kept abreast of the exact status of every task. Additionally, department directors are given a global picture of total project completion for every phase of every project in the Object Browser.
2.3.1. Goal 1: Actual results and performances are tracked against the software plans.
Resources explicitly track their commitments through the on-line Timesheets in which they enter the actual and remaining time and task commentary. There are numerous on-line and printable status reports to track task completion percentages and discrepancies between planned and actual time commitments. The document deliverables within the methodology also serve to document actual project progress, such as test completion status, etc.
2.3.2. Goal 2: Corrective actions are taken and managed to closure when actual results and performance deviate significantly from the software plans.
Through the integrated task management system, deviations from the software plans are easily identified from the user time sheet commentary and time discrepancy reports. Once problems are identified the tasks and estimates in the project plan are quickly and consistently modified from a central interface.
On an intra-project level, projects are easily re-estimated with the Estimation Advisor. It can be run with the revised business requirements if the deviations were due to changing business environments. On an inter-project level, the adaptive neural network estimator gets better at estimating projects by learning from past projects.
2.3.3. Goal 3: Changes to software commitments are agreed to by the affected groups and individuals.
Every task group in the CS/* methodology requires a group review and deliverable to insure that requirements have been met and that any deviations are managed to closure. Information about changes to the software commitments are facilitated through the CS/* Open Repository from which all project members can access information. Moreover any additions and modifications to the project plan are communicated by the electronic mail subsystem to the affected teams or individuals.
The CS/* integrated Timesheet module means time allocations are tracked globally on a day-to-day basis. Project managers have complete project communication and control because they are kept abreast of the exact status of every task. Additionally, project managers, and technical directors use the Object Browser to gain a view of total project completion for every phase of every project.
2.4. Software Subcontract Management
CS/* systems include an extensive client/server roles/skills repository from which the primary contractor quickly assesses the roles and skills required of all subcontractors. The Open Repository is available anywhere on the network, so it guarantees that all involved parties are kept up to date with the state of the project and subprojects. Additionally, the Document Advisor automates the creation of requests for proposal, project charters, and other documents.
2.4.1. Goal 1: The prime contractor selects qualified software subcontractors.
The primary contractor uses the CS/* knowledge base to accurately assess the required skills required for the completion of each subproject and task. Through the resource and project template repository, the primary contractor easily specifies the roles appropriate for fulfilling the project requirements. For example, the primary contractor can determine that for a particular project a Technical Writer would need to have skills in Technical Writing, Adherence to Standards, and Help Programming.
2.4.2. Goal 2: The prime contractor and the software subcontractor agree to their commitments to each other.
Each CS/* project deliverable document provides a standard sign-off section. The documents are fully integrated into the project plan and are also available from the Document Advisor, so that there is an easily accessible audit trail.
2.4.3. Goal 3: The prime contractor and the software subcontractor maintain ongoing communications.
Each project's specifications and commitments are stored in the Open Repository. The prime contractor and subcontractors easily share that information on an ongoing basis. Specifically, the e-mail, task management, reporting, and documentation features of CS/* support efficient communication between all individuals and teams.
2.4.4. Goal 4: The prime contractor tracks the software subcontractor's actual results and performance against its commitments.
Project accountability is implemented by the explicit sign-off of the deliverable document for each project task group. The methodology also specifies a group review of the project status at the end of each project phase. Contractors can schedule ad hoc review meetings using the Task Manager, and include all subcontractors through timesheet notification or electronic mail. Additionally, actual resource costs are continuously tracked against estimated and scheduled resource commitments in the Costing Manager.
2.5. Software Quality Assurance
True product quality must be a focus throughout the entire product lifecycle. The CS/* methodology introduces quality assurance activities throughout the define, plan, prototype, and implement phases of the software process. In this manner, quality is engineered into every phase of the project, rather than added before final release as part of a scramble to "fix the bugs". The CS/* integrated Timesheet module ensures that every individual is notified and held responsible for all quality activities for which they are committed.
2.5.1. Goal 1: Software quality assurance activities are planned.
The CS/* methodology includes a rich set of quality assurance activities to be performed throughout the project lifecycle. Tasks such as GUI testing, database integrity tests and business logic testing are planned and executed within the project. Each quality assurance task includes detailed techniques, scheduled start date, primary resource assigned, estimated hours, hours done and hours remaining. The methodology also supports the creation of test plans and their implementation. In this manner, quality is engineered into the project rather than added before final release. Moreover, because tasks are quickly edited, copied and inserted within the Task Manager, iterations of quality assurance tasks are easily planned, scheduled and tracked.
2.5.2. Goal 2: Adherence of software products and activities to the applicable standards, procedures, and requirements is verified objectively.
Only the project manager has the ability to mark tasks as completed in the Task Manager. This gives the manager the ability to explicitly control the sign-off of task completion until the quality standards have been met.
The Corporate Standards Module ensures that all products and activities are standardized across the project and across the organization. The corporate standards can be linked to the project tasks to ensure the proper procedures and tools are used for the successful completion of each task. Specifically, one or more tools and templates can be defined for every task. This may even include the integration of testing tools and scripts.
2.5.3. Goal 3: Affected groups and individuals are informed of software quality assurance activities and results.
The CS/* integrated Timesheet module ensures that affected individuals are notified of all quality activities for which they are responsible. There is an explicit feedback path for quality assurance results in the task commentary section of the time-sheets. Additionally, the quality document sign-off makes it clear to everyone what the quality specifications are.
2.5.4. Goal 4: Noncompliance issues that cannot be resolved within the software project are addressed by senior management.
Status of every project, phase, and task is viewable from the highest level with the Object Browser. Quality assurance documentation includes sign-offs for all responsible parties. At the completion of the project, the Return On Investment and Process Review documents track information useful to senior management. Additionally, other testing and compliance tools required by the organization are managed and launched from within CS/*.
2.6. Software Configuration Management
Software configuration management is essential to the product change control process. CS/* helps take advantage of the automated configuration management tools available through the Virtual Methodology and Task Manager.
2.6.1. Goal 1: Software configuration management activities are planned.
The CS/* methodology outlines the creation and review of configuration management standards and activities with task such as "Setup environment for source code control." The CS/* methodology is typically configured on a site by site basis to link in the local configuration management tools and processes.
2.6.2. Goal 2: Selected software work products are identified, controlled, and available.
The CS/* central repository keeps all software, tools and documents together in one place. Thus, all software tools and deliverables including CASE and configuration management tools are linked to the appropriate tasks in the project plan, as well as to the corporate standards for configuration management. This ensures that every project member who has access to the project plan also has access to the proper tools and files. The Modeling Subsystem also facilitates the creation of standard software configurations appropriate for the project.
2.6.3. Goal 3: Changes to identified software work products are controlled.
The CS/* methodology supports the creation of site specific configuration management practices and change control procedures. The linking of tools and documents into the project plan also provides a practical level of documentation configuration control by associating different versions of documents and deliverables with historical sections of the project task list.
2.6.4. Goal 4: Affected groups and individuals are informed of the status and content of software baselines.
The CS/* Open Repository keeps all groups and individuals on the same page. First the CS/* Estimation Advisor establishes a baseline estimate using a combination of expert system and neural network technologies. Then this baseline estimate is immediately made available to all resources assigned to the project via the Task manager, Timesheet, and reporting facilities.
3. CS/* and CMM Level 3: Defined
At Level 3 of the CMM, the Defined Level, organizations develop, document, implement, and refine a standard series of software processes so the organization repeatedly and effectively produces software products. A centralized software engineering process group is faced with the development, refinement, and adaptation of the organizational standard software processes. Ideally the software processes are documented in the form of an organization-wide software methodology. The organizational software methodology is customized for each specific project, and integrated into the project management systems in the form of a project plan. Once projects are completed with the methodology, the actual project results are documented and used to expand and refine the organizational standards. Additionally, an organization-wide training program is implemented to ensure that the staff and managers have the knowledge and skills required to fulfill their assigned roles.
Organizations use CS/* to rapidly define and deliver their organizational standards. They use the CS/* template-based Virtual Methodology as their first organization-wide methodology that is customized as time goes on. The CS/* expert-system Task Advisor and Task Manager are used to customize the CS/* methodology according to each projectís requirements. Additionally, with the integrated documentation, Open Repository, and Client/Server Tutorials, organizations find that most of the development, integration, and documentation of their software processes is achieved with minimal training.
3.1. Organization Process Focus
The intent of the CMM Organization Process Focus key process area is to make the organization focus on processes. This is done through the assignment of responsibility for software process activities. For example, an organization shows process focus when it assigns resources to and creates a budget for a central software engineering process group.
The selection of CS/* as a methodology solution is an easy and effective step in the organizational shift of focus towards process management. All levels of the organization have easy access to powerful process management tools like the expert system Task Advisor, the Virtual Methodology, and the corporate standards database.
3.1.1. Goal 1: Software process development and improvement activities are coordinated across the organization.
The CS/* methodology is stored within a networked Open Repository. This means that all the process engineering team members and the development group members view and utilize the software process information from a single source, via a common user interface. Because CS/* has all of the organizationís projects stored within it, process improvement teams and administrators coordinate the activities for all the development groups using the CS/* system.
3.1.2. Goal 2: The strengths and weaknesses of the software processes used are identified relative to a process standard.
The CS/* methodology is based on the best practices of the organizations using the latest in client/server and networking technologies. It is an excellent starting point for organizations without a methodology and an easily integrated, comprehensive baseline for organizations with existing methodologies. Through process review iterations, the relative strengths and weaknesses of the components of the standard methodology are identified and modified with the CS/* Task Manager.
3.1.3. Goal 3: Organization-level process development and improvement activities are planned.
CS/* is an organization-wide methodology tool with which groups save projects as templates for future use. Once a project is completed in CS/*, it is reconciled with the original project estimations. As part of this reconciliation, the project is saved as a template, used to train the Estimation Advisor, and fed back into the organization-wide methodology in a formal review.
3.2. Organization Process Definition
A mature organization develops and maintains a set of software processes that improve project performance and provide a basis for cumulative, long-term benefits to the organization. Organization Process Definition involves developing and maintaining the organization's standard software process, along with related process assets, such as descriptions of software life cycles, process tailoring guidelines and criteria, the organization's software process database, and a library of software process-related documentation.
One of the principle goals in utilizing CS/* in an organization is to rapidly develop a set of standard software processes. The integrated CS/* tools operate from a centralized Open Repository so the entire organization contributes to and uses a rich set of software process assets.
Figure 3.1: Browse Standard Properties Window
3.2.1. Goal 1: A standard software process for the organization is developed and maintained.
The Task Manager and Corporate Standards Module shown in Figure 3.1 are used to develop the corporate process standards repository, for organization-wide availability. The standard is maintained as an integrated aspect of the project development effort. Furthermore, CS/* has the flexibility of saving projects as historical projects or as reusable project templates.
3.2.2. Goal 2: Information related to the use of the organization's standard software process by the software projects is collected, reviewed, and made available.
With appropriate authorization, the software engineering process team or a project manager has the capability to browse and audit any of the projects in the CS/* system at any time. At a touch of a button, project information such as project tasks, status, documentation, and resource utilization is presented as on-line forms or as printable reports. Information generated by the software engineering process team in the form of tools, documents, and methodologies is then immediately available to the individual project managers and developers.
3.3. Training Program
The Training Program key process area is devoted to the development and verification of skills and knowledge required across the organization to effectively and efficiently implement technologies.
CS/* identifies training needed by the organization, individual projects, and personnel with the resource manager. It also aids in the development and procurement of training to address the identified needs. Additionally, every CS/* user has access to the hyper-text based Client/Server Tutorials on client/server system integration, quality assurance, GUI development, performance tuning, SQL and database design as shown in Figure 3.2. All of the tutorials are written by developers for developers and form a rich knowledge repository based on real-world expertise.
3.3.1. Goal 1: Training activities are planned.
The CS/* methodology addresses the planning of project training. Once training activities are defined, the Task Manager is a central location for the management and scheduling of individual or team training activities. Additionally the Costing Manager tracks the estimated and actual cost of training by project.
3.3.2. Goal 2: Training for developing the skills and knowledge needed to perform software management and technical roles is provided.
The CS/* Task Manager guarantees that training schedules are followed while the Resource Manager is used to track each individualís skill levels. Additionally the rich informational content of the CS/* Tutorials instantly expands the training curriculum and can be explicitly linked to tasks in the project plan. Finally, the Costing Manager centralizes cost analysis and tracking for training on all projects corporate-wide.
3.3.3. Goal 3: Individuals in the software engineering group and software-related groups receive the training necessary to perform their roles.
The software engineering groups are scheduled for training in the CS/* Task Manager which also tracks completion of training for each group. Additionally the CS/* Tutorials on GUI Design, SQL, Database Design, Quality Assurance, System Integration, and Performance cover the fundamentals of all client/server development.
3.4. Integrated Software Management
The purpose of Integrated Software Management is to integrate the organizational software process into each individual project. The integration includes software engineering as well as project management activities. The customization of the standard software process to the individual project depends on the business environment and the technical needs of the project.
The CS/* task management process is an innovative way to customize standard process methodologies according to business and technical requirements. It uses the Task Advisor expert system to select only the sections of the standard methodology template appropriate to each project. Once a project plan is generated, managers use the CS/* Estimation Advisor to accurately estimate the number of person hours required to complete every task. Project tasks and resources are then managed with the Task Manager and Timesheet Module.
3.4.1. Goal 1: The project's defined software process is a tailored version of the organization's standard software process.
The CS/* Task Advisor uses an Intelligent Questionnaire and an expert system to automatically create a tailored version of the software practice necessary to fulfill the project objectives. Not only can the underlying standard methodology be customized according to the organizationís needs, but multiple methodology standards can be used as templates according to project requirements. Once the project is automatically customized, individual tasks are added, deleted, or edited according to the project requirements. Additionally, task priorities are captured so that every aspect of project development is stored in the standard methodology.
3.4.2. Goal 2: The project is planned and managed according to the project's defined software process.
The planning and management of a project are done by working from the CS/* Virtual Methodology baseline. The baseline project plan is created automatically by the Task Advisor, and then the project managers customize it further according to their needs. Once the project plan is defined, the project is managed on a day to day basis using the Task Manager and the Timesheet Module. The project manager updates the status of individual tasks and changes the project plan as needed. Individual developers use the integrated timesheets inside their own development space to track their task lists, hours expended, and task status. Reports on the project by resource, team, and deliverable are quickly generated from the actual project status.
3.5. Software Product Engineering
Within software engineering, as in all engineering, it is imperative to consistently perform and produce correct, consistent software products. This is accomplished through well defined Software Product Engineering activities, which are the technical activities of the project such as requirements analysis, design, code, and testing.
An organization realizes good Software Product Engineering through using the combined features of CS/*'s Virtual Methodology, Task Advisor, and Documentation Advisor. These modules effectively and efficiently build, maintain, and document the software project's defined software process. Also, all of the product specific information in CS/* is updated regularly to reflect changes in technology.
3.5.1. Goal 1: The software engineering tasks are defined, integrated, and consistently performed to produce the software.
Software engineering tasks are automatically defined and integrated into the Task Manger by the Task Advisor. The same Virtual Methodology task superset is redefined, reintegrated and reused on every project to ensure consistent output from the engineering efforts.
3.5.2. Goal 2: Software work products are kept consistent with each other.
Work products are kept consistent across the organization in two ways. First, platforms, and tools are defined as corporate standards or strategic products within the Corporate Standards Module and the Product Browser. Secondly, the CS/* methodology outlines how to track software consistency through planning, configuration management, and testing.
3.6. Intergroup Coordination
The fields of management and engineering have long recognized that effective and stream-lined product development and production of any significant scale can only be achieved through effective intergroup coordination. Specific to the realm of software engineering, this requires that software groups collectively participate in the development of system-level requirements, objectives, and issues.
CS/*'s Intelligent Questionnaires provide an efficient format for intergroup development and documentation of system level requirements, objectives, and issues. The server-based Open Repository of information, documentation, and project metrics also serves to radically improve coordination between teams using CS/* since the information is presented in the form appropriate to each member of the development effort. For example, the project manager designs the project plan using the Task Advisor, customizes the plan in the Task Manager, each developer tracks their tasks in the Timesheet Module, and multi-project directors check status across projects in the Object Browser.
3.6.1. Goal 1: The customer's requirements are agreed to by all affected groups.
The customerís requirements are communicated and agreed to through Joint Requirement Planning and Joint Application Development tasks within the CS/* methodology. The agreement of all effected groups is documented in the deliverable document that follows each stage of CS/* methodology. The last page of each document requires a sign off by a representative from each group involved. The Intelligent Questionnaire also quickly captures and documents system level project requirements from the groups.
3.6.2. Goal 2: The commitments between the engineering groups are agreed to by the affected groups.
The work breakdown structures in the CS/* methodology and Task Manager interface document the commitments between engineering groups. For each task group there are one or more deliverables defined, with principal responsibility given to one team member, known as the Primary Resource, and shared resource allocation given to the remainder of the designated team. For groups working remotely, the e-mail facility is used to route task groups between teams for comment and approval.
3.6.3. Goal 3: The engineering groups identify, track, and resolve intergroup issues.
Development issues that are identified in the project are separately documented and linked into the CS/* Task Manager or tracked within individual user Timesheets for all groups to see. Once issues are identified, they are resolved by the groups involved and tracked by modifying the on-line documentation and/or project plans appropriately.
3.7. Peer Reviews
In concordance with the goals of intergroup coordination, peer reviews ensure that defects are removed early by examining work internally. Methodical examination of software work products engineers quality into the work by verifying that the work in review meets its defined specifications.
CS/* combines group task reviews with document templates for every task group to assure that task group requirements have been met and documented successfully.
3.7.1. Goal 1: Peer review activities are planned.
Peer review activities such as code reviews and structured walkthroughs are key integrated components of the CS/* methodology. Additional peer review activities can be added as needed to the organizationís standard methodology template. Thus, individual project managers can follow the CS/* review schedule and also schedule additional reviews as needed within the project.
3.7.2. Goal 2: Defects in the software work products are identified and removed.
The CS/* Task Manager assures that project tasks generated from peer reviews are assigned and completed. The software testing and quality assurance steps in the methodology are used to identify and correct defects in the software work products. Further, the CS/* methodology is written to support iterative software development, especially through iterative prototyping.
4. CS/* and CMM Level 4: Managed
At Level 4 of the CMM, the Managed Level, detailed measures of the software process and product quality are collected and used. Information such as time, cost, and defect rates are collected in detail throughout the software process of every project. The process information is stored in a central repository and used to quantitatively manage software development. At this level organizations predict software development efforts and quality and quickly detect and correct variations from the expected performance. This level sets the foundations of a truly quality oriented organization.
Traditionally the costs involved in quantitatively managing projects have made it impossible for most organizations to consider this level of management for software projects. CS/*ís integrated project management environment puts quantitative and quality management within the scope of most organizations. CS/* assists and integrates the development, collection, storage, analysis, and use of process metrics throughout the project life cycle, and across all of the projects in the organization. Additionally, CS/* minimizes the development, delivery and training time required for quantitative and quality centered methodologies.
4.1. Quantitative Process Management
Quantitative Process Management implements the collection and use of software process performance information. In each project this involves establishing goals, taking measurements, analyzing measurements, and adjusting the project to the measured results. In the organization this means creating standard software processes, measurements, project baselines, and expected performance limits. Quantitative Process Management is required for determining the organizationís software process capability.
The CS/* estimation and project management modules assist in the planning, delivery, and tracking of process management activities across the organization. The neural network based Estimation Advisor uses metrics from previous projects to automatically improve the estimation capability of the organization.
4.1.1. Goal 1: The quantitative process management activities are planned.
The CS/* methodology describes how the Estimation Advisor is used to integrate high level project information such as experience of the development team, amount of code reuse, and stability of the environment with the project plan to create a resource hour estimate down to the task level. Once the project has been estimated, the project team follows the methodology to schedule, track the hours, and document the progress of the project.
4.1.2. Goal 2: The process performance of the project's defined software process is controlled quantitatively.
The estimated project resource hours are refined and tracked against the actual project hours in the Task Manager. Each team member is responsible for updating their hours spent on each task to ensure timeliness and accuracy in time reporting. Throughout the project, estimated and actual hours are compared interactively or through printable reports. Additionally, the Costing Manager summarizes the hourly costs and integrates them with the hardware, software, training, and operations costs. All of the actual hours and costs are automatically tracked against the projected hours and costs.
4.1.3. Goal 3: The process capability of the organization's standard software process is known in quantitative terms.
Once projects are completed, the actual resource hours and costs are reconciled with their projected values. This creates knowledge about the organizationís estimation accuracy, task completion ability, and overall quality ability. Specifically, the process capability is captured in the Estimation Advisor through retraining. Once several projects are completed and reconciled, the Estimation Advisor neural network is retrained with the actual metrics from each project. The resulting Estimation Advisor configuration has captured the organization software process capability at that point in time. Additionally, the projects are retained in the Open Repository so it is simple to analyze the process capability using traditional methods of analysis.
4.2. Software Quality Management
Software Quality Management concerns the quantitative understanding of a projectís software products and the achievement of specific quality goals. Specifically it involves defining quality goals, establishing plans, and monitoring and adjusting the goals, plans, deliverables and activities to satisfy the needs of the customers.
Organizations building systems with CS/* find it easy to set quality goals, plan for them, adjust them, and communicate them to the development teams. They follow the quality assurance specific sections of the CS/* methodology to set quality goals and plan the quality process, and then use the task management, documents and corporate standards to adjust and deliver the quality centered plans to the developers.
4.2.1. Goal 1: The project's software quality management activities are planned.
The CS/* quality assurance methodology lays out a systematic way of planning, implementing, and documenting quality assurance activities. Specifically, the ISO/9000 activities ensure compliance with the most popular international quality standards. Organizations with specific quality assurance requirements can easily customize the CS/* methodology with more detailed information about their own quality assurance processes. These customizations can be saved within an individual project or as organizational process templates.
4.2.2. Goal 2: Measurable goals for software product quality and their priorities are defined.
The CS/* methodology steps organizations through the definition and documentation of the projectís quality product goals and priorities. Sections on quality and risk analysis guide software planning groups through the full quality assurance life cycle.
4.2.3. Goal 3: Actual progress toward achieving the quality goals for the software products is quantified and managed.
The documents associated with each milestone in CS/* project plans ensure that progress toward meeting quality assurance goals is documented and tracked. The integrated Virtual Methodology, Task Advisor, and Task Manager interfaces make it extremely easy to track the achievement of quality assurance and all other project goals.
5. CS/* and CMM Level 5: Optimizing
At CMM Level 5, the Optimizing Level, continuous process improvement is achieved through quantitative management. Processes such as software inspection, code walkthroughs, automatic metrics collection and technology reviews are part of the standard development methodology. At this level the entire organization is structured around a quality focus.
It is essential to use the most efficient technology available for quality project management. When quality management is taken to the level of defect tracking and prevention, for example, an automated project management technology should handle the more tedious aspects of project management. Otherwise the overhead involved in this level of management becomes prohibitive. The CS/* integrated project management environment walks managers and developers through client/server development projects while simultaneously tracking much of the information needed for comprehensive quality management. It makes all of the information available to all team members so that quality coordination is automatic.
5.1. Defect Prevention
Defect prevention is the identification and removal of the root causes of defects from the software engineering process. Defect prevention activities can take place within a specific project, or across several projects. The keys to defect prevention are the rapid detection and elimination of day to day defect causes, as well as the ability to track long term trends. The day to day causes must be detected as early in the development cycle as possible because it is very difficult to analyze a project for defect causes after it is completed. Additionally, there are often long term causes of defects, such as technology trends that can only be found through multi-project analysis.
CS/* facilitates short term and long term defect tracking and elimination. Day to day tracking of time, results, and costs against the automatically generated CS/* project plan allows managers and developers to quickly discover defect causes. Long term defect trends are found through the analysis of multiple historical projects accessible from the organizational Open Repository.
5.1.1. Goal 1: Defect prevention activities are planned.
The best way to plan for defect prevention activities is to gather the local expertise on the project at hand, and to analyze the previous projects. Technical experts, management experts, and process experts respectively plan technical, procedural, and process defect prevention activities. All of these plans are easily integrated with the CS/* Task Manager. Updates and supporting information from any of the planning teams are immediately available to all of the other planners.
5.1.2. Goal 2: Common causes of defects are sought out and identified.
Defect creation trends are more easily identified if quantitative project information is available. CS/* tracks every detail of every project, so the indicators of defect trends such as missing deadlines, cost overruns, and failing to meet software quality goals are instantly detected. Trends are also quickly identified by looking at the project from different angles, such as from the Costing Manager, or from the task completion status reports.
5.1.3. Goal 3: Common causes of defects are prioritized and systematically eliminated.
Once the software defect trends are identified, they are quickly and systematically prioritized and eliminated with CS/*. Changes to tasks, resource allocations, corporate standards, or supporting information are quickly added to the project and made available to all of the developers. Additionally the Estimation Advisor can quickly re-estimate portions of the project for which these changes have been made to double check the projected allocations.
5.2. Technology Change Management
By managing software-related technology innovations, organizations systematically evaluate and experiment to identify technologies which improve quality and productivity. Technology Change Management involves the identification of new technologies such as new tools, methods, and processes, and the integration of them into the organization in an orderly manner. The end objective is to improve software quality , increase productivity, and decrease cycle time for product development. Technology Change Management is focused around a group which is established to introduce and evaluate new technologies and manage changes to existing technologies.
CS/* is uniquely positioned to support Technology Change Management. Organizations use the Architect Advisors to select the most appropriate architectures, then use the Product Selector to search, evaluate, and make standards for specific products. The methodology steps through technology prototyping and pilot projects. Additionally, the Corporate Standards Module and Modeling Subsystem are used to document and specify how particular tools and processes are used.
5.2.1. Goal 1: Incorporation of technology changes are planned.
Technology changes are planned with the CS/* Architect Advisor, Visual Architectures, Product Selector, and Virtual Methodology. Specific features, advantages, and disadvantages are quickly researched, evaluated, and integrated into the standard organization methodology.
5.2.2. Goal 2: New technologies are evaluated to determine their effect on quality and productivity.
New technologies are evaluated initially to determine their functionality, and then are reevaluated for actual productivity gains after they have been used by the organization. CS/* assists in the initial evaluation by specifying advantages and disadvantages of specific client/server architectures, and then links directly to descriptive information about specific products and vendors. Technologies and specific tools are tracked in actual use by analyzing their usefulness within historical projects. The CS/* project management framework makes technology evaluations easy because specific technologies are tracked for cost, resource hours, and quality across projects in the same corporate project management database. In addition, the technologies used for specific projects are exactly determined by looking at historical project plans.
5.2.3. Goal 3: Appropriate new technologies are transferred into normal practice across the organization.
The ability to link specific tools and configurations to the architectures and methodology makes technology transfer very organized. Additionally, new expertise acquired about any of the tools is added immediately to the Product Selector, Virtual Methodology, documentation, and Corporate Standards. CS/* is also updated on a regular basis with new products and methodology enhancements as technologies change and evolve.
5.3. Process Change Management
The purpose of Process Change Management is to continually invigorate and challenge the organization to establish a steady trend of improvement across the entire organization. This improvement is defined as improving software quality, increasing productivity, and decreasing the cycle time for product development. This is accomplished with proactive senior management sponsorship, and by defining specific improvement goals, implementing improvements to the standard software process, and establishing training and incentive programs for process improvement.
CS/* is a catalyst to process change management. By providing an easy to use task management interface across projects, it is a focal point for all process changes. Any project in the organization can be instantly analyzed to determine what technologies are being used, what the completion status is, what the costs are, and what the next step is. CS/*ís integrated process management brings corporate initiatives directly into the software development process.
5.3.1. Goal 1: Continuous process improvement is planned.
The CS/* methodology implements standard process improvement activities for every phase of every project. Process improvement activities such as "Conduct definition process review session" are delineated for the definition, planning, prototyping, and implementation phases of each project. The results of these reviews are quickly documented and implemented inside CS/*.
5.3.2. Goal 2: Participation in the organization's software process improvement activities is organization wide.
CS/10,000 is a true enterprise-wide process management system. The information inside CS/10,000 is structured in terms of a corporate, department, and project hierarchy, as viewed through the Object Browser. Thus, each part of the company participates in the process improvement activities appropriate to their group, and senior management is provided with the powerful ability to monitor the activities of every project in the organization. This offers the entire organization an unprecedented level of accountability and maturity.
5.3.3. Goal 3: The organization's standard software process and the projects' defined software processes are improved continuously.
The major requirement for continuous improvement of software processes is a central database of standard processes made available to all developers. CS/* provides this database in the form of the Open Repository. The process information is accessible on a per-project basis through the task management, and time sheet interfaces, so that improvements to the processes are rapidly implemented, documented, and saved for re-use.
In the CMM, the SEI has created a thorough set of maturity levels that are helping organizations bring their development teams through organizational maturity levels for more consistent software success. The key to improving the maturity of software development is the improvement of processes, and CS/* systems are uniquely positioned to expedite this improvement.
Through a suite of innovative technologies and an intuitive user interface, CS/* is fulfilling the desire for development maturity at many large and small software organizations. By automating their software processes as well as their process management within CS/*, organizations are bringing more consistency and success to their development and reaching higher maturity levels more rapidly. With the Virtual Methodology, expert system advisors, Visual Architectures, Open Repositories, Estimation Advisor, and Corporate Standards Module, CS/* is setting the standard for software development in the rapidly evolving world of networked computer systems.
Top of Page