This is a reprint from my old blog with the original timestamp.
On product creation: I wish we could think up everything people would want to do up front. But that would imply some uncanny brilliance or omniscient view – and we have neither. When creating new things (or more realistically combining old ideas in new and interesting ways – I mean, really, how many new ideas are there? — hmm this might be my next blog post…) it’s easy to think of the one application you thought might make sense. It’s also easy to think up the one use case you thought was interesting. Well, again, maybe not easy but it’s much easier than the next thing.
Which is figuring out how it will actually work in practice. If you are Microsoft it takes years to ship a new OS or Office because you have to think through all of this stuff up front. This pretty much sucks. Trust me I know, I’ve been doing product management from the beginning of my career. And that’s what product management is:
- Come up with a baseline idea.
- Figure out the many permutations that it might have.
- Narrow them down to the most important things that the product needs.
- Add constraints where necessary so users don’t fall off a cliff.
- Write it all down in a way that UI folks and engineers can understand.
- Herd cats to get it all done.
This doesn’t seem really hard. But it is. You have to understand the limitations of:
- Computers: specifically the OS(s) and browser(s) you are developing for.
- User interfaces: both what can be done and what people can parse.
- People: this is the hardest one – it might seem obvious what to do when you’ve been thinking about it for weeks, months, or years, but how is someone new going to expect to use it? E
- Engineers: they think about things in a linear, logical way so you have to explain it to them differently. Constraints are key.
- User interface designers: Imagine you are the writer/director, this person is the cameraman. If they don’t understand what you want to see then your movie isn’t going to make sense.
Ok so with that basic primer in hand, let’s look at how the web changes product management:
- Most important: You can change stuff easily. If you find something doesn’t work on the web it’s relatively straight forwad to change it. This is not true in software – even downloaded software – because once people get it, you have to deal with it – patches, new installs, CDs, notifications, etc. etc. etc. It sucks. So you basically want to make sure you get it right if you make software. On the web you can mess up and then fix your mistake.
- The rules of innovation are different. Because you can change things you do not have to think about every possible use in advance and constrain the system to prevent other usage paths. You just unleash and see both how you and your team use it in practice (as opposed to in theory) and how your users use it. This leads to all sorts of neat stuff.
- You can perform post-release polish: find any things you missed and fix them or add them. Often times the things you forgot are not so much broken but incomplete. A few small changes can often make things more dynamic, interesting, or compelling. For example, we launched groups (which I discussed in a previous blog entry) and it worked well in one or two groups. But people weren’t discovering other groups so we added a “related groups” feature which pointed them from groups to other groups that might be interesting. It’s worked great.
- You can learn from actual user behavior to correct interface problems. Discussions, another feature we just launched seemed good when we put it out there. But we started getting a lot of contact from people clicking “report abuse” – a feature designed to enable users to report other users who were abusing the system. However, in the automated output generated by the report abuse system we saw the comments people were reporting abuse on and what they “complained” about. Well, as it happens they weren’t reporting abuse at all they were replying. So even though the link clearly said “report abuse” its positioning was confusing people so we fixed it.
- Finally, you can leverage emergent behavior. This is really important because no one knows exactly what people are going to do in any new web system. A good system evolves to meet the demands and desires of its users. Cerainly we have an idea of what we want to happen and we encourage behaviors down that path, but ultimately our ability to adapt to emergent behaviors that arise can create new, very compelling opportunities that are exciting both to us and to our users.