"The customer's needs can be defined and clearly described at the beginning, and remain unchanged for a long period of time." This situation only exists in the ideal situation, this is not the case in the real world.
The reality is:
- Only a few customers can clearly know what they want and define details at the beginning of the project. Most customers (maybe more than 90%) only have a vague concept of project requirements, moreover, you cannot imagine what the final product looks like;
- Even if the customer knows exactly what he wants, many of them cannot clearly express this requirement;
- Even if he can clearly express his requirements, he cannot ensure that his ideas will not change in the future;
- New ideas are constantly emerging throughout the development process, especially when the customer sees the software interface, n idea may be generated immediately;
- The entire development process may be a process of continuous learning for the customer. His understanding of related fields will be gradually deepened and refined;
Therefore, in the software development process, we will feel like this:
- The customer didn't raise this requirement at the beginning. After the product was made, he said that there would be a in this place and D in that place;
- The customer said this at the beginning. After seeing the product, he said it was different from what he wanted;
- At the beginning, I had to do this, but later I had to constantly change it. I don't know what to change;
In fact, it is easy to think about it. For example, you plan to buy a dress:
- When you go out, you don't know what brand, style, or color the clothes you want to buy.
Etc.
- I tried a lot of clothes and didn't make you satisfied. At this time, people around me asked you what kind of clothes you really want, but it is hard for you to clearly describe them;
- Finally, you finally bought a relatively satisfactory dress. It won't be long before you go home to wear new clothes, because the previous one cannot meet your needs, or your needs have changed. For example, you no longer think it meets the trend;
Since this is the case, how should we deal with it?
- Avoid defining all the functions or writing all the specifications at the beginning. Instead, set a rough idea at the beginning and refine it throughout the implementation process, constantly improve it, and regard demand definition as a process of progressive details;
- Communicate with the customer through prototype and sketch to confirm his ideas, so that the customer can look and feel as soon as possible;
- Collect customer feedback as early as possible and make adjustments accordingly;
- Submit the version to the customer on a regular basis, giving him the opportunity to submit a request for modification and quickly implement the change proposed by the customer;
- Integrate changes into the plan. Once it becomes part of the plan, it will be easy to handle;