I’ve been working with several large organisations recently, all interested in adopting agile in new development groups. But not before they build in the barriers that make agile exceedingly difficult, or even impossible. I’m talking organisational structure here. Once an organisation is formed, it can be very difficult to change. Once employees have been carved up into different functions/departments (ie fiefdoms) if can be a real bun-fight to get them working together effectively.
The traditional organisation has a business organisation, developers, QA, maybe data architects, DBA, UI design, SOA expert group, etc. But delivering a feature requires all these groups work together. And if you have an iteration cycle of 2 weeks, that means they all need to work together with no time wasted handing-off work to each other. As each group wrestles with its own priorities (driven by their own metrics and reward systems) they generally fail to gel as a cohesive team, with miscommunication, queuing and differing priorities the norm.Finger-pointing and increasing CYA bureaucracy are often the result.
Some say the matrix organisations are the answer – bring the necessary experts together on a project by project basis. But this means a lot of chop/change as projects start & finish, grow and shrink, etc. Research shows teams reach optimum performance when they’ve been working together for 4 years – much longer than the average project.
So why do we divide people up into distinct ‘departments’ – is there more to it than ease of centralised management? And if we are pursuing self-organisation, is there still a good arguement for it? Theres certainly a significant cost…