Tuesday, January 18, 2011

"Cache oblivious" agile management

Cache oblivious data structures or algorithms scale when over different sizes of caches and different sizes of data usage. So how should we organize cross agile team communication so as to be oblivious to the size and the amount of change that needs to be channeled across teams? Now ideally each team is working independently; but the real world is not like that: scrum masters (let's refer to scrum as an example) like to meet and resolve impediments, architects meet to reduce redundancy and try keep the whole system for growing out of control, product owners are continuously working on their codependent backlogs.

The simple answer is to try not to worry about this. Ideally your business model allows you to minimize crossed team dependencies and to phase out products quickly enough that for the cross dependencies do not grow. But even if you managed to this may still be building a legacy of infrastructure. As architecture tends towards a distributed asynchronous systems the legacy is now in the message protocols which even if they are stateless become mini programs in their own right. So what can be done?

Your overall software development process needs to degrade gracefully. This implies that no impediment should block the development machine. The consequence then is that architecture, scrum master and HR related work need special attention!

I'll follow up with my recommendations in the later posting

No comments: