Organizing Software Development
Organizing work is a combination of doing the right thing, in the right way in an optimal way. This is hard and what makes it even harder is that the right thing and the right way are constantly changing. Over the years I work with software development; first the traditional project management schools with their view that if you only know what you did, success would come from making good plans and them focusing on executing that plan as effective as possible. Then the agile and lean view became the dominated methodologies that was convinced that if people was just empower, self-organized, became more business oriented and changed to adaptive planning great things would happen.
What was the Problem with the Traditional Project Management School?
The traditional view of project management was focusing on administrating passive resources that needed to be managed are not a view that was optimal for knowledge based work. The problem with the traditional view of organizing software development was foremost the underlying view that we were doing something repeatable, if we only was experienced enough we would be as effective as any manufacturing industry. A factory has a deterministic process, where you can expect a certain outcome based on the input, this works when the variation within the process is quite small. But the problem with our craft is that we develop products based on knowledge and collaboration, and then the variations within that process comparing to factories or building buildings are much higher. Software development is therefore a non-deterministic process that actually has more to do with developing new products than building houses or producing something in a factory.
The Agile Problem!
The biggest trend in organization of software development the last years are probably transcend to more agile methodologies. My view of the agile manifest is that many people foremost reacted against bad leadership and management style that wasn’t adapted to the knowledge based work people performed. The underlying idea of just empower everyone and give them give them the right to self-organize, isn’t optimal in all situations. I believe that when people realized that the plan-driven view wasn’t working they all started to look on those who shouted most and earliest, (and with all respect to the old gentlemen’s that wrote the agile manifest) they were a little to overrepresented by the anarchists. Don’t miss understand me, I’m a pro agile methodology. I just felt that leadership somewhere was lost in the focus on new process and tools. The problem with scrum trainers is that they value the scrum process and tools over individuals and interactions.
The traditional view of project management and the agile view both have its pros and cons. In the future both worlds will need to connect better in order to get the best from both. I believe that software developments sometimes are a deterministic process where you only install an out of box system and just tweak some things, and sometime it’s more of an exploratory journey into the world complexity.
I know all Scrum trainers are in London this week, on the Scrum Gathering 2011. Goto Jurgen Appelos sessions he seams to be the only one besides D Snowden that understand the basis of our work, complexity. I’m in London this week as well but unfortunately without attending the Scrum Gathering.