Explore demand conversations
Pan Jiayu Xiong / translation
This article published on the June 2004 "Programmer" magazine, copyright, unauthorized, banned any form of reprint, violations!
On March 19, 2004, Mr. Winberg was invited to make an exchange of "exploration requirements" through remote audio and developers, many developers benefited much. To this end, we translated this exchange record, we can understand the idea of the master.
Communication, understand what own, is something that customers really want
Sometimes developers and customers are like foreigners (jokes).
Well, this is not a joke, sometimes it is fun, but sometimes it has brought a lot of difficulties. Especially now, I have some customers to develop software in China, India, or other countries. There are a lot of understanding questions that require special attention to handling such problems. But I think the problem is not big, because we may first use the memorandum of understanding, then to understand each other's intentions. We are foreigners. Many of you may have some don't understand what I said, or some of the content in my book is not understood, because we have different cultures. But even if it is also Americans, sometimes there are many people difficult to understand me, or I am hard to understand them.
So I often think that developers and customers are foreigners and need a communication machine. You have done the conversion work between two hardware, and technical quite difficult. But between two people, it is even more difficult to assume that this is more convenient. It takes time, you need a list of memos, you need to be patient and need pressure. So I hope that you can always assume that developers and customers are technically foreigners, even between developers.
My experience is that after the prototype is submitted, the customer really knows what he wants, it is too late ...
You ask because you have experience, this reason is also what I have said, that is, before we get something, you will never know what you really want. It is generally considered to help the prototype, and this does not have to put a lot of time and money to build a system. Regarding the prototype, the most common mistake is that the prototype is too fine. Then there is too much before the customer gets the real experience, it's too late, because the time has passed, and the money has been completed. If you really do it, you have done too much for prototypes. There is too much abnormal investment in prototype, but there is a good test method here. Do you develop prototypes every moment? Check your project, then say: "If we spend so much, if we don't give this prototype to the customer, then we present to them now." Then they said: "Oh, no, it is not what we want. . "Can you afford it to throw it open from the head? But that is not a real prototype. You can't afford it because it is not a prototype.
In terms of workload, how much is demand for the entire software development process?
I think this is determined by the software type you develop. I have a student to open a company in the United States, which is very important in the process between the system. The general customer's demand is to implant a new program into a new machine or system, as long as the program is running properly, and it is the same as the old system. Therefore, this is a very simple demand process, which is almost zero in the entire development process.
The other situation is that many systems have not been done before, just like our spatial trajectory network. If we really check and recourse related things correctly, the amount of work that may be 80 ~ 90% will be used in what is real needs.
I think, in our country's biggest mistake is for a lot of things we used to use something we use. For example, if you build a system, you spend 10% of the workload to collect demand. After the system is constructed, no one needs it. Just like we often hear: If you are right, you will do it well. How to become a good demand engineer? What are the ability to need?
I want to say, the most important ability is, you need to be patient and understanding other people's ability. Many people do not know what you know. Many technicians get the work of the needs, they think they don't know how to complete. For example, ask the customer or meet the customer, get some questions, then they begin to design the system, and then realize that all the needs have not been obtained. In my career, I have seen many engineers, I will not return to the customer to ask and clarify the problem again, because they are afraid again. If you are afraid, you can't be a good demand engineer. You must learn to talk, and there must be some tips. For example, one of the many problems we speak is that this topic is the topic of the book, "Explore the Demand" book is this theme. For example, such a problem: "Ok, you said your time, I am also very satisfied with the problem I prepared, but I often have this situation, the problem is not what I want, or I realize that I am not clear. If there is More questions, can I come back to you? "If you ask, people generally say it, then you can go back and ask questions.
Another question you will learn is: "So, I have asked you a lot of questions, there is anything else you want to ask me?" You see, not all the needs work is a question, then listen answer. You have to break this thinking, saying that the demand process is you sitting with our customers, you ask questions, they answer. The demand process is the process of acquiring information, some information is here, some of the customers there, and some customers have no mistakes. They may ask you questions, then you may also ask them questions. Even you may go to see what they are doing, for example, using their current systems. How do they want to handle, how is it completed now? How do other people complete similar work? Regarding what they do, people usually unclear. If you try it yourself, give someone telling the complex work you have made, you will know. Very normal. So you need to understand others, accept their way of work, and how to work as "people".
One of my customers have asked me like this: "Can I get some of a valuable problem?" Well, you can say it with your customers: "Sorry, I found me It is difficult to get people's software demand information. So, when you don't know why I ask you, or if you don't understand my problem, I hope that you can help me. Tell me what related information should you understand. I hope you can ask me. I hope you can let me know about some information. I am not very in this area, this is also very very for me. Difficult missions. "I have learned something in this regard, I didn't look good as I expected. Even if I have 50 years in this line, I am still coming. Therefore, you must also accept you is not a perfect reality, then tell people that you want to solve the problem with them, not your single guns.