I personally think this is a good article. Although I am not a program mananger, I am almost doing a job similar to this position. Here, I recommend this article to all programmers. I believe this article will make you understand that only technology is far from enough, because there is no role of program manager, programmers are nothing more than the weapons in their hands. I hope that my guidance and original articles will inspire all programs. (This article is published simultaneously:Cool ShellCocre.com)
The original Article is here:
"How to Be a program manager"
Http://www.joelonsoftware.com/items/2009/03/09.html
The author of this article is Joel Spolsky, who has worked on program manager in Microsoft. This article is worth reading. The following is a guide I will give you:
First, he talked about two people: Charles Simonyi, a talented program manager responsible for WYSIWYG word processing, and Jabe Blumenthal, a programmer responsible for Excel projects on Mac OS in the 1980s S, he found the gap between programmers and market personnel. It is difficult for marketing people to translate MBA-speaking into actual feature, and there are too many jobs unrelated to coding, for example, talking to users, running usability tests, reivew competitors' products, and thinking hard about how to make things easier, our programmers generally do not have the time, and does not have such capabilities. So Jabe started his program manager career.
Scope of Work
In section 2, the author explains the main tasks that a PM is responsible:
- Design UIS (User Interface Design)
- Write functional specs (write Function Specification)
- Coordinate teams (team coordination)
- Serve as the customer advocate, and (from the user's perspective)
- Wear Banana Republic chinos)
Next, the author tells about his first program manager job experience. It is very interesting. It is a project customized for Excel users (Chen Hao Note: it should be a project that includes VBScript in Excel, is the so-called macro ).
Stage 1
- First of all, the author has found many users who have talked about what is the most useful and reasonable implementation. This is a very huge job and has spent a lot of energy and time.
- Then, the author found the Visual Basic team and asked if it was possible to provide excel with a compiler and code editor to implement the "macro ".
- Next, the author checked the applescript macro on Apple and obtained the classics.
- Finally, I have discussed a lot with the word, access, project, and mail teams.
The author said that his work at this stage filled him with scars, and he was even afraid to hear the ringing of his cell phone.
Stage 2
- Determine the direction. He began to write down how visual baisc should work in Excel. And provides some simple macros, which should be high-level functional spec.
- When the direction is determined, he began to write more detailed functional specifications. This is the so-called functional specification)
- Although FS does not need to explain how to implement it, this document should explain in detail how the entire Excel and VBScript interact with each other, which is the most important part.
- When the author sent an initial version of FS to the development team (Ben Waldman), the development team quickly developed a prototype and provided object-oriented interfaces. Unfortunately, it is not what program manger wants.
- The author describes an example of how to help the development team solve technical difficulties. That is an example of getting the value of a cell in an Excel file. At that time, the developer team thought this was a difficult issue because the value may be of any type. In VB, the type of the variable needs to be declared first. Later, I found the VB development team and learned that variants and idispatch can do this.
As we can see, FS repeatedly discusses with the developer team in this way, and even helps programmers solve technical difficulties before final determination. Once FS is determined, program manger needs to do two things:
- Responsible for explaining relevant issues.
- Organize and form relevant design.
That is to say, in addition to interpretation of FS, we also need to turn what needs to do into the design document of how to do. In addition, Program Manager may have the following work:
- Testers have many questions about fsas they need to know how to test what these FS contains.
- Discuss with the document team about how to write a good tutorial or a reference document.
- And the localization team to develop localization policies.
- And market personnel to describe the advantages and functions of VBA.
We can see that there are too many authors, too many meetings, and too many people to communicate with each other. This is really not a simple job.
Conflict management
Later, the author focuses on "conflicts" conflicts, which may be a problem for all teams. Because our program manager needs to communicate with so many people, it is necessary to have a super ability to manage conflicts of views with people. The author mentioned a lot of arguments with programmers here, because program manager is from the user's point of view, while our programmers are always from the technical and implementation point of view, different Angles will inevitably lead to conflicts. The author gave an example. He said that users like a "Mind-sensing" interface and a 30 inch-inch display. What our programmers like is the command line interface built on python. Haha. In addition, the author cited the longest controversy caused by "using tables" in an Excel file as a case.
Finally, the author discussed that the debate is a good thing, just as the plaintiffs and defendants in the Court both have their own defense lawyers. This will help people approach the truth of things. The same is true for software development. good arguments are actually good for products. We should pay attention to the matter in the debate.
When talking about the process of getting along with the program, the author said that it is not easy to get out of the programmer, because you are not coding and have no technical capabilities, it is usually unpopular with programmers. Therefore, in the process of communicating with the program, two things need to be ensured: 1) be sure that you are correct. 2) Let programmers respect themselves. The second point is how to make programmers respect themselves. The author has published his own opinions: 1) demonstrate intelligence (show their talents), 2) Open-mindedness (wide-minded ), 3) Fairness (fairness and integrity ). Never engage in office politics or private manager meetings. Otherwise, you will be squeezed out.