November 21st, 2007


The Most Vital Currency

It's fascinating, being in the Product Manager role. On the one hand, it's rather different from anything I've done before; on the other, the basic principles of being a good team-oriented programmer are proving really valuable. And perhaps the most valuable lesson is one that may be crucial to any workplace -- to run a good project, you need to have respect flowing in all directions.

Really, I'm kind of surprised at how smoothly it's going. We're trying to develop a system that's hard to define and a bit different from anything else out there, feeling around in the dark. We're a strong-willed bunch, and everybody's got opinions. I essentially arrogated the PM job to myself, declaring that since it was my idea in the first place, I wanted the creative control. It was by no means obvious that I could do the job.

And we do have arguments about how it should work, almost daily. But those arguments aren't lasting long, and we're basically running by consensus. The key to this seems to be the fact that everyone on the team respects each other, and we're all trying to be scrupulous about that. Folks are calmly deferring the final decisions to me, mostly because I'm working very hard to take every argument seriously, consider every angle, and keep my ego out of the way as much as I can. As a result, while the original vision may have been mine, the nuances are coming from all over the team.

It's remarkably pleasant: we're getting a lot more done a lot more quickly, and with little strife. I have to say, it's a bit of a change of pace. While Convoq was a pretty decent company, I think the thick management structure prevented enough communication between the developers and management, and that impeded proper respect on all sides. Folks just didn't interact enough to get to *trust* each other enough.

It's a lesson worth remembering. To really work well, a team needs deep mutual respect and trust. You can't have that without sufficient communication among the players. And the "team" needs to include all active stakeholders, not just the developers. All of which is kind of obvious from the Agile point of view, but seeing it from the "other side" really drives the point home...