I. Introduction
With the continuous improvement of the level of information technology in society, the information industry is expanding rapidly, and information enterprises are growing rapidly, which leads to fierce competition in the information market. In order to survive, meeting customer requirements is the primary responsibility of all industries. Customer satisfaction depends on quality, cost, and progress. quality is one of the key support points, which requires us to have a better understanding of quality management. We all know that PMBOK divides project management into nine knowledge domains, scope management, time management, cost management, quality management, human resource management, communication management, procurement management, risk management, and comprehensive management. Quality Management, as one of the nine major knowledge domains, shows its importance.
Quality management includes three process domains: quality planning, quality assurance, and quality control. Quality Planning is the first process domain of quality management. It mainly integrates the quality policies of various companies, product Descriptions and quality standards and rules are used to develop implementation strategies through tools such as income, cost analysis, and process design. The content fully reflects user requirements and provides guidance for quality team members to effectively work, provide a basis for project team members and related project personnel to understand how to implement quality assurance and control during project implementation, and provide a solid foundation for ensuring project quality assurance. Quality assurance is a planned and systematic activity throughout the entire project lifecycle. It regularly evaluates, inspects, and improves the implementation of the entire project quality plan, provide trust to managers, customers, or other parties to ensure that the project quality is consistent with the plan. Quality control is a PDCA cycle process that tests and verifies the results of stages and provides reference for quality assurance.
2. Quality Management Responsibility allocation
Our company produces standardized software in development projects and adopts ISO9000 standards in the production process. In addition to the roles required for project development, each project is equipped with a configuration management team, a test team, and a quality assurance team to ensure the implementation of quality management. The three roles are described below:
1. Duties of the Configuration Management Team
The Configuration Management Team ensures that both internal and external documents are completed at the same time of project development. The timely generation and standardization of internal documents is an important prerequisite for ensuring that project development teams can better interface and communicate with each other, it is also the premise to ensure that the project is not blocked by a key path but delayed. As mentioned above, the configuration management team is also the basis for ensuring the role of the Quality Assurance Team. The configuration management team has the following responsibilities: Improve the codes, documents (including external files), and phased results that require archiving and version control by various departments; one-way access control for codes and documents; version control for all archived documents; provision of document specifications and delivery to the development team.
2. Test team responsibilities
As the main means of quality control, the testing team is responsible for testing design and implementation of software. Like software development, testing also requires the design of test plans and test strategies before execution. Generally, testing can be divided into the following types: correctness testing, functional testing, performance testing, security testing, and system testing. These tests need to be described in the test plan and test strategy to guide the test team members to write and execute test cases. Before being handed over to testers, programmers have conducted unit tests to ensure that programs are compiled and run correctly.
The tester tests the functions to be implemented by the software according to the detailed design documents to ensure that the software is correctly executed to meet the design requirements. This only proves that the software correctly reflects the design philosophy, however, whether it truly reflects the user's needs requires further functional tests.
Only by testing based on the features mentioned in the Software Requirement Specification can testers ensure that the software products developed by the project team meet user requirements. After the correctness test is completed, the performance of the software needs to be tested. The performance of the software plays an important role in this project. The performance requirement may change the design of the software, in order to avoid software Rework in the future, testing requires a greater emphasis on performance. If necessary, the test team also needs to perform security tests to ensure secure and reliable system use.
3. Quality Assurance team's Responsibilities
As the implementation team of quality assurance, the Quality Assurance team is mainly responsible for ensuring transparent software development. Almost all departments are related to the Quality Assurance Team during project development. The Quality Assurance team provides the project manager with a report on the differences between the project progress and the real development of the project, and proposes the causes and improvement methods for the differences.
When the project progress is delayed or the Quality Assurance team determines that there is a problem with the development quality at a stage, the project manager, the project owner, and other necessary personnel are requested to hold a quality meeting. Solve existing and potential problems. Quality assurance is based on document review. Therefore, document version control, especially software configuration management, directly affects the influence and strength of software quality assurance. The inspection scope of the Quality Assurance team includes: whether the system analysts correctly reflect the user's needs; whether the software execution body correctly implements the design philosophy of the analysts; whether the tester has conducted a thorough and comprehensive test, whether the configuration administrator has standardized the document, and whether version control is effective.
3. Quality Management Implementation
With good resource allocation and how to implement quality assurance throughout the project lifecycle, let's look at the implementation process of quality assurance from the following aspects:
1. Quality assurance of project progress
The project progress is the most intuitive manifestation of the project's smooth progress. Obviously, the project development plan is required before the project starts. If the project development plan is completely reasonable, the project progress truly shows the distance between the project and the final delivery, however, it is almost impossible to develop a reasonable project development plan. To ensure the project progress, we must first ensure that the project development plan is as reasonable as possible.
The rationality of a project plan is directly related to the experience of project planners engaged in projects of similar sizes and similar businesses. through experience, it is often possible to anticipate potential obstacles, this requires that project planners need to concentrate on improving the plan.
At the initial stage of project planning, a Project Plan Review Meeting organized by the Quality Assurance Team invites technical experts, users, and project team members of the company to discuss the feasibility of the project plan. Brainstorming is usually used, after the meeting, the designated recorder will form a Quality record and send it to relevant personnel to modify and improve the unreasonable places in the plan, and the Quality Assurance personnel will track the results, to ensure the integrity and feasibility of the project plan, the improved plan is handed over to the configuration management personnel for version control.
However, in the implementation of the plan, the plan is not "fixed ". Often humane, "the plan cannot keep up with the changes", but "keep up with the changes ". The Project Plan divides the entire development cycle into several stages based on milestones. Based on the completion of milestones, adjust the number of tasks in each small phase and the time of tasks completed. This method is very helpful for dynamic adjustment of the entire project plan. It is also conducive to the implementation of project quality assurance.
In actual operation, when the Quality Assurance team finds the difference in the implementation of the plan, it reports to the project manager, and the project manager is responsible for periodic maintenance of the plan, the Quality Assurance team should assist the Configuration Management Team in Version Control of changed plans. The company has developed a centralized customer service system of Hunan Mobile, with six sub-projects under development that lasted 10 months. Currently, most of the projects have been developed and the system is in trial run, the project amount is tens of millions yuan. In such a project, from managers to developers to testers have accumulated a wealth of experience, especially the formulation of project development plans and project progress control.
2. Quality assurance for each stage of project development
A. Requirement Analysis
Requirement Analysis is a process in which developers Define what the system needs and how to do it. From the experience of system analysis, this process is often a step-by-step process, and it is difficult to form a complete understanding of the system at one time. Only by constantly communicating and confirming with the customer's field experts can we gradually understand the user's needs. It is learned from the system development process that the errors made during system analysis will be multiplied in the following phases, the more expensive the error is to correct the analysis, the more time it affects the system duration and system quality.
To solve system analysis errors, our company usually invites users to participate in the demand evaluation, and then keeps track of the opinions of their users to check whether they are included in the requirement specification, at the same time, sign the signature with the user to form a requirement baseline and submit it to the configuration administrator for configuration management.
Although users are invited to participate in the project as soon as possible, the request for changing user needs cannot be avoided in the project. For changes in requirements during the development process, we require the user to fill out the change application form and send it to the project configuration administrator. After being transferred to the Quality Assurance team through the configuration configurator, organizes expert groups and project team members to discuss the feasibility of implementing changes and the impact after implementation. Small changes are directly recorded in the Cause Analysis items and risk items column of change records, for large changes, a formal change report is required, any change requires a synchronous change to the corresponding document (including the requirement specification, detailed design, installation, and Operation Manual ). However, if the change cannot be implemented or has a huge impact on the progress, the progress will be postponed. At this time, we will submit the Change Report to the user or invite the user for a coordination meeting, discuss the change trade-off or project progress change issues.
After the change is determined, the Project Manager will organize the change and the testers will check the change results. The Quality Assurance team members will supervise the change implementation process and assist the configuration administrator in version control of the changed deliverables. After the change is implemented, You need to designate a person to assist the user in testing and sign the change before agreeing to launch the change.
B. System Design
A good architecture should be scalable and configurable, while a good architecture requires a good design method. Natural Design Selection has become the primary task of system design, which design method is better?
Design Selection cannot be generalized. It must be analyzed based on the project structure, Project characteristics, and user requirements. The quality of the project members should also be taken into account, if most of them have not been engaged in object-oriented design and the project is pressing, there is no extra time to train the team members to master the object-oriented design method, although we all know the advantages of the object-oriented design method, it is better to adopt the process-oriented approach (except the user-specified Development and Design Method) to reduce the technical risks of the project.
Our company has a project where users specify to adopt object-oriented analysis, design, and development, and the development cycle is short. In the case of rogue, the project team can only select an object-oriented software development process, because the project team has rarely engaged in object-oriented development and lack of experience, the project progress is delayed after the project is launched, and the project has not achieved the expected results.
In response to this development, we analyzed the reasons and found that the team members had little mutual communication about new technologies during the development process, and they had their own understandings and ideas, resulting in inconsistency in understanding, this results in high repetitive work and lags behind the project progress. It is recommended that the project team members adopt centralized work, segmented learning, and the results of learning should be immediately published to the relevant project personnel, then, the configuration administrator will organize the documents released and add the rules to the configuration library for sharing. This facilitates mutual learning and reduces repetitive work. During this development, our company learned a lot from the management, design, and development personnel. At the same time, after the development of this project, the group members also accumulated rich object-oriented development experience.
In addition to design selection, there is also a problem that is easily overlooked, namely, public development. Public development can reduce repetitive work and reduce development costs. This requires us to repeat the design phase by carefully studying user needs, identifying public classes as much as possible, and defining designated persons responsible for design notification to other designers to reduce repetitive work. The Quality Assurance Team organizes technical experts, Project Team designers, developers and testers to review the design documents provided by the project team, check the feasibility of the design document for the next phase, identify possible design errors in a timely manner, reduce project development risks, and ensure that the design document can provide practical guidance for developers and testers. Reusable designs are extracted as public libraries for design and development, which can be reused by project teams or the entire company. The configuration Administrator is responsible for Version Control of the design document.
C. Implementation
Implementation is the code production process. This includes not only the generation of code, but also the generation of test cases. Provide detailed design for the previous stage. The programmer starts coding and debugging the program. The tester designs the test case according to the design, the designed use cases must be approved by the project team members and approved by the Project Manager before they can enter the configuration library. At the same time, the programmer submits the program to the tester after debugging to check the program correctness.
D. Document Management
Document maintenance is mainly performed by the configuration management team. Documents are divided into internal documents and external documents in terms of usage.
Internal documents include: Project Development Plan; Requirement Analysis; architecture design description; Detailed design description; Component index; Component Composition description; Component Interface and call description; Component index; component Interface and call description; class index; Class Attribute and method description; test report; test statistical report; quality supervision report; source code; Document Classification Version index; software installation package file.
External documents mainly include: Software Installation manual, software operation manual, online help, system performance indicator report, and system operation index.
It is still difficult to solve how to ensure the comprehensiveness of documents so that they can guarantee the project progress without delaying the project progress because of the document writing. To solve this problem, the core is still a "degree" problem. During the development of this project, a very important task of the Configuration Management Team is to write document specifications and document templates. When a document template is available, only "fill in" is left for the person who needs to write the document. In a sense, the speed of writing the document will be faster. If the person who writes the document thinks that the more detailed part of the document can be completed by others, the document will be handed over to others, but the document is not officially submitted at this time, after others have completed the writing, they must be reviewed by the document's initial author. After the review is passed, they can be formally submitted and enter the Software Configuration Management Cycle.
The core task of the Configuration Management Team is to organize and manage documents. Depending on the document, the document sources are also different. Some of them are transferred to the configuration management team after review by the Quality Assurance Team, and some are directly transferred to the configuration management team from the document source. Document management is a very cumbersome task, but in the long run, it not only reduces the project development dependency on a single major person, thus reducing the risks brought by the flow of personnel to the project, more importantly, it plays a role in boosting the project when the project reaches 10 percent.
From the past experiences of large projects, writing documents in the early stages of project development may make the project progress a little slower than not writing documents. However, as the project progresses, various departments need to cooperate more and more, developers need to know the development ideas and processes of other personnel to advance their development. An obvious example is system integration, or when some links are built on the basis of other links, the accuracy and efficiency of document communication are more obvious.
3. system maintenance quality assurance
In our company, the maintenance team's task is to ensure the tracking service for project customers, on the other hand, ensure that other developers of the project are freed from the project as soon as possible so that they can be put into the development of the next project. Therefore, the project maintenance team members are generally undertaken by a small number of developers in the project team. They not only understand the core content of the software, but are also familiar with customers, so that they can correct errors as quickly as possible. All General errors, such as improper operations, are handled by the maintenance team. However, you need to test and confirm the launch. If the modification is large, the change control process should be followed. The user or maintenance personnel should fill in the change application. After expert meetings discuss and analyze feasible solutions, they should be implemented by the maintenance team and submitted to the user after passing the test.
Maintenance Team members follow up on projects. When a project was just delivered to users, a large number of people in the maintenance team followed up, and gradually reduced the number of people who followed up with the software stability and moved to other projects.