What Is Open Source Configuration Management?
Software configuration management (SCM) refers to ensuring the integrity and traceability of all configuration items by performing version control, change control procedures, and using appropriate configuration management software. Configuration management is an effective protection of work results. (Software configuration management (SCM, or just plain CM) is an organizational framework that is, a discipline for managing the evolution of computer systems throughout all stages of systems development.)
- Software Configuration Management (SCM) is a technology for identifying, organizing, and controlling modifications. It applies to the entire software lifetime. Changes often occur when software is created, and changes exacerbate confusion among software people on the project. The confusion is caused by a lack of careful analysis or change control before changes are made. Because changes can occur at any time, the goal of software configuration management activities is to identify changes, control changes, ensure that changes are implemented correctly, and report changes to other interested parties. Software configuration management is a set of tracking and control activities. They begin when the software development project starts and end when the software is eliminated. From a certain perspective, SCM is a technology for identifying, organizing, and controlling modifications, with the goal of minimizing errors and maximizing production efficiency. [1]
- Without software configuration management, the biggest trouble is that the work results cannot be traced back. In order to prevent the results from being overwritten, many people, including myself, used to manage the version manually in the early days. For example, when a new version was created, the current date was used to name the folder, and then the subsequent changes were copied. Internally, so that the previous version is saved, and different versions will not be overwritten. Although this method can solve the problem of version backtracking to some extent, the shortcomings of it are obvious: the first point if the retention results are too frequent, it will lead to a large number of folders with duplicate content, huge
- The method of configuration management is mature, and the corresponding software tools are also mature. Basically, there are no problems that cannot be understood or used. The implementation effect of configuration management is entirely a matter of man-made. The main problem hindering configuration management is that people are troublesome and lucky.
- In the absence of mess, version control seems a bit cumbersome. Every time you modify your work, you always need to Get Latest Version, then Check Out, and Check In after the modification. You have to do three more steps. In fact, these three steps add up to more than ten seconds, and it doesn't take much effort. It doesn't add much trouble at all. It's just that I feel uncomfortable. However, if you do not implement version control, in case of problems such as work results being overwritten or lost, the trouble will be serious.
- In the process of software development and management, there will be many work results, such as documents, programs, and data. They should be properly kept for review and modification. It would be cumbersome to use all the files in a computer.
- The work results that are included in the category of configuration management are collectively referred to as
- The concept of configuration management originates from the United States Air Force. In order to regulate the design and manufacture of equipment, the United States Air Force formulated and released the first configuration management standard "AFSCM375-1, CM During the Development & Acquisition Phases" in 1962.
- The concept of software configuration management was put forward in the late 1960s and early 1970s. At the time, Professor Leon Presser of the University of California at Santa Barbara was
- Software configuration management runs through
- In order to achieve the above goals, the following guidelines should be implemented:
- Technical department managers and specific project leaders should use and follow XSSC's
- Software configuration management tools commonly used today are divided into three levels:
- Rational
- For any management process, the prerequisite to ensure the normal operation of the process is to have a clear definition of roles, responsibilities and permissions. In particular, after the introduction of software configuration management tools, the ideal state is that all personnel in the organization perform corresponding actions according to the requirements of different roles and according to the permissions granted by the system. Therefore, the software configuration management process described in this article mainly involves the following roles and division of labor:
- Project Manager (PM):
- The project manager is responsible for the entire software development activity. He approves the activities of configuration management and controls their progress based on the recommendations of the software configuration control committee. Its specific duties are as follows:
- Develop and modify the project's organizational structure and configuration management strategy; approve and issue configuration management plans; determine project baselines and development milestones; accept and review reports from the Configuration Control Board.
- Configuration Control Board (CCB):
- Responsible for guiding and controlling the implementation of various specific activities of configuration management, and providing suggestions for the project manager's decision-making. Its specific duties are as follows:
- Customize the development subsystem; customize access control; formulate common policies; establish and change the settings of the baseline, review the change application; determine the corresponding countermeasures based on the report of the configuration administrator.
- Configuration Management Officer (CMO):
- Perform various management tasks according to the configuration management plan
- A software development project can generally be divided into three phases: the planning phase, the development phase, and the maintenance phase. However, from the perspective of software configuration management, the activities involved in the latter two phases are consistent, so they are combined into one and become the "project development and maintenance" phase.
- Project planning phase
- At the beginning of a project
- Many domestic software companies have gradually realized the importance of configuration management, and they hope to implement configuration management to improve the level of software development management, enhance their own competitiveness, and respond to market pressures.
- Specifically, users can get tangible benefits in terms of funds, management level, and protection of intellectual wealth.
- Save users money
- The overall implementation cost of Hansky's configuration management system is low; low requirements for hardware system performance can be used across platforms, saving users' investment; simple installation, easy maintenance, no need for a full-time system administrator; simple, practical, easy to learn and Mastering can effectively shorten the cycle of the actual use of the configuration management system; good scalability and flexible license management methods, as well as component solutions, make our configuration management system support both group mode users and large-scale The team's collaborative development work can be easily expanded. Users can flexibly configure according to actual needs, which greatly reduces the initial investment capital; it is forward-looking and protects the user's investment. Hansky's software configuration management products use the latest technologies (such as pure TCP / IP technology, J2EE technology, MS.NET development environment, etc.) and new application models (such as three-tier structure, B / S application structure, etc.) to ensure The system will not lag behind similar products or require technical updates for a long period of time; the built-in incremental storage backup / restore function saves users' expenses in terms of backup.
- Reduce user product development cycles
- Using Hansky's Firefly system for version management and tracking of development resources, a company-level code knowledge base can be established and all historical versions in the development process can be saved, which greatly improves the code reuse rate and also facilitates the maintenance of multiple versions and Develop new versions to maximize code sharing. Use Butterfly to set up problem tracking and message communication mechanisms between development groups. Through the integration with the email system, the communication ability between development groups has been greatly enhanced. The rich report functions can be used to sort out and classify the problems found Report as a guide for development. By using Hansky's configuration management suite, development efficiency and product quality can be improved, code confusion, insufficient communication, and disorderly development can be avoided, greatly shortening the product development cycle.
- Reduce product deployment costs
- After using Hansky's software configuration management solution, users can establish a standardized configuration management process with the help of Hansky technical experts, and all software products will be uniformly and effectively managed. With Firefly and Butterfly, engineers can directly access the latest version required by accessing the server, find the company's knowledge base, submit change requests, and collect user feedback. Developers can reproduce the user environment without going to the scene, focus on solving problems, and release patches. In this way, it can respond to projects in multiple locations at the same time, prevent the disadvantages of developers being allocated to various project sites, scattered power, and insufficient staffing, while saving a lot of travel expenses.
- Improve the level of software development management
- (1) Improve the user's development work mode
- Using Hansky's configuration management solution can effectively improve users' software development models and processes, and increase the level of enterprise software capability maturity.
- With Firefly and Butterfly, users can:
- Effective management of workspace, each member has an independent workspace, and can record its change set and complete change history throughout the life cycle;
- Easily establish branches, support comparison and merge between branches, merge, and manage baselines;
- Support parallel development mode and improve development efficiency;
- Supports off-site development. Firefly provides good support for geographically distributed development teams by automatically or manually synchronizing the repositories of different development sites;
- Integrate change request management and change recording and tracking in the project life cycle to optimize the testing process;
- Perfect release management, which can easily trace back any version, customize the application version for different users, promote the rapid deployment of the system, and provide auditing capabilities for the content of the released version
- Support change sets and atomic transactions to ensure consistency of changes;
- Support offline version management to help users record the complete history of the project certification cycle;
- Built-in Defect, RFE, Task (question, suggestion, task) workflow, in line with the software development process of formal software companies. The scientific workflow system can make the company personnel work handy and methodically, thereby greatly improving work efficiency.
- (2) Strengthening project management capabilities
- Through the browser, the project leader can easily view the progress of the project and the work of the employees;
- Code review and project status review can be implemented using the web interface;
- Rich charting and reporting functions, can automatically generate change statistics reports, configuration audit reports, support process management and progress analysis, and can help managers make decisions.
- (3) Quantitative workload assessment
- In traditional development management, workload has been an incalculable indicator. Relying on the developers themselves is too arbitrary; relying on the managers, the subjectivity is too strong. After adopting Firefly and Butterfly management, the system can objectively record the work content and quality of employees, which can be used as a measure of workload.
- (4) Standard test process
- After Butterfly and Firefly are integrated, they can effectively track and handle software changes, completely record the tester's work, and the test has a real job. The tester performs specific tests on each day's work according to the modified description details. It also has the appraisal ability for the testers, so they are interlocked, which effectively enhances the management of the test.
- (5) Strengthen coordination and communication to increase team competitiveness
- Use Firefly to save all the company's knowledge and wealth, use Butterfly's FAQ, search, and automatic email notification functions to effectively strengthen communication between project members, so that problems can be discovered, modified, and notified in a timely manner without additional Adding a lot of work has greatly improved the collaborative work efficiency of the development team.
- Protecting the Intellectual Wealth of Enterprises
- From the perspective of the development strategy of the entire enterprise, how to transform the personal knowledge and experience into the company's knowledge and experience under the circumstances of rapid technological changes and frequent personnel movements. This will improve work efficiency, Shortening product cycles and improving the company's competitiveness are vital. Adopting scientific configuration management ideas, supplemented by advanced configuration management tools, can help users establish a complete knowledge management system internally.
- (1) Code Object Library
- Software code is the crystallization of the brainpower of software developers, and it is also a valuable asset of software companies. The various code objects formed during the long-term development process are like parts, and are part of the rapid generation system. However, a long-term fact is that once a developer leaves the job, the code he originally wrote will basically become garbage and no one will ask; or due to incomplete documentation, it will not be elegant. The reason is that there is no scientific management of the code, components and documents of each developer, and the scope of application has been expanded to the company level, standardized, explained and popularized. Firefly provides a platform and warehouse for code management, which is conducive to establishing a company-level code object library, increasing code reuse, improving development reuse rates and software quality.
- (2) Business and experience database
- With Firefly and Butterfly, a complete development log and problem collection can be automatically generated. The entire development process is recorded in text and will not disappear due to the flow of someone. It is beneficial to the company to accumulate business experience, regardless of software maintenance or version upgrade. Has an important guiding role. In addition, using Butterfly's built-in FAQ module, it is possible to establish a convenient experience database for retrieval and to disseminate and share collective wisdom.
- (3) Security and reliability
- Because the configuration management system centrally stores the important knowledge wealth of the enterprise, it has extremely high requirements for its security and reliability. Firefly can perform redundancy check on all stored files, use MD5 as the file checksum, and provide backup and recovery tools to ensure data reliability. At the same time, Firefly supports user authentication and access control, and supports user groups to facilitate permissions setting. Access control can be set for branches, directories, or even individual files, and adopts Windows NTFS-like permission management methods, which is both flexible and secure. These measures have enabled the enterprise's intellectual wealth to be safely and reliably stored and protected.
- In addition, because Hansky's product uses a three-tier structure design, its storage repository does not rely on the network file system at all, and it does not need to share storage directories.