Varun Mathur RSS

About me
Email|LinkedIn|Twitter

Alertle.com
Demo1 | Demo2 Alertle In The News
Techvibes Global
Techvibes Toronto
Bio on Techvibes
All my posts
Toronto Tech Events Toronto Tech Jobs Toronto Startup Index
Disqus comments
All comments RSS

Archive

Mar
15th
Sun
permalink

Joel Spolsky: How to be a program manager

Excerpts from Joel’s latest essay (link):

Having a good program manager is one of the secret formulas to making really great software.

What does a program manager do?

Henceforth, a program manager would:

  1. Design UIs
  2. Write functional specs
  3. Coordinate teams
  4. Serve as the customer advocate, and
  5. Wear Banana Republic chinos

divide up the product according to user activities. For example, Twitter could be divided into four user activities:

  1. Registering and getting started
  2. Posting messages and reading replies
  3. Configuring your account
  4. Searching for news

The first thing I had to do was figure out what customers needed, which I did by talking to as many customers as I could

The second step was writing a vision statement: sort of a broad document that said, this is how Visual Basic would work in Excel

started working on a much more detailed spec, which explained, down to the smallest detail, how everything looked to the user. This was a functional spec

Once the spec was finished and the development team got down to work, I had two responsibilities: resolving any questions that came up about the design, and talking to all the other teams so that the developers didn’t have to.

Typically, the program manager wants something simple and easy to understand for the users, featuring a telepathic user interface and a 30” screen that nonetheless fits in your pocket, while the developer wants something that is trivial to implement in code, with a command-line interface (“what’s so unusable about that?”) and Python bindings.

it’s absolutely critical that the program managers and developers be peers.

The number one mistake most companies make is having the manager of the programmers writing the specs and designing the product.

It helps, as a program manager, to be pretty good at coding yourself. The other way to earn the programming team’s respect is to demonstrate intelligence, open-mindedness, and fairness in any debates that come up.

Writing a functional specification is at the very heart of agile development, because it lets you iterate rapidly over many possible designs before you write code. You start at the highest level: a vision statement, no more than one page explaining the gist of the new feature. Once that’s nailed down, you can develop storyboards… mockups of the screens showing the user’s progression through the application, with detailed notes showing how they work. For many types of functionality, especially UI-heavy functionality, once you have these storyboards, you’re done. To learn how to write good functional specifications, read my four part series.

Scott Berkun’s book Making Things Happen Another big part of the program manager’s job is user interface design

Comments (View)
blog comments powered by Disqus