Friday 12 December 2014

Agile Thoughts

Recently I have found myself looking at our agile process and trying to work out ways of improving things, here are a few thoughts.

The idea of iterations seems like a nice thing when you work in an environment that releases completely ad-hoc and your practices don't really support this due to lack of proper testing. But when I look at projects that utilize automated testing and Continuous Integration the prospect of continuous delivery suddenly seems like a nice thing. If my code base is stable and automatically tested then why shouldn't I release at any point? there should never be a check in where the code base doesn't build/work. While I have defiantly argued the case that the business should be able to commit to 2 weeks worth of work without requiring to add additional stories to the iteration. Is it really such a bad thing for the business to be able to change their mind daily to respond quicker to the needs of customers? This seems like a very agile practice, responding to change quickly to give the business the edge of the competition.

The developer in me thinks that pretty much all estimation can quite happily be put under the category 'Waste', but I understand that this kind of thing when done properly can be good for the business to estimate how long things are going to take. I guess the main reason I am cynical is I have yet to see it work very well. At the moment I seem to favor planning poker as an estimation method and like the idea of using a T-Shirt Size/Numbered system crossover. The main reason for this being that t-shirt sizes are very easy for people to understand and they are not related to time, I've found that the whole story point can be quite a confusing concept to explain, though the downside of t-shirt sizes over story points is that the relation ship between the sizes can be very unclear (is a medium twice the size of a small.. e.t.c.). So I am thinking of doing a t-shirt size system but with the story point numbers wrote on the cards as well, this should hopefully make is accessible and clear.

I think this is the most valuable thing that agile brings us, the process of Kaizen (Continuous Improvement). While I often struggle with what to do with the items that come up in retrospectives (How to manage/resolve the problems). 

Stand ups are quite a good way of keeping track of whats going on between the team but I often find that most of what's said is already known by the people who need to know it. I think a stand up can be a useful tool when people lack time or communication but maybe it is not required by co located teams in an open office where anyone they need to speak to is often no more than a 30 second walk away.