Analysis of Software Configuration Management

Source: Internet
Author: User
Analysis of Software Configuration Management

Reprint address: http://www.rjgc.net/control/content/content.php? Nid = 5997

 

Three misunderstandings of Configuration Management
Domestic software companies have made great progress in implementing configuration management and also improved the quality of software. However, many companies have Vague understandings of Software Configuration Management, or there are misunderstandings in the real configuration management implementation process. From experts' discussions, we learned that there are three main mistakes in Software Configuration Management in China.
Misunderstanding 1: Version Control = Software Configuration Management
Many may not admit that their understanding of Software Configuration Management is limited to version control, but in the specific implementation of configuration management, we only see version control, rather than real configuration management. In fact, Version Control is only the most basic layer and function of configuration management. Of course, other functions can be gradually upgraded only when version control is implemented. It is a basic version control, and it is not a very formal and complete process in some software companies.
This problem lies in the fact that software companies do not pay enough attention to the management of software development processes. The development management of software enterprises in China is not very standardized. Even in large software companies, the project team's attention to development management is limited. Another reason is the lack of resources in development management, such as the lack of funds (resulting in the failure to purchase commercial products with complete functions and high prices) human Resources (Professional configuration management personnel cannot be recruited), so systematic configuration management cannot be implemented within the company.
Misunderstanding 2: Worst encoding level = configuration Administrator
The Configuration Manager is the person who implements the configuration management. It can be said that the company's configuration management processes and rules are only the basis for the implementation of configuration management. The key to the effectiveness of configuration management is the personnel engaged in configuration management. However, a misunderstanding in China is that when selecting a Configuration Manager, it is the person with the worst coding level in the development team. For example, if James cannot write the code or test the code, then he has to perform configuration management.
Gu Lian has a deep understanding of this. Gu Lian has experience in the field of Configuration Management in Japanese rational and guobiao. Compared with low-level configuration management personnel in China, foreign companies generally use people with rich programming experience as Software Configuration Management Personnel. Sometimes, the responsibilities of configuration management are directly assumed by the Development Manager. The level of the configuration management personnel is also quite high. It is regarded as the right hand of the project manager, and it takes a double salary.
In fact, the responsibility of an SCM personnel is quite important. All the code and documents of a team are under the responsibility of the SCM personnel. In China, it seems that they are in a very embarrassing situation and think that they do not understand anything, to ensure the security of these code documents.
Of course, Chinese companies do not pay much attention to configuration management. It is said that Huawei attaches great importance to Software Configuration Management. In addition to setting up CTO and CEO, it seems that a CMO (Configuration Management Officer or Configuration Manager) is also set up ).
Misunderstanding 3: using configuration management tools = effective configuration management
Configuration Management tools play an irreplaceable role in Software Configuration Management. Without the support of tools, implementing a complete and qualified configuration management is unimaginable. It may be because of the importance of tools that many software companies are superstitious about tools, thinking that as long as configuration management tools are deployed, especially a professional commercial tool, I thought I had built a configuration management system.
A good tool does not mean that configuration management can be implemented. Because tools are tools, they cannot be replaced by management. Otherwise, why does it always mean "management" of configuration, not simply "Tools? A Successful Configuration Management Tool implementation requires two conditions: one is a standardized software development process, and the other is a qualified Configuration Management participant, configuration Management participants include configuration administrators, developers, and project managers.
In this regard, Deng Xiaonian believes: "No matter what the situation is, there is no process or standardized use of tools, so there is no soul for a powerful tool. For example, a simple check in operation may be different for different users. After someone modifies the file, build the file, and check in. After someone modifies the file, build the file, perform a simple test, and check in again. After someone modifies the file, check in ,...... We can see that the same operation of different people using tools has different consequences ."
People-why is it so important?
The configuration administrator is a wonderful role in configuration management. It is very important for a team that implements configuration management and establishes a configuration management platform, the work of the entire development team is under his control. If a problem occurs in the configuration management system that he manages and maintains, the efficiency of other members of the team may be compromised, and serious consequences such as loss of work results and release of wrong versions may occur.
What should the configuration administrator do?
In general, configuration management personnel should have the following responsibilities in software companies:
1. Submit the configuration management plan;
2. Routine Management and maintenance of software configuration management tools, and management and maintenance of various configuration items;
3. Implement version control and change control schemes;
4. Complete configuration audit and submit the report;
5. Conduct related configuration management training for developers;
6. identify problems in the software development process and develop solutions.
Are you a qualified configuration administrator?
A high-level Configuration Manager plays an important role in the development team as a whole. If a configuration management tool such as clearcase is implemented in an enterprise, but there is no professional Configuration Manager to manage it, it is like a tractor installed with a Mercedes-Benz motor, but it is still not running fast. In early Chinese enterprises, it was very difficult to find a suitable Configuration Manager, which was finally undertaken by system administrators. Different configuration management tools have different requirements for configuration management personnel. For example, VSS has low technical requirements for configuration management personnel.
According to the responsibilities and requirements of configuration management, what qualities should a qualified configuration management personnel possess?
1. Professional ethics is the top priority, because the configuration management personnel are responsible for managing the most important assets of the software company.
2. Professional knowledge of Software Configuration Management, it is best to be proficient in a configuration management tool, there is no tool is impossible to implement Software Configuration Management, otherwise it can only be an extremely inefficient paper.
3. Knowledge of project management, familiar with the software development process. In general, it is best to go through the development and management processes of several software projects, or be a project manager to have a clear understanding of the entire process of software development. Experience in software development can be more convincing, the Configuration Management process can be improved only when you experience configuration management as a developer.
4. Have a certain overall view, have a certain IT background knowledge, and are familiar with the system (operating system, network, database, etc.
In addition to personal qualities, there are also some common characteristics.
1) Communication Skills: when deploying and implementing configuration management, there will certainly be some conflicts. For programmers, there is no constraint before using configuration management, but after implementation, there are some constraints that this is not your job. If a problem occurs during use, the configuration management personnel must communicate and solve the problem.
2) stable, careful, and patient. Configuration Management needs to deal with developers, testers, and project managers, but they are not very enthusiastic about following the configuration management process and tools. Therefore, they need to be stable and patient.
3) can quarrel. Sometimes, if communication fails, you need to use forced means to ensure that the specific configuration work requirements are executed. I remember seeing such a sentence on the Internet: It was really fun to manage configurations ~!
Confusions of configuration Administrators
Yong Yan, a software engineering company, is now the configuration administrator of a project. She has a more representative view of Software Configuration Management Personnel. In yonyou Software Engineering Company, a Configuration Manager is set up for a project. The main task is to manage the version of the project products and check the documents and codes in the project with the project manager. However, this Configuration Manager is not dedicated-time. In addition to being responsible for configuration management, it also undertakes the development and testing of some projects. As a part-time SCM employee, Yan yanqiang believes that there are two problems to be aware:
First, how can I ensure configuration management when tasks are insufficient?
As a Configuration Manager, it is not just engaged in configuration management. In many cases, it will accept the development work assigned by the Project Manager, at this time, how to deal with the weight of configuration management and development work is very important, especially when a project is at a critical juncture, the development progress is tight, and many companies ignore configuration management, however, configuration management is often the most important at this time, and a problem occurs at this time, which has a greater impact on the project. Therefore, in many cases, you have to pay time for configuration management, such as overtime. If a problem occurs, the Configuration Manager must fix it immediately.
Second, fuzzy positioning. Many SCM personnel are vague about their positioning and do not place themselves in the role of a project manager. I feel that I am only an insignificant role in the project team. In software development in China, it has always been a matter of re-development personnel. If testers are despised, configuration management personnel will not be paid much attention. However, the configuration personnel should be a project manager's backup and should develop to the project manager.
Best practices for configuring Administrators
For the department settings of the configuration management personnel, Deng Xiaonian believes that medium and large software companies in China can set the following three positions in the configuration management department:
1. Configuration Management Manager: Responsible for the company's comprehensive configuration management;
2. Create release engineers: mainly responsible for creating and releasing and deploying products;
3. Tool Management Engineers: mainly responsible for the development and maintenance of configuration management tools and training on the use of tools.
Considering the reality of our country, it is unrealistic to set up an SCM personnel for each project in a software company. It can be seen from the above that the best practices and promotion methods of the configuration administrator can be carried out in the form of "part-time + full-time. Specifically, you can arrange it as follows:
1. A software company must have an overall configuration management solution and strategy at the company level. For each specific development project, there must also be a configuration management policy suitable for the project's needs.
2. In the SCM policy at the company level, full-time configuration management personnel are set up, which is generally held by high-level personnel, meeting the quality requirements of the configuration Administrator mentioned above.
3. In the project-level SCM policy, set up part-time Configuration Management Personnel. Generally, they can be concurrently used by developers or quality personnel.
4. communication and coordination between full-time SCM personnel and part-time SCM personnel. In addition, for SCM tools such as clearcase, tasks are usually relatively tight during the preliminary deployment. After implementation, the operations are relatively simple and only one part-time employee is needed. The SCM process can be implemented through repeated communication between full-time SCM personnel and part-time SCM personnel.
Implementation-from the boss's perspective
How should I implement Configuration Management? Software Configuration Management is a supportive and guaranteed job. It does not directly generate profit-making results for the enterprise. Every activity consumes resources of the enterprise, you also need to purchase configuration management tools, which will increase production costs. Therefore, for a software company, the implementation of configuration management needs to be considered from the perspective of the boss.
What is successful Configuration Management?
A software project that does not implement configuration management often has problems such as version chaos, inconsistent documents, and defects. These problems are ultimately software quality problems. Therefore, the simplest way to manage successful software configurations is to compare before and after the configuration management implementation activities, whether the quality of software products has been improved, and whether the development team can work on a configuration management platform that helps improve overall work efficiency.
The criteria for success in every activity in configuration management are: Does this activity really help us to implement configuration management activities? How much help does it improve the quality of our products? Can it help the development team work more efficiently?
Configuration Management Process Reengineering
The Implementation of Software Configuration Management requires a standardized software development process. Therefore, for a software company, to implement configuration management, it must first re-engineer its own software development process. The quality of reengineering determines whether configuration management is only version control and whether it can effectively implement configuration management. If the process is not good, it may only reach the version control level and cannot reach a high level of "configuration management" such as change control and process management.
Select an appropriate configuration management tool
With the configuration management process, you need to apply the configuration management tool to ensure the effect, scope, and quality of configuration management. We have discussed how to choose an appropriate configuration management tool in this workshop. We believe that the company can follow the following four principles when selecting SCM tools.
The first is the tool price. Generally, small and medium-sized software enterprises in China do not have enough funds to implement some commercial tools. Therefore, we can only return to the next step and adopt some flexible methods for implementation. For example, for change management, issue a change form. Some companies use some simple MIS for management and save data to the database for query and storage purposes.
Second, in terms of functions, it can meet the needs. Complicated products are also troublesome to use, and the requirements for configuration management personnel are also high and expensive. As long as the tool meets the needs, there is no need to pursue a complete set of functions.
Third, performance. Configuration management is the most important resource in development. Once it crashes, the loss will be huge. Therefore, the operation of the configuration management tool must be very stable without any faults, and remedial measures should be taken if any faults occur.
Fourth, whether the implementation process is smooth, and whether the after-sales service and technical support are complete.
Correctly implement configuration management tools
When implementing the configuration management tool, the tool must be well integrated with the development management process to ensure the correct implementation of the tool. This is also the biggest difficulty for software companies to use various tools.
1. Configuration Management should be more automated
Change management should support different change types throughout the entire life cycle from project start to maintenance; version management and release of code should be done in one go; the configuration relationship of version can be shown simply. Although the configuration management tool involves these aspects, none of them can be fully automated. Many times, we need additional work to maintain the configuration management system itself. It can be said that the overall complexity of the project remains unchanged. After configuration management is implemented, the complexity of software development is reduced, but the management complexity is increased. Therefore, the automation of configuration management is very important.
2. configuration management should be based on the process
It is impractical to execute configuration management without a process. Most existing configuration management tools support process management, but the process is not necessarily suitable for every company. Although the ucm process of clearcase is good, it is difficult to customize it. We can only adapt the company's project environment to this tool, rather than adapt the tool to the existing development environment, there are a lot of the best practices. Configuration Management tools must support both processes and custom processes.
3. Easier use of policies and standardization
Many standards need to be defined during configuration management, such as version name rules, document naming rules, check in, and when to create branches. Currently, some configuration tools do not provide specific definitions in this regard. You need to configure the Administrator to write additional scripts or programs to restrict execution. All of these areas need to be improved.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.