Joel Spolsky’s love letter to program management

Joel Spolsky wrote a love letter to program management on his blog. For the most part, it is a pretty reasoned and reasonable description of what a “good” program manager at Microsoft (and Fog Creek) is like. In my career at Microsoft, about 25% of the program managers fit that bill. The problem was that they had too many conflicting roles and required skillsets to be effective. At Microsoft, Program Managers are not only responsible to be user advocates, they are also responsible for functional specifications, user interfaces and schedules. A single person can’t be a user representative, a UI designer/interaction specialist, and a project manager. Combining them into a single role worked for Microsoft initially, but in the modern world each of these roles are full disciplines of their own.

Joel claims that PMs are partners with development and that developers have the upper hand over PMs because they write the code. This might have been true of Microsoft in Joel’s (and my) time, but as MS switched from being an engineering-driven company since Ballmer took over to a program management-driven one, it isn’t true any more. PMs took the upper hand because they had far too much control over the final look and feel of the product and could essentially name themselves the final arbiters. Development and QE were isolated from the customers. PMs dictated the features; meaningless meetings and committees abounded and the products suffered (every MS product in the last 8 years for example).

How to be a program manager – Joel on Software

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. Compared to code, a written spec is trivial to change. The very act of writing a specification forces you to think through the design you thought you had in your head, and helps you see the flaws in it quickly so that you can iterate and try more designs. Teams that use functional specifications have better designed products, because they had the opportunity to explore more possible solutions quickly. They also write code faster, because they have a clearer picture when they start of what’s going to be needed.

This claim is just wrong, or rather, doing this in the large scale is just wrong. I’ve worked under that system at Microsoft for years and I never saw it be very successful in practice. Maybe for a small part of a product, or a small iteration in a larger cycle it might work; but at the product level it is nearly always a bust. Why? Because you will not anticipate everything in your functional specs. Ever. A competing product will be released with better features. Flange A will not fit Bracket B. User testing will hand you your hat. Beta testers will tell you that it wasn’t really what they needed. And then you are back to the drawing board. Except you are two-thirds of the way through the cycle because you spent a huge amount of time iterating over the spec and then building to that spec. Now everything is screwed up, but QE needs to start testing to the spec RIGHT NOW. So what do you do? You hack. The spec goes out the window and development codes for dear life while program management throws out ideas and changes like pieces of spaghetti against the wall. At the end of the cycle you have a tarball mess of code with incongrous, hacked, features that came crashing onto the deck of the carrier and just caught the last wire. Watefall development is resistant to change, agile development embraces it. Change happens faster in our industry every year, why lock your developers into software methodologies from the 70s?

Is there a role for Program Management? Absolutely. Not for the Microsoft-style Program Manager, but certainly for the jobs that the Microsoft Program Manager has. UI design and look and feel is best managed by professional user interaction specialists working with a project manager and development. The project manager can also be the primary representative of the client, but not the sole conduit. One of the primary jobs of QE is to be a user representative. Isolating development from the users just means that they don’t understand why they are doing what they do. Isolating QE from the users mean that they can’t represent a user of a product in their testing. The Program Manager can also work with development and QE to manage the schedule.

My experience with great program mangers post-Microsoft are folks that coordinate across all the functional groups to make sure that development has what they need, QE understands the user, experience design is delivering on time and all the clients are feeling well represented. In this view, the program manager acts as a lynchpin connecting development, QE and XD to their customers. Do they set the schedule? no. Do they write the specs? Maybe (in a non-agile team, working with the other groups). Is that less fun for the program manager? Maybe, but it produces much better products in my experience.

schadenfreude

today on twitter

kevingoldsmith: I am unreasonably proud of the fact that I just spelled “schadenfreude” correctly without looking it up.

jimhong: @KevinGoldsmith It makes me happy that you were concerned enough that you thought you might have to look it up….. ;-D

kevingoldsmith: @jimhong My style of spelling is to spell it however and let outlook tell me what I messed up, I was expecting squiggles

jimhong: @KevinGoldsmith I guess my attempt @ schadenfreude fell a bit short just now… 😉

kevingoldsmith: @jimhong and I take great pleasure in that! PWN3D!

In retrospect, I think the PWN3D was unncessary. A simple FTW might have surficed.

Creative Destruction in the Newspaper Industry

I saw two things today that somehow connected in my mind. The first was an advert for scholarships for computer programmers to Northwestern’s journalism school (link):
Are you a skilled programmer or Web developer? Are you interested in applying your talents to the challenge of creating a better-informed society? Do you want to learn how to find, analyze and present socially relevant information that engages media audiences? Do you see possibilities for applying technology as a way to connect people and information on the Web or new delivery platforms?

The second item was the announcement that one of Seattle’s two major daily newspapers is up for sale and that it will probably cease as a printed paper no matter what happens:
For sale: The P-I

There are a few things to think about here. A simple one is that the printed newspaper as a product is obviously headed for oblivion. The web is far superior at news delivery, especially extended coverage of breaking news (television isn’t good at the “extended” part). Even the bad part of electronically delivered news (reading off a computer screen) has solutions on the near term horizon (e-book readers). You could say that the journalism school is ahead of the game here, looking to turn programmers into journalists who “get” the future of journalism.

I wonder why anyone would be looking to journalism as a second career at this point though. I can understand that the current upheaval in the computer industry would make a career change attractive, but what we got going in IT ain’t nothin’ compared to the outright carnage happening in journalism.

There is an open question about what is the future of journalism: is it trained journalists researching stories or is it bloggers and “citizen journalists” doing it on their own? I’ve never been one to think that interested amateurs can completely replace experienced professional writers, and I still feel that way. The big stories require real journalists, sniffing out the stories over long periods of time and really getting to the bottom of the issues. However, 95% of professional journalism isn’t that. It’s coverage of city council meetings and the daily reportage that some people care a lot about, some people care a little about and the rest of the people care very little about. Those kinds of things are perfect for the interested and excited amateurs and it is that where the blogging community has been eating away at the journalism community. Without young reporters getting their start on that daily grind kind of stuff, however, I’m not sure how folks become the in-depth-extended-research kinds of reporters.

I honestly don’t think that the future of journalism is going to come from the programmers (even those with masters degrees in journalism). I think it is going to come from the thousands of laid-off reporters being released into the world. I hope that many will start to explore the possibilities and I expect at least one will end up changing what journalism is as we know it.

Happy new year, here is to a better one

I realized today that I haven’t posted anything here in quite a while. Maybe it was a normal ebb in the blogging stream, but there is more to it than that.

Those that are parents are well aware of the ability of an a child to pull your head out of the echo chamber of your own thoughts. I certainly felt that effect this year.

Combine that with the rise of the microblogging, of which I am finding myself very fond. Twitter lets me make a simple declarative statement in 160 chars that I would have felt the need to write paragraphs explaining or reinforcing on this site. On twitter, I can just say “I like watching the CBC. Canadian commercials are just nicer.” If I posted that here, I’d need to explain why Canadian commercials are nicer and maybe track down some Canadian commercials on youtube to include or whatever. That is too much effort when there are diapers to change. I also like the immediacy of the microblogging, the responses and directs, the conversations spilling out across multiple people very quickly. I’ve also found that with my limited time, twitter/friendfeed/facebook have basically replaced my RSS reading for the most part. I’m getting the same information faster through twitter than I do through firing up my RSS reader. I would expect, for 2009, that you will see fewer posts here, but there will be much less “chaff” and more “wheat.” If you want the chaff, the random thoughts and weird ramblings, follow me on twitter.

I’m finding myself cautiously optomistic about this coming year, but much less optomistic than I have been for quite some time. The morass and decline in the country following eight years of George Bush’s presidency is unlikely to be cleaned up quickly, no matter what kind of wunderkind that Barack Obama turns out to be. Barack Obama’s appointments have been somewhat underwhelming so far, the “team of rivals” justification rings somewhat hollow given the political infighting that could arise. An inexperienced executive leading a team of rivals could be a recipie for disaster. I’m delighted with Obama’s victory and what that can mean for our country, but he is taking on a herculean task and he has raised expectations so high that it can all fall apart very quickly.

I want to start this year on a positive note (for a change). So, I hope that for anyone reading this that your 2009 is better than your 2008 was.

I guess it is still too early… Lively bites the dust

There is a bit of schadenfreude here on my part. Lively was reviving concepts from the mid to late 90s and passing them off as something new (including one I worked on). All of the efforts of that time died a slow death, and the thought was that we (they) were ahead of the curve. Lively’s lack of uptake slams the door on graphical chat once and for all, I guess.

Official Google Blog: Lively no more

That’s why, despite all the virtual high fives and creative rooms everyone has enjoyed in the last four and a half months, we’ve decided to shut Lively down at the end of the year. It has been a tough decision, but we want to ensure that we prioritize our resources and focus more on our core search, ads and apps business. Lively.com will be discontinued at the end of December, and everyone who has worked on the project will then move on to other teams.

We’d encourage all Lively users to capture your hard work by taking videos and screenshots of your rooms.

awesome Obama commercial

Sorry for the post drought, I have been crazy busy with personal things… I saw this Obama commercial today and I thought it was near perfection…

Sarah Palin/Katie Couric parody

What I think would be awesome, just do the interview parody straight. Palin was so goofy in those interviews there was no need to change what she said to parody her. They could have just redone the interviews verbatim and it would have been hilarious!

Here’s the original in case you haven’t seen it: