• Elisabeth_The_Third
  • There is nothing more powerful as an idea whose time has come
  • Los Angeles, United States
  • Offline

Business Blog

Painless Functional Specifications - Part 3: Who s...

November 19, 2008

Painless Functional Specifications - Part 3: Who should writ...

http://www.joelonsoftware.com/articles/fog0000000034.html

When Microsoft started growing seriously in the 1980s, everybody there had read The Mythical Man-Month , one of the classics of software management. The main point of that book was that when you add more programmers to a late project, it gets even later. That's because when you have n programmers on a team, the number of communication paths is n(n-1)/2, which grows at O(n2).

Program manager (project manager) would own the design and the spec for products. Since then, program managers (project managers) gather requirements, figure out what the code is supposed to do, and write the specs . There are usually about 5 programmers for every program manager (project manager); these programmers are responsible for implementing in code what the program manager (project manager) has implemented in the form of a spec.

A program manager (project manager) also needs to coordinate marketing, documentation, testing, localization, and all the other annoying details that programmers shouldn't spend time on. Finally, program managers are supposed to have the "big picture" of the company in mind, while programmers are free to concentrate on getting their bits of code exactly right.

Program managers are invaluable. If you've ever complained about how programmers are more concerned with technical elegance than with marketability, you need a program manager. If you've ever complained about how people who can write good code never do a good job of writing good English, you need a program manager. If you've ever complained about how your product seems to drift without any clear direction, you need a program manager.

Good program manager (project manager)

The skills for being a good program manager (writing clear English, diplomacy, market awareness, user empathy, and good UI design).

 

 

Add Comment