Software development is difficult. I am afraid everyone thinks that the most difficult thing is to clarify the needs, but the more difficult it is to manage the needs. Today in Beijing. some people raised this issue on the Net club. The main difficulty is that his Development Team serves his leaders. Several leaders have their own ideas, in addition, various issues are constantly raised during the development process. The development progress cannot be guaranteed, and the development results cannot meet the requirements ......
In fact, we have encountered such problems, but for ordinary developers, we often don't care about it. We think it is a project manager thing, but it is actually not, such problems involve all aspects of software development. Even if you are a bottom-layer developer, you need to control the tasks assigned to you by the Project Manager. In fact, the most important thing to grasp here is to control the task within your control. To sum up, my experience is as follows:
First, no matter who your customers are, we always need an intermediary to accept their needs. First, you need to have an agreement with the customers and they need to develop a person to raise all their needs, this person does not need to be a high-level employee, and is often the best choice for middle-level technical management personnel. All user requirements must be recognized by this person, even as the requirements of the other party's boss, we will not perform this operation without the consent of this person. This is very important, but it reduces a lot of trouble for us.
Second: No matter what kind of software development process theory, it is recognized that software development requires iteration. In addition, we must face the reality that the process of software development is constantly changing to find a balance, our needs will never end, and our software will always be modified; modification is not a bad thing, but we must ensure that results can be produced in a certain period of time.
Therefore, it is very important to control the increment of iterations. In general, our company's practice is to take two weeks as one cycle for the most one release. Once this release starts, any new user needs to be put into the subsequent release; we will not reject the customer's needs, but we must manage the progress that we can afford. The biggest benefit of doing so is that within two weeks, we can certainly provide customers with a better version, this may not be the final result of the customer's current vision (because many new requirements are included in the subsequent release), but we have completed at least the results we promised two weeks ago, customers get what they want (not all of which, of course), and we can clearly tell customers what needs we need to accomplish.
In addition, in such an iteration process, we will find that many of the requirements are imperfect. every two weeks, we can make corresponding adjustments to the development direction. The final result is to ensure the customer's satisfaction and the product delivery on schedule.
Here, we need to clearly differentiate the requirements for modifying bugs and new features. Bugs should be those that have a decisive impact on the main functions of the software, these items, whether discovered by our developers or reported by customers, must be processed in the current release, and new requirements must be put in the subsequent release. Clearly distinguishing these two different requirements plays a decisive role in the success of software projects.
Third, we need to learn how to manage our customers. Some people may think that I am lying. How can customers be managed? Are they God ??!! In fact, God is also a human, and a reasonable person. We should never be 100% obedient to customers. The correct method is to control users' expectations on the development progress and try to make them consistent. Of course, sometimes we need to be a little harder. For example, I often tell my boss that this requirement is a new function and must be put in the release later.
------------------------------------------
Some Opinions on managing customer needs