How to implement SW-CMM repeat level in small software companies in my country
Abstract: At present, my country's software industry is in the period of rapid development, and there are many small software numbers. This paper discusses how to promote the development of small software companies through process improvement, combine how to implement SW-CMM repeat level. In the process of implementation, pay attention to the special circumstances of my country's software industry, so that the SW-CMM system is more suitable for the characteristics of my country's software industry and promotes the development of software companies.
Keywords: small software company, SW-CMM, software process improvement
Chapter 1 CMM Overview
1.1 SW-CMM generation and development
SW-CMM (Software Capability Maturity Model) is a set of software processes in the software engineering of Carnegie-Mellon University (Software Engineering Institute, Software Engineering Institute) , Modified and evaluated patterns and methods. CMM was first applied to the US Department of Defense, which was used to assess the capacity of software companies that undertake military projects. Due to the huge investment in these military projects, a scientific assessment method is needed to review software companies, which is the earliest application of CMM.
In 1991, SEI officially put forward the CMM1.0 version and was applied to the commercial software industry and made a huge success.
In 1993, SEI has listened to the opinions of industry experts in the past, and launched CMM1.1, which is our extensive version.
For more than a decade, CMM's improvement work has been continuous, according to SEI's plan, CMM repeat level .0 version will be launched in 1997, then discussed and revised, in 1999, CMM2.0 was released in 1999. But this version was postponed for the release of the US Department of Defense.
1.2 CMM basic concept
1.2.1 Specialized terminology
Process: A series of steps executed by the given target.
Software Process: Refers to a range of activities, methods, practices and innovations for the development and maintenance of software and related products. Among them, related products refer to the project plan, design documentation, programming, test, and user manuals.
Software Process Capability: Describes a boundary range of the expected results capable of obtaining an organization after following a software process.
Software Process Performance: Indicates the actual results obtained after following a software process.
The difference between software process performance and software process is: the former is concerned about the actual results, and the latter focuses on the results expected. Due to the difference in project requirements and objective environments, software process performance cannot fully reflect the overall ability of the software process, so these two indicators need attention.
Software Process Maturity: means a specific software process is clearly defined, managed, evaluated, controlled, and generates the degree of actual effect. The maturity contains a growth potential of the ability, and also shows the actual level of the organization's implementation software process.
1.2.2 Comparison of immature and mature software organizations
In order to establish an efficient software process, let's take a look at the difference between immature and mature software organizations.
In immature software companies, the software process in the project is temporarily patching managers and practitioners, even if some software processes are regulated, they are not strict. The method of immature software companies solve the problem is to see the recruitment, the managers concentrate on solving even if the crisis (also known as firefighting). Due to the actual situation, the progress and budget are not estimated, and therefore often causes the progress and budget beyond, and it is often placed on the product quality. In an immature software organization, the quality of the product cannot be monitored, and the problems that have occurred during the production process cannot be solved. Due to frequent projects, the work of review and testing will also be more difficult to compress the evaluation and testing. Let's compare mature software organizations. A mature software R & D or maintenance support has the ability to have software research and development or maintenance processes. In the organization, all new and old members will correctly understand their software processes. The work activities are based on a planned plan. These programs are developed according to scientific methods and make appropriate adjustments according to the actual work. The software process has a pragmatic definition in a mature organization, and each executor's role and responsibilities are clear. In mature tissues, managers should control the quality of the product and the degree of satisfaction with customers. There is a considerable basis for determining the quality of the product and the analysis of products and processes, the progress and budget is based on past data and experience. Therefore, software production progress, product quality, and cost can be expected. Mature Software Tissures have all followed a model process, and the organization's employees also support the existence of the process.
To distinguish mature and immature software organizations, you need to build a framework of software maturity, which describes an evolutionary pathway from a software process from disordered to ordered.
1.2.3 CMM architecture
CMM establishes a framework that can effectively describe and representation of software processes to effectively describe and representation of the tasks and management of each stage software process.
The CMM model describes and analyzes the degree of development of software process capabilities, and determines a grading standard for maturity of software process (as shown in Figure 1). On the one hand, software organizations can assess their current maturity of their current process, and propose suitable methods and strategies for software quality standards and process improvements to achieve higher maturity through constant efforts. On the other hand, providing a standard for user assessment software organizations means a more objective understanding of developers.
Figure 1 CMM grading standard
Initial level
Optimization level
Define
Repeat
Disciplined process
Consistent process
Manage
Continuous improvement process
The following table describes the characteristics of five mature levels in the development process:
project
level
Characteristics
1
Initial level
The software development process is an accidental disorder process, and the definition of Shao has clear process, successful relies on individual ability.
2
Repeat
Implement basic project management, track software cost, progress, and functionality. In accordance with the successful experience of previous projects, the basic process rules are established, so that other similar projects can repeat the successful success.
3
Define
The management and implementation methods of the software process have been documented, standardized, making the developer a standard for software development processes. All projects can be developed and maintained in accordance with standard software processes.
4
Manage
Define the measurement of the software process and product quality. Use this measure to infer and control software processes and products.
5
Optimization level
The supply of new ideas and techniques of the system and the continuous improvement software process.
Table 1: Features of the five maturity levels
1.2.4 internal structure of CMM
The maturity level in CMM is a platform that is properly defined and moving towards the process of achieving maturity software process. Each maturity level has several key processes (KPA), each KPA is organized in five, known as a common feature, and the common feature specifies key practice (KP), and when these KPs are implemented, Enable the goal of KPA.
1.3 CMM evaluation method
Assessing whether a software organization reaches a level of CMM, it is started from the key practice of the executed activities of the review project, and then evaluates the target achieved by key practices, thus obtaining the maturity level of the entire project, and then by multiple items Levels to assess the organization's maturity level. 1.3.1 KP performance score
When evaluating items, key practices (KP [I, J], which represent the J20 of Level I, indicating the performance score of the performance activities. The method is that the evaluator has scored one by one by the management and inspection of the management and engineers, and the specific scoring criteria are set by Table 2.
KP [I, J] Performance RKP [i, j]
RKP [i, j] execution structure
RKP [i, j] project satisfaction
4
qualified
≥80%
3
Unqualified
<80%
2
Not applicable
-
1
unknown
-
Table 2: Measurement of the implementation capacity of KP
According to this method, you can score each key practice, wait until [1,4] value, ie RKP [I, J].
1.3.2 Evaluation Standards for maturity level
Each maturity level has a certain number of key practices, which can be represented by NKP [i] with NKP [i]. If a project can pass 80% of key practices, it can be considered that this project has reached this maturity level. That is, the number of key practices actually passed is greater than or equal to NKP [I] * 0.8. What kind of key practice is the key practice? The key practice of adoption is RKP [I, J] = 2 or RKP [I, J] = 4. That is, the general sum of all passed key practices is Satkp [i], if Satkp [i] ≥ NKP [i] * 0.8, this maturity is reached.
1.3.3 Evaluation of the maturity level of projects and organizations
The maturity of the project is the highest maturity level it can achieve, namely
Max {i | SATKP [i] ≥ nkp [i] * 0.8}. The maturity level of the software organization is the average of the maturity level of software projects that are involved in the assessment. The number of items required to participate in the assessment cannot be less than three, and if the average number has a decimal case, the fractional portion should be applied, and only the integer part is taken.
1.4 CMM repeat level analysis
1.4.1 Introduction to CMM Repersion
CMM second level is called repeated level, which is a first step from disordered initial level.
In the repeated level, the policy of the management software project and the procedures for implementing these guidelines are established. Place and manage new projects based on experience on similar projects. The purpose of reaching the level 2 is to institutionalize the effective management process of the software project, which makes the organization to repeat the successful practice developed in previous similar projects. The project has been set in the project has set the basic software management system. The actual feasible project convention is based on the observation result of the previous project and the current demand for the current project. The software manager of the project tracks software cost, progress, and function; identify problems in meeting the agreement. Establish a baseline for software requirements and work products developed by the requirements, and control their integrity. The software project standard has been determined, and the organization guarantees to perform them accurately. If there is a sub-contractor, the software project strives to build a strong customer relationship with them.
Level 2 Organization's process capability can be summarized as discipline, because the planning and tracking of software projects is stable, and it can repeat the previous success. Due to the actual feasible, based on the previous project performance, the project process is under the effective control of the project management system.
1.4.2 CMM Repeat level key process field
The key process area on the repeated level focuses on the concern of the software project, and is related to the establishment of basic project management control. The description of each critical process area on the level 2 is listed below:
The purpose of demand management is to establish a common understanding of customer demand between customers and software projects, and customer needs will be processed by software projects. The agreement with customers is the basis for planning and managing software projects. Control with customer relationships relies on the effective change control process.
The purpose of software project planning is to formulate a reasonable plan for software engineering and management software projects. These programs are the necessary foundations for managing software projects. There is no effective project management that is not possible to implement effective project management. The purpose of software project tracking and supervision is to establish appropriate visibility of actual progress, enabling managers to take effective measures when software project performance is significant from software programs.
The purpose of software substribution management is to select qualified software sub contractors and manage them effectively. It combines things that are essential to basic management control, software project planning, and software project tracking, and software project tracking, and monitoring of software quality assurance and software configuration management. And when appropriate, the contractor is implemented.
The purpose of software quality assurance is to provide managers with the appropriate visibility of the process that is being used by software projects and the product constructed. Software quality assurance is an indispensable part of most software engineering processes and management processes.
The purpose of software configuration management is to establish and maintain the integrity of software products in the entire software survival cycle of the project. Software configuration management is an indispensable part of most software engineering processes and management processes.
1.4.3 CMM repeated visibility
Software engineers have a detailed and in-depth understanding of the state of the project because they have the first-hand material for project status and performance. However, for large projects, their insights often come from personal experience within their responsibilities. People who do not master the first-hand material other than the project, such as senior managers, lack visibility for the project process, to rely on regular reviews for the information they need to monitor the process.
On level 2, customer demand and work products are controlled, and basic project management practices have been established. These management controls make the project visible in the specified occasion. The process of constructing software can be seen as a black gold that makes a piece of black, which makes it possible to manage visibility on each transition point (project milestone) as the activity is flowing between gold. Although managers may not know the details of things in the box, the process of the process is determined and known to confirm the process being properly carried out. When the problem occurs, the manager can respond to them.
Chapter 2 my country Small Software Corporate Status
2.1 my country 's Software Industry Development Status
2.1.1 Software Enterprise Overview
According to the investigation statistics of the China Software Industry Association, as of March 2002, the number of software companies in my country has reached 7,000, including 3,361, total registration software products, according to 7,854 software products. From a geographical location, my country's software companies are relatively balanced, and the number of software companies in Beijing, Shanghai and Zhejiang has the highest. my country's software companies have more, but half of software companies are small, which can be bound to small software companies.
From the size of the personnel, as shown in Figure 2, more than 50 software companies below half. my country's small software enterprise software, its personnel, defined below 50 or less.
Figure 2 Software business scale
From the corporate income situation, as shown in Figure 3, the number of enterprises under more than 1 million yuan is nearly half, and this part of the company belongs to a lower income software, which can take annual income of under millions of yuan. For small software companies.
From the product composition, nearly 60% of software products are application software, while system software and support software account for 15% and 25% respectively. my country's software products have strong specificity, most software is special "custom". Among them, many small software companies are limited to technical and funding constraints, only application software. Technology is relatively backward, lack of capital, and the characteristics of small software companies.
Figure 3: Software corporate income status
In terms of software exports, in recent years, my country has increased year by year, and the proportion of my country's software industry has increased year by year, and the proportion of last year has exceeded 10%. Software exports are also a development direction of my country's software companies should pay attention to. In recent years, the Software Outsourcing of the United States has brought huge profits for the software industry in my country.
2.1.2 How to define a small software company
This article mainly discusses the process improvement of small software companies, how to be a small software company is the primary issue.
In 1998, the SEPG meeting focused on CMM and group weaving, "Small" is defined as "5 or less people for 3 to 4 months." Brodman and Johnson define "Tea" to be less than 50 software developers and "small project" is less than 20 developers [johnson98]. In conjunction with the status quo of my country's software companies, refer to the definitions on various literature, this paper makes the following description of small software companies: the number of people around 30 ------------------------------------------ The technical strength is relatively backward, but has its own independent software products, there is a relatively stable market, has a certain plan for the company's future development.
In this way, a small software company is to distinguish between software companies and software workshops. The difference between software workshop and small software companies is that small software companies are relatively stable markets, and have a plan for the company's development, and can be implemented in accordance with the plan; and software workshop looks for the market, looking for customers, There is no plan for the company's development, and it is in a state of "a step in step". In the current situation, small software companies have the ability and necessary implementation of the process improvement. The workshop software companies are not within the discussion of this article.
2.2 Importance of implementing CMM in small software companies in my country
Any effective management method is required, and the management method of software companies has different from other types of companies. The experience of Chinese software companies management is relatively small, and personnel are also very sleepy, and there is no effective system. Software production is relied on personal outstanding technical capabilities and management concepts. Such software companies have not guaranteed, and their production processes only rely on accidental factors. Such a company is difficult to take the burden of revitalizing the software industry.
The development technologies used in small software companies in my country are already mature development tools. The software developers have recent supply in recent years, and simple development techniques are not the focus of enterprises. Software companies should pay more attention to the management of the company, making it a stable software production. Enterprises only have a stable product output, with their own products to open up the market. Similarly, companies must pay attention to the quality of the product. Software is also a product, software companies are also the production unit, should learn from engineering management ideas, strictly abide by software process, so that software production and product quality can be guaranteed.
CMM Theory is a set of mature, practical testing process improvement programs, has achieved good results in practice. India is a country with the highest integrated index of software exports, quality and costs in software exports worldwide. A very important aspect of the success of the Indian software industry is to pay attention to the improvement process. In a CMM5 certified enterprise, Indian companies accounted for more than half.
Let's take a look at a Indian software company to implement the benefits of CMM. Atos Origin India (AOI) is a software company in India that has successfully reached CMM5 certification. The main business of AOI is technical support and ERP systems. They passed the ISO9000 quality system certification as early as 1994, but also chosen CMM because CMM emphasized the continuous improvement and optimization process to achieve high quality thoughts, that is, the quality has no end, only constantly improvement. In 1996, they obtained CMM second and third level certifications. After four years, they have obtained the fourth and fifth level certification respectively.
The following is a change in the company's six years:
1. Financial situation: Because the resources are fully utilized, and the budget and progress of the project can be made according to the plan, the financial performance is better.
2, customer satisfaction: the average customer satisfaction index rises from 3.5 to 4.5, customers are quite appreciate the company's service performance
3, process efficiency: from the second and third level of ISO9000 to CMM, due to the similar key implementation of CMM repeat level, 3 and ISO9000, process efficiency is not obvious, but from CMM second and third levels to At the fifth stage, the process efficiency is greatly improved. 4, employee satisfaction: The average satisfaction index of employees raised from 3.2 in 1996 to 3.8 in 2000.
From this point of view, CMM has a great help to the company's development. My government also encourages the application of CMM in my country's software companies. In July 2000, the State Council issued documents "Encourage Software Industry and Integrated Circuit Industry Development," has clearly proposed to encourage software enterprises to implement CMM. Governments will also give certain assistance policies to implement CMM companies.
The implementation of CMM is very important for my country's software companies. Software companies should seize the opportunity, and strive to improve their company's management level and speed up the development speed of enterprises.
Copping the second part