When web2project was first formed in November 2007, I was recruited to work on the community side of things. I had previously earned a spot on the dotProject team by performing support in the forums, blogging, writing the occasional documentation, collecting user feedback, and tracking bug reports, so it was familiar ground.
As we pushed through v0.99 and on towards v1.0 in early 2009, I did my normal bug triage – reviewing reports, eliminating duplicates, collecting missing information, and guesstimating priorities – to get us closer to a v1.0 release. On top of that, some great people reached out to us to help make the system better. Some contributed code, others their debugging skills, others gave great bug reports, while still others shared their Vision on How Things Should Be(tm).
I’ve still done quite a bit of coding throughout this, but I noticed my job steadily shifting. I spend nearly as much time working with the people and helping them refine ideas as I do coding. And then last year, I found a job description along these lines:
The Product Manager is responsible for the product planning and execution throughout the product lifecycle, including: gathering and prioritizing product and customer requirements, defining the product vision, and working closely with engineering, sales, marketing and support to ensure revenue and customer satisfaction goals are met. The Product Manager’s job also includes ensuring that the product supports the company’s overall strategy and goals. [source]
And then it clicked for me.. I’ve become a Product Manager.
Don’t get me wrong, I still write a lot of code but this is something bigger. I get to hear someone’s raw idea, help them shape it into something solid, share the information to take it further, collect their feedback to make our own code & documentation better, give them a hand on the loose ends, and watch something appear on the other side.. To be honest, it’s (professionally) thrilling even just as an observer.
Of course, I suspect being a Product Manager on an Open Source project is a unique and difficult position.
We don’t have the power to “order” anyone to do anything. Or reward people with raises, bonuses or job perks. Or expect a certain number of hours per week. Or expect someone to “push through”the difficult parts or poor documentation or screwy architectures to figure it all out. All of our deadlines – like the quarterly release schedule – are self-imposed.
On the other hand, everyone that appears is self-motivated. Unfortunately, most already have a problem – hopefully quickly solved – but a few are just inspired to do something more. We have to convince and encourage but our only real compensation we have is public thanks and acknowledgement*. In a few cases, it will help build their resume. In rare cases, community members may serve as job references.
All in all, as my first two years of (accidental) Product Management come to a close, I have to say that it’s been educational. I’ve learned a lot about the types of documentation that are helpful versus those that annoy. I’ve learned that as much as people claim to hate writing specifications, if you get someone started, they refine and expand it quickly. I’ve learned that some people just want to be told what to do while you can never figure out what others are up to until they’re done. I’ve learned that if you gather feedback continuously and broadcast your intentions clearly – in terms of roadmap, community expectations, etc – that even the “complainers” quiet down.
And I’m already looking forward to v3.0 and beyond..
* Disclosure: That’s not entirely true. Whenever I meet a dotProject or web2project community member, the first round of tasty beverages is on me. Please consider that a standing offer but know that I’ll ask your username. 😉 In the next few months, I plan to be at both SugarCon 2011 and php|tek 2011, so don’t hesitate to track me down.