If you’ve been in software a while a lot of the time your gut starts to tell you that something feels wrong before you figure out exactly why. This year’s Agile 2008 conference gave me several insights into why some things I’ve had deep reservations about are wrong in a much more succinct way.
Distributing teams across time zones – Corey Ladas talk about “Scrum-ban” helped me figure out that one of the key issues with distributing teams across time zones is that it adds delays to your value stream. His blog post also points out how assigning all tasks at the beginning of an iteration adds a critical path to the work. This came up in the distributed agile workshop I attended but fitting it into the value stream mapping really sets it in context.
Scaling teams by decomposing using system components not product features – Bas Lodde’s talk on the pitfalls of component teams for large projects spent a lot of time explaining a theoretical model for how large teams distribute work. It provides a good framework for thinking about this issues. I’m still reading the Feature Teams chapter of his book which covers much of the same material as the talk.
The Singleton design pattern– Brian Foote’s design “Patterns Poster Children” session helped me figure out that the Singleton is often used like a global variable. Like a global variable it can effect application performance, scalability, threading and testability.
Really this was where I got most value from this year’s conference. It’s given me several frameworks for thinking about existing problems I knew I had. Now I have a better model of what’s going on it’ll be easier to articulate whyit’s wrong and help other improve things. Arguing for something based on the data is so much more convincing than “it just feels wrong”.