A Free Trial That Lets You Build Big!
Start building with 50+ products and up to 12 months usage for Elastic Compute Service
The rapid development of computer and communication technology, especially the development and popularization of Internet technology, provides a fast, accurate and reliable channel for information exchange within and between enterprises and the outside. The information-based enterprise operation management system has become an essential support system for enterprises and institutions to compete in the global market. It is precisely because of this market demand and technology development status that IT industry in China has brought unprecedented development opportunities, especially the software industry. Whether software enterprises can seize such a rare opportunity for development requires a wide range of efforts. Software Quality Assurance plays an important role in the development process. As we all know, India has become the fastest-growing country in the world in the software industry. At present, the annual production value of the software industry has reached billions of dollars, and it is still growing by 30% ~ 50%. Compared with the software industry in China and India, it is not difficult to find that China has a huge software market and world-recognized software development resources. In terms of basic research and technology foresight, it also has its own advantages, which is superior to India in terms of the overall socio-economic environment. In addition, China's software developers are relatively low-cost, only about 1/3 of the world's market. Although the Chinese do not lack the talent for software development, but with the increasing emphasis on large-scale operation today, the inherent defect of management makes it difficult for us to get rid of the small workshop-style software development model. India's software industry, from the very beginning, is based on serving American software enterprises and complying with its software development management model, in line with international standards.
Management problems cannot be completely solved, and the quality assurance of software cannot be discussed. I recently learned more about project management from a software company (Company A) that has passed the cmsv4 evaluation in India, the close relationship between project management standardization and enterprise software quality assurance is more profound. The following describes the architecture of software enterprises, software Project Plan, project management, project manager's responsibilities and other aspects of India's software project management and China's Software Quality Assurance should pay attention to the issues of some experience, for industry reference.
1. Organizational Structure of software enterprises
(1) Company A Structure
Figure 1 shows the organizational structure of Company A. QA, SSG, and HR departments vary greatly from domestic companies.
* In Company A, the QA (Quality Assure) department is independent of the R & D department and is responsible for supervising the implementation of the process. QA is also responsible for leading a joint working group with the R & D department to develop the company's processes.
* Similar to our IT department, SSG (System Support Group) is responsible for allocating and managing all computer software and hardware resources of the company. SSG is responsible for the installation and maintenance of all office environments and development/laboratory environments. Computer resources belong to SSG, and each project requests SSG. After the project ends, the devices must be handed back to SSG. Individuals and project teams do not have fixed software and hardware resources. SSG is a department parallel to R & D.
* The Human Resources Department is responsible for managing the company's human resources and maintaining the employee's skill database. At the beginning of the project, the project team applied for Human Resources and computer hardware and software from SSG. At the end of the project, you need to release computer resources to SSG, release human resources to the HR resource pool, and update the skill database of employees. The human resources of the R & D department are allocated by the R & D Director and their assistants (similar to the human resources departments of various companies in China ).
(2) Project Team Structure
1) Company A conducts independent accounting for the project team. The project owner is the project coordinator. The project owner is responsible for project planning and implementation and the division of labor among project members. At the end meeting of each phase (such as the end of the Outline Design), the PC shall be reviewed by QC (quality coordinator. Except for the interfaces of PC and QC, all other external interfaces are completed by EM (engineer Manager). Em is responsible for dealing with customers, and requests resources from SSG and human resources, coordinates with other project teams.
2) report relationship:
Team member> Team Leader> Pc> em> R & D Director.
3) Indian engineers are divided into 7 levels and evaluated once every six months, that is, there is an opportunity to upgrade once every six months.
Level 1: Software Engineer, an undergraduate and graduate student.
Level 2: Senior Software Engineer.
Level 3: project leader.
Level 4: Project Manager.
Level 5: Senior Project Manager.
Level 3 can be PC and Level 4 can be em. At the beginning, I got an average of 2 years of upgrading. The more I got, the slower I got a promotion.
Company A stipulates that one person can simultaneously serve as a PC for two projects, and there is no restriction on projects managed by EM.
Company A usually has four to five project teams, with a maximum of 10 members.
The above are the organizational structure and project team structure of Company A (also the most standardized software company in India. It can be seen that Company A's organizational structure is very clear, each department is very detailed in classification, the task is clear, and every step of software production is under the responsibility of a dedicated department and dedicated personnel, from the most basic developers to the general manager responsible for the overall situation, layer-by-layer management, smooth communication channels. In our country, the non-standard management is usually first reflected in the company's organizational structure, which shows the lack of departments and the intersection of management. Most software companies in China are relatively small, with few companies with more than 100 developers. In India, software companies, regardless of their size, are all "small but dirty" and will never change a reasonable organizational structure because of their size. Therefore, the author believes that in order to effectively ensure product quality, domestic software enterprises must first make efforts to establish a reasonable organizational structure. This is just like laying a solid foundation for building a tall building, the foundation is not solid, the structure is unreasonable, and other efforts are futile. Some people say that the small scale of software enterprises in China leads to a lack of structural setup. However, the author believes that the quality of software products is not guaranteed only when a standardized organizational structure is not established, this seriously affects the development and expansion of enterprises.
2. Project Plan
Everything should be done before it is done. The "pre" here refers to the plan. For software enterprises, the importance of planning is self-evident. Let's first look at how Company A's project plan is developed: Before Company A's project starts, we must first estimate the project scale (CodeNumber of rows), and then develop a project plan. Usually the time is 2 ~ Three weeks, the longest known is five weeks. Em is responsible for formulating the project EWP (engineer work paper), which defines the human and computer resources required by the project, with the consent of the relevant departments, and reported to the General person in charge of R & D for approval before starting the project.
The official start time of the Project is counted from kickoff meeting of the project team, and closeout meeting ends.
Many people have heard this sentence: "The plan cannot keep up with the changes ". This "change" may not have a big impact on some industries, but it will have a serious negative impact on the quality assurance of software products for software companies. Why is it that the "Plan cannot keep up with the changes" phenomenon? The reason is that the main reason is that the importance of the plan is not enough. The plan is too general and rough, leading to poor enforceability. In addition, the impact of some human factors will inevitably lead to such consequences.
If our software company can take every detail into account when making a plan like company A, it is not a rush to make a decision, instead, all relevant departments should conduct repeated research, formulation, discussion and Modification on the product plan, and finally form a systematic, rigorous, and highly executable plan. Once a plan is created, it will be executed in strict accordance with the plan, without being influenced by a person or something. This will not only reduce the waste of a large amount of resources, but also ensure the quality of products.
Therefore, attaching great importance to the plan, making the plan carefully, and strictly executing the plan is an important part of the enterprise's effective product quality assurance.
3. Project Management
After an enterprise has constructed a reasonable organizational structure and made a careful plan, it enters the product development stage. In this phase, project management plays an important role, and the links involved are quite complex. The following describes the details of Company A in project management:
(1) development phase and project cycle
The development phase is obvious, focusing on the functions to be completed in each phase, and the work to be completed in this phase cannot be left in the next stage.
* Company A attaches more importance to the process than the project.
* The software development process is very standardized and systematic, and the process is highly executable and can be continuously improved in the practical process. Company A's process covers all aspects of a project's R & D, including the initial intention to release the final software version (release). There are corresponding procedures and regulations, basically, an industrial software development has been formed.
* People and processes are the two most critical factors to ensure project success. Only good people can develop projects according to the good process to maximize project success. A good process can ensure that the poor people do not make too bad things, but cannot make sure that they make high-quality products. A standardized, streamlined, and industrialized software development can be achieved through the process.
1) The plan is detailed and thoughtful.
2) the development stage is clearly defined in the process.
3) Each stage lists the activities of this stage and describes the attributes of each activity in detail:
* Enter a condition;
* Verification method;
* End condition, output.
4) A stage closing meeting should be held at the end of each stage. The end of the previous stage can enter the next stage.
5) each activity in the plan is specific, and the time of each activity is measured in days (half a day. The plan includes the time for quality control activities.
Review and test are two main measures to ensure software quality according to Indian company procedures. The importance of testing does not need to be explained, while review is a very simple and effective method that can detect errors in software as soon as possible. It can be said that any deliverables must be reviewed before being baseline-based. At present, Company A has a detailed and comprehensive review process with high enforceability and review checklist of various deliverables.
Software Enterprises in India have the following slogan: Everything is planned and everything must be reviewed.
QC (Quality Manager), as a representative of the Quality Assurance Department (SQA), supervises and ensures that project progress complies with various QMS processes and templates, collect some problems and solutions found in the project to optimize the process.
(6) metric data
In CMM, data is emphasized. Basically all data in the project process is recorded. Finally, the collected data is submitted to the Quality Assurance Department for analysis to improve the process. Company A's project managers and quality managers place great importance on project data collection, including various review data, test data, and daily activity data of project members. The Project Manager also needs to maintain a project file, which can contain records of all outputs, development activities, and management activities in the project development process. With this project file, you can fully understand the development process of this project.
(7) Team Spirit
Indian companies all emphasize team spirit and cooperation spirit. In essence, the process requires mutual coordination and understanding among employees. The cooperation and coordination spirit of Indian employees is much better than that of Chinese employees.
Indian companies all emphasize training and generally have specialized training departments for coordination. After new employees enter the company, they will be trained on the company's processes and other general regulations to ensure their understanding and implementation of the process. For specific projects, the project manager will put forward all training needs in the Project Plan when developing the project plan, including technical training and other required training.
(9) Configuration Management
Before the project is officially launched, the project manager should formulate a configuration management plan, specify the configuration administrator to create a configuration management database, and strictly manage the configuration according to the configuration process. The configuration process also provides detailed control over changes, and requests for changes without approval are absolutely not allowed.
The records are timely, adequate, and accurate. These records include important emails, meeting minutes, review records, defect reports, and test reports.
1) All exchanges with customers and other project teams must be recorded by email.
2) There is a tracking process for all activities. For example, all review records and change requests will have a status identifier to identify their current status, monitor its implementation by tracking its status.
3) all activities, including changes to documents and code, will be recorded in history.
4) The record is accurate and objective.
5) Many records are based on quantitative numerical records, emphasizing data-based Speech (the focus of cmsv4 is quantitative management ).
The above are some of the main links involved in Company A's project management. It is worth the reference of domestic software enterprises in formulating project management plans. In addition, software enterprises in China are prone to the following problems during product development and management:
1) Poor Requirement Description-Unclear, incomplete, too general, or untested requirements will cause problems.
2) unrealistic schedule-errors are inevitable if you want to do many things in a short period of time.
3) inadequate testing-the quality of the system can only be determined based on the customer's opinion or system crash.
4) constantly add features-many new features are required during development. This is a common problem.
5) communication problems-if developers do not understand the customer's requirements or the customer's expectations are inappropriate, errors will inevitably occur.
The emergence of these problems will have a negative impact on the software quality assurance. In view of the above problems and combined with Company A's experience in project management, the author puts forward some corresponding solutions, for reference:
1) Reliable requirements-a clear, complete, detailed, overall, achievable, and testable requirement agreed by all parties. The model (prototypes) can be used to help determine requirements ).
2) Reasonable schedules-leave sufficient time for planning, design, testing, correction, retest, change, and document preparation. You should not use a surprise method to complete the project.
3) test as appropriate-start the test as soon as possible; after each correction or change, the test should be retested. Sufficient time is required for testing and error correction in the Project Plan.
4) stick to the initial requirement as much as possible-once the development starts, you should be prepared to avoid modifying the requirements and adding new features, and explain the consequences of doing so. If a change is required, the change must be reflected on the timetable. If possible, use a quick model during the design phase to help customers understand what they will get. This will give them high confidence in their needs and reduce future changes.
5) communication-Pre-arrange and check as appropriate; Make full use of group communication tools-email and groupware) network Fault tracking tools, change management tools, and Internet functions. Make sure that the file is available and up-to-date. Prefer electronic documents to avoid documents on paper or media: perform remote joint operations and collaboration; use models as early as possible to make the customer's expectation clear.
4. PC (Project Manager)
The project manager is the key to project success or failure, and is primarily responsible for project success or failure. Therefore, the project manager's related content is put forward here. Company A is used as an example to describe the role of PC in the entire product R & D process, it is hoped to provide some inspiration to the project managers of software enterprises in China.
(1) In Company A, the project manager must complete the following steps before a project is officially launched:
* Project Plan ): describe the deliverables, project schedules, training needs, resource requirements, quality assurance plans, and quantitative quality objectives of processes and deliverables that should be completed throughout the project.
* Project configuration plan: the configuration administrator is specified here to describe the project configuration list, configuration management library, and Version Management Plan.
* Process handbook: Describes the cropped life cycle model and process of the project.
(2) During the project development process, the project manager should be familiar with the project progress, refine the work tasks, plan and arrange the work tasks of the project members. The project manager must be able to coordinate emergencies in a timely and reasonable manner.
(3) In general, the PC arrangement has the following features:
A. PC has rich experience in software development, understands the general process of software development, and understands the work to be done at each stage. This is the prerequisite for arranging the work of the project team members, company A has high requirements on the overall quality of PC.
B. before the project is officially launched, the PC prepares the Project Plan documents, including the project schedule, but this schedule is rough, only the start and end dates of each stage and each substage can be provided. The detailed work arrangements for each stage and each sub-stage and the work owners can only be arranged in the project development project according to the actual situation of the project. Generally, the detailed work arrangements for this week are carried out at the weekly project group meeting.
C. PC's work schedule is often accurate to days or even hours. To do this, you need:
* PC is very familiar with the progress of this project. The channel for understanding is usually the weekly status report of the team members and the direct contact with the team members, which also requires the team members to truthfully report the work.
* Very familiar with the work to be completed at this stage or this week. Know what to do now, and divide the work in a reasonable and meticulous manner, because the work of each decomposition is more meticulous, so you can relatively accurately assess the time required for the completion of these work.
* The PC has a better understanding of the abilities of the project team members and can be targeted during work arrangement. When the assigned employee is unfamiliar with the work, the corresponding team members will be designated for assistance.
* The work schedule of the PC team members is meticulous and full. Generally, some employees do not have things to do, and some employees do not have things to do. When this happens or the employees finish their work in advance, the PC will coordinate accordingly.
D. the work schedule of the PC at the Project Group meeting is generally limited to the two or three days after this week or even later. Generally, it is not too long. It is easy to lose precision and difficult to control the arrangement of long-time work. Relatively speaking, the short schedule is more accurate and easy to control, and can be constantly adjusted according to the completed work. Of course, this requires that the PC can grasp the overall progress according to the project schedule in the Project Plan.
E. project group meetings are generally held once a week (the time cannot be too long), but when necessary (such as the work of the team members has been completed or other tasks), the project meeting can also be held midway through the work arrangement, generally, the time is relatively short (about 10 minutes, generally no more than half an hour to avoid wasting time). In short, when the PC feels the need, a project meeting will be held.
F. When an unexpected event or an event that affects project unity occurs in the project team, the PC can coordinate properly and timely to solve the discord in the project team.
G. PC is good at encouraging its employees and giving full play to their potential. PC often praises the team members who have completed their work well.
From the above, we can see that the requirements for PC capabilities (including technology and management capabilities) are very high. China's software enterprises usually only pay attention to the technical capabilities of PC, but in fact, A person proficient in technology often cannot become a qualified leader. I believe that for PC, he must first be able to take a further step than his subordinates and be not blindly optimistic when the job goes smoothly, in the face of setbacks, the entire team is always highly motivated.
The above, combined with India's software project management experience, summarizes some issues that should be paid attention to in China's software quality assurance. Some people once proposed that the national software industry has little hope to learn imitation blindly. However, I believe that we may wish to adopt a "pick-up" approach on this issue. For the good, it turns out to be a successful experience, first of all, "possession ", then there is "selection" and "Innovation ". If we can truly understand and put India's management experience into practice, we believe it will play a positive role in promoting our national software industry.
Start building with 50+ products and up to 12 months usage for Elastic Compute Service