Software development is difficult, I'm afraid the most difficult is to find out the need, but it is more difficult to manage the demand. It's in Beijing today. NET at the club, someone raised the question, the main difficulty is that his development team is for their own leadership services, several leaders have their own ideas, and constantly in the development process to mention a variety of problems; development progress can not be guaranteed, the results of development are always unable to meet the requirements ...
In fact, we have encountered such a problem, and for ordinary developers, we tend not to care about that this is the project manager's business, but in fact, this problem involves all aspects of software development, even if you are out of the bottom of the developers, the same need to control the project manager to give you the task. In fact, the most important thing to grasp here is: to control the task within the range you can control. To sum up, my experience is as follows:
First: No matter who your customers are, we always need an intermediary to accept the demand; You first need to have a deal with the client, need them to make a person to mention all the needs, this person does not need to be a very high position of people, and often the best choice is mid-level technical managers; all the needs of the user must be approved by this person. , even if it is the request of the other boss, if there is no recognition of this person we do not carry out. This is very important, but it reduces a lot of trouble for us.
Second: No matter what kind of software development process theory now admits a problem, that is software development needs iteration. And we must face a reality, that is, the process of software development in the constant change in the process of looking for balance, our needs will never end, our software will always be modified; change is not a bad thing, but we have to make sure that we can produce results at a certain time.
Therefore, it is very important to control the increment of iterations. In general, our company's practice is to two weeks for a cycle of the most release, once the released start, any user's new requirements will need to be put to the back of the update, we will not reject the needs of customers, but we have to manage the progress we can afford. The biggest advantage of doing this is that in two weeks, we can certainly provide a better version for our customers, which may not be the end result of the customer now (because many of the new requirements are in later releases), but we have at least completed the results we promised two weeks ago, Customers get what they want (not all of it, of course), and we can tell the customer exactly what we need to accomplish.
And in such an iterative process, we will find that many of the requirements of the imperfections, every two weeks time we can target the development direction of the corresponding adjustments. The final result is to ensure customer satisfaction, but also to ensure the delivery of products on schedule.
Here, we need to make a clear distinction between changing the needs of bugs and the need for new features, bugs that are the ones that have a decisive impact on the main functionality of the software, whether our developers find out for themselves or customer feedback, must be processed at the current release , and new requirements must be put in the back release. A clear distinction between these two different requirements is crucial to the success of the software project.
Third: We need to learn to manage customers. Maybe some people think I'm talking nonsense, how customers can be managed, they are God .... In fact, God is also a person, and is a sensible person. We should never be 100% compliant to customers, the right way is to control the user expectations of development progress, try to make them consistent. Of course there are times when we need to be a little tougher, like I always tell my boss directly that this requirement is new and must be put in the back release.
-------------------------------------------------