The project cycle of software development is divided into three phases: obtaining requirements and defining products, development and testing, deployment and O & M.
In the process of obtaining and defining a product, it is necessary to prevent the process from being too slow but being too fast and hasty.Especially for product managers of start-up companies, it is likely that they are under pressure to see that developers have nothing to do, so they can complete the product definition as soon as possible without fully understanding the market and competitor information, we did not fully communicate with our partners and did not think deeply. These problems are hidden due to a rush. Early detection leads to a large amount of rework in the development phase, and late discovery leads to undesirable product launches. It is often said that Internet development requires fast iteration and agility, while thinking, and rework is normal. This is a misunderstanding.Fast iteration refers to shortening the cycle between different versions and taking small steps to run fast, rather than making a round-trip effort within the cycle of a version.
In the development and testing stages, project management focuses on tracking progress and maintaining communication-tracking progress with integration and demonstration, and communicating Problems Based on bugs.To ensure that the external interfaces of each module are relatively clear and stable, and the integration between modules should be completed as soon as possible, no more than 1/4 of the development cycle time. After the first integration, you should start daily integration and weekly demonstration. Daily integration enables the test team to synchronize the latest code every day to help the development team identify problems as soon as possible and keep abreast of the progress in technical details; the weekly presentation enables product managers, project managers, and management personnel to feel the product from the user's perspective and give them confidence in the product. Integration and demonstration are the heartbeats of project management. using them properly helps to grasp the project Health in a timely manner. No matter how agile the development process is, how powerful the engineers are, recording and tracking bugs are essential. The communication between the development team and the test team should be based on bugs. Each time a Development Engineer submits code, it should record the bug to be targeted. The daily work briefing should record the bugs that have been closed/released today. It should be said at the morning meeting every day (standing and opening, usually within 15 minutes), what bugs are to be solved today, which of them are unclear, and who to communicate.
In the later deployment and maintenance stages, quick response is required. The test is the responsibility and Stress Resistance of team members. System O & M engineers should work late at night, because the deployment may be carried out when the traffic is low. The project manager should be able to communicate with each other at any time, make fast and accurate decisions, encourage the team and make a table rate; once a high-risk bug occurs, the development team should prepare patches within 24 hours. Amazon's practice is interesting: development engineers need to start up 24 hours a day before the product is launched. If a high-risk bug occurs in the module, the system O & M engineer may wake up late at night. This not only guarantees quick response, but also makes engineers realize that the code in the early stage is not easy to write, so they don't expect to go to bed.
Each project manager wants to effectively control the project progress. However, this seemingly simple task is often unsatisfactory in actual operations. Even in mature large companies with well-developed project management processes and top-notch teams, project delays often occur. Here we will analyze the three main reasons.
Unclear plans for common causes
Many project managers have completed the project well and the plan is well done, but the plan is always unable to keep up with the changes. The reason is that in some cases, the release date estimated by workload is not approved by the lead. The lead sometimes says that we are racing against time, and this project must be released at a certain time. This will lead to the re-launch of the plan, and everything will have to catch up with the progress. For other team members, the plan is not discussed with them, and it is tantamount to a heavy pressure on the task. The project has not started yet, so complaints are endless. Therefore, good selection of project tools and careful division of tasks are only the basis of good technology. More importantly, the project plan should be recognized by leaders and team members and willing to do its best. In short, to make a good project plan, we must do the following three points. Before the project is planned, communicate with the product manager and superior leaders to determine the priority of the project. To reach an agreement, the project manager is not allowed to work independently. The project plan should be refined to days, the functional points should be responsible to people, and the milestones should be determined.
Common causes and requirements
The required functions should be clearly listed in PRD (Product Requirement document), the business process should be completely and clearly written, and the interaction details should be reflected in the visual draft. All members of the project team should be organized to participate in the PRD review, and clear handling suggestions should be given for specific issues during the review. If the problem cannot be confirmed for the time being, the problem owner should give feedback within the specified time. The project manager can develop a problem follow-up form. Changes to requirements during project implementation should be proposed as early as possible. In the project management process, the requirements and plans for the current period are true.
After the decision is made, the project manager should not only follow up the development and testing progress, but also communicate with the demand side in a more timely manner. Don't wait for the release, and the product manager will come and say, "I don't want this. I want to change it here ". Never leave the problem to the last minute. You need to take a step ahead and leave room for it. The following is a real case. Case scenario: the entire project cycle is 2 months and there are 3 functional tests. At the end of the 3rd-round function test, that is, when the pre-release stage is approaching, the product manager gives user feedback and requires modifications based on user feedback. The change involves page styles, text, SQL statements, and validation logic. A total of more than 20 files may be modified. The project manager recommends that only the style and text of the page be changed.
Do not change the version before the next upgrade or maintenance. Otherwise, the release may be affected. In the case of repeated negotiations, developers can only make changes to the scalp, and testers can only perform another round of tests. Although you have made great efforts to meet the demand side's requirements, Project extension is inevitable.
Common Causes: poor communication
A temporary team for a project usually comes from different departments and is unfamiliar with the team members. At this time, a communication channel should be established for the team to ensure smooth communication. The common method is to create an internal network space and store all document resources for sharing by team members. use instant chat tools to create a project group to report the project progress every day; create a project contact list. After all the changes are agreed, send an email for confirmation. Each day, you will have to hold a 15-minute morning meeting, weekly meeting, weekly project Weekly Report, and cross-team projects, it is best to apply for an independent project room where all project team members sit and work together to reduce communication costs.
Pay attention to details
The purpose of project management is to smoothly analyze and manage personnel, products, processes and projects according to the predefined cost, schedule and quality requirements. In project management, some details need to be paid attention by the Project Manager.
Planning Based on experience
That is, a small amount of planning is done first, and further planning is made based on the information obtained in the practical process, which can improve the feasibility of the project. It is difficult to predict the future. Unless you are a prophet, you should try your best to make plans and schedules based on your experience in the project.
Schedule a project
First, schedule by deliverables rather than by functions; second, schedule by iteration; and again, schedule by using less difficult tools. A project timeline that is excessively perfect may mean wasting more time in real projects.
Enough time to plan
The schedule is developed by the entire project team. Therefore, everyone must have confidence in the schedule. However, there will always be some unexpected events, so we have to make enough time to plan and use a wave of planning to flexibly update the schedule as the environment changes.
Manage meetings
When organizing a project, the project manager should avoid wasting time on meetings. This is the simplest and most effective way for teams to focus on projects. When helping the team move toward a reasonable delivery deadline, ensure that the team is not affected by external interference. If the meeting is of no value to anyone, cancel it and allow team members not to participate in meetings that cannot contribute or reap value. Some team members may be unhappy and think that they are not important enough to attend the meeting. I want to explain to them that you don't want them to participate because they are too important.
Speed chart
If you can only draw one chart, select a speed chart. The speed Gallery has three measurement methods: requirement, completed work, and time. Although you cannot see the defect rate or cost you want to know, you can grasp the overall progress of the project from this figure. Using a speed chart, you can measure multiple trends at the same time in a chart: the overall number of requirements and completed work, including all tests, documents, project requirements, and other content. This is the most useful chart and a good friend of the Project Manager. However, note that a speed chart is only a tool for obtaining data, not an aim.
Test
From the beginning of the project, we must adhere to the principle of "reducing technical debt" to synchronize testing and development. The test will present project risks to everyone. The sooner you see these risks, the better. In projects that adopt a sequential life cycle, testers should be involved in the requirement analysis stage to ask their feedback on product requirements. In projects that adopt iterative life cycles, ask the tester to help evaluate the prototype. For projects that use an incremental life cycle, the tester can test the function as early as possible if there is a part available for testing. In agile projects, ensure that testers work with developers to conduct technical tests. At the same time, testers should work with product owners to compile customer-level tests.