Last night I attended my first ever Extreme Tuesday Club (XTC) event. XTC was one of the influences behind the setting up of AgileYorkshire for some of the original founders at Erudine. I was down in London for sys admin course so it was good to be able to go along and see XTC first hand. They have a good setup (although they are having to up sticks and find a new venue). The evening was combined with a presentation by David Anderson on Kanban which, for me, was fascinating. In my current job (Lead Dev) I am trying to direct things along in a traditional agile direction. As a team we already practice TDD and CI with some pair programming. I am trying to get us focused on iterations and the ability to deliver potentially releasable product (all agile buzzword bingo terms!) at the end of an iteration. The presentation made me feel a little uneasy. I am aware, at a high level, of the ideas behind Kanban and Work In Progress (WIP) limits but felt if we could get our iterations going smoothly then we would have a bit of a breather and then we could start moving towards a process based on WIP rather iterations once I understood Lean.
David seemed to be suggesting that implementing WIP is the first thing you should do. I need to read and discuss this a little more. I didn't manage to copy down the points but the essence of it was improve your existing process - don't bring in new processes wholesale. By simply implementing WIP and giving visibility through a physical Kanban board (augmented by an online system for reporting and organisational visibility) you will get process improvement which will lead to more organisational maturity which in turn will make it more likely for bigger process changes to be successful. The decoupling of the planning, development and release schedules seemed to be really important (they are all tightly coupled with agile iterations) as it is a dependancy which, if it existed between software components, would be removed during refactoring and which is something I need to think about.
Davids assertion was that if you implement simple changes to existing systems then you will get benefit earlier with minimal resistance and that given time the people you interact with will be asking you for ways that they can change too! It felt strange hearing the terms Software Engineering, IEEE, CMMI being mentioned in a positive way at an agile evening. I can guess that stuff like this might rub some in the agile community up the wrong way.
Other than the presentation I managed to talk to Steve Freeman who is a (?the) founder of XTC which was great and hopefully we can start talking to him about his experiences, some ideas and joint publicity. Also played a Kanban game to show the effects of batching work in a pipeline (http://blog.crisp.se/mattiasskarin/tags/flow/) which was great fun and would go down well at AgileYorkshire. I might have persuaded a few people to make the trip up to t'frozen north to present/participate in AgileYorkshire but it might of just been Beer Bravado :)
All in all a great evening and, as usual, came away with more questions than answers but with some insights into Kanban and the feeling that I need to do more reading/talking and, if I do, it should move me forward (especially if beer fueled).