Friday, August 11, 2006

Benevolent Dictator

This came up during a chat with someone while I was visiting the office.

This is a term that has its own history (http://en.wikipedia.org/wiki/Benevolent_dictator), but is now applied to a kind of management style for software development. In opensource development, Codehaus is probably the most famous for this management style (project despot). You should read "Codehaus Manifesto" if you want to understand it fully.

In Agile software development, the developers have (or should have) the absolute power on deciding how and when a business value can be delivered. While this brings lots of benefits, which we won't get into here, it does bring certain risks at the same time.

Different developers might have different opinion on design of certain part of the system, or no one have strong opinion over several sound solutions for the same problem. This is when benevolent dictator steps in, makes a decision in the team's place, and move on.

Of course, this is not nearly as easy as it sound. I did a little dig (very little, mind you) on my previous projects and pulled together the following criteria:

* The power should be used when necessary but ONLY when necessary.
* Any decision is a team's decision. Everyone takes the credit, everyone accepts the responsibility.
* Decision is not final in the sense that objections are noted and tracked, so that the wrong ones can be amended as early as possible.
* The title of "benevolent Dictator" is better granted.

At last, here is a PDF file that I have on my bookmark, which I think is related: "Agile Project Management.pdf"

4 comments:

Anonymous said...

Who gets to determine when the power is necessary?

Shane said...

I thought it would be the dictator himself. Because if the team realize that they are not moving forward, or not moving in the directory, they would normally come up with a decision. The "Benevolent" part of this role lies in reminding the team when such situation arises, I believe.

Brian Oxley said...

You say Codehaus is famous for this. Perhaps an even more famous example is Linux and Linus Torvalds.

Shane said...

You are right. I was speaking out of my limited exposure to OpenSource, which is all on Java/.Net development.

Thanks