Imagine a corporate software development group where the entire group decided on its own way of working, rather than having a boss who was responsible for telling each individual what to do. Features would be prioritized by the group, and individuals would volunteer for the projects they wanted to work on. Salary information would be common knowledge and raises would be decided on by concensus. If someone was underperforming, the group would decide, as a whole, how to deal with it. If the rest of the company felt that they needed a "boss" to serve as a primary interface to the rest of the team, then I'm sure the group could find someone to serve that role. The only remaining roles for a boss would to serve as a kind of mediator, or as a source of wisdom about best practices.
I'm not sure how this group would interact with product management. Perhaps the PM role would eventually change into something more like "customer advocate". Or perhaps the PM would somehow try to enforce constraints on the development group -- such as release dates, flagship features that have to be included, etc. It's hard for me to imagine a situation where a group of developers would refuse to at least try to honor those kinds of constraints, unless the constraints truly were wrong-headed.
I'm sure this has been tried before somewhere, but I'm not aware of it. If you know of such an experiment, please let me know.
Here's another thought: it seems like programmers are primarily motivated by making things that perform useful tasks. So why is it that in corporate software development, programmers are almost never encouraged to show off their latest creations? Lots of development shops have some kind of weekly meeting -- why not make use of that time to have developers give a demo of the feature they're working on?
I bet that if you did this, it would increase motivation, improve communication between people working on different parts of the product, elicit constructive suggestions from the other developers, and reinforce the feeling that everybody is part of a team working towards the same goal.
Posted on June 12, 2005 09:53 PM
More management articles
wl gore (makers of gore-tex fabric, glide floss, and various other products) has a 'flat' organizational structure similar to what you describe:
article on the company here: http://www.fastcompany.com/magazine/89/open_gore.html
Posted by: jesus h. christos at June 13, 2005 12:35 AMRumor has it that Ab Initio is run sort of like this, although they are very secretive so it is hard to know exactly what is going on.
Posted by: Alec Wysoker at June 13, 2005 08:13 AMSemco is also said to be something like this. There's a book on it. Not software engineering, though.
Posted by: Darius Bacon at June 13, 2005 03:52 PMAb Initio Software Corp. isn't run this way. I used to work there. As noted, they are secretive, so you don't know what is going on. Anything else one can say is speculative gossip and tends to mislead.
Posted by: Remediator at August 19, 2005 01:35 PM