Github developer Scott Chacon describes their development process:
At GitHub we don’t have a project tracker or todo list – we just all work on whatever is most interesting to us. No standup meetings, burndown charts or points to assign. No chickens or pigs. It’s sort of the open source software style of business – everyone itches thier own scratch. Inexplicably, it works really well and keeps everyone engaged, new features appearing quickly and bugs fixed rather fast. No managers, directors, PMs or departments – and it’s the most agile, focused and efficient team I’ve ever worked with. Maybe we should write a book about it.
The first question that occurs to me when reading this is, under what conditions would such an approach work? (The second is, do they have a quality assurance department, and if so, how do they plan their work?)
But let’s go back to the first. I can think of a few prerequisites:
- Your developers must be users of the product. In fact, I think this sort of approach could only work for companies that build tools for developers.
- Your developers must be able to iterate without relying too much on other members of the team.
- The business must not have customers who are promised certain features by a certain date. Customers of every software company I’ve ever worked for have requested features that no developer wants to work on, but they pay the bills, so we worked on them anyway.
There are probably a lot more conditions required to make this sort of arrangement work, but those are the ones that immediately leap out at me. The beautiful thing about this approach is that it insures that you get exactly the developers you’d like to have. The people who would not want to work under these conditions are not the ones you’d want anyway, and the developers you would want would leap at the chance to work in this fashion.
Thanks to Ryan Tomayko for the link.
Update: Be sure to read Ryan’s comment below, he adds a lot more details about how things work at GitHub.