In my previous 4 installments of My Crusade for Agility I've outlined my career as a professional developer and how and why I've been striving for an agile development environment. In Part 4, I discussed how I introduced our continuous integration server and how we were able to automate our testing, code coverage, metrics, database schema and data changes, deployments, and ticket tracking. Those were all positive moves and we were working in a much more automated, much easier, much more fun development environment.
Things running more smoothly than ever, but I still wanted more. I wanted a fully agile development environment, not just CI, and I still wasn't sure what that meant, but I knew that so far all of these changes were only benefiting developers. Managers and business analysts haven't really seen much benefit yet, and in order for this to stick, I was going to have to get them on board. So, I decided to approach some acquaintances (who I'd met at local user groups) who worked for agile shops in our area about giving myself and some of my co-workers tours of their facilities and give us a high level "tour" of what agile means to them and how they do it.
Everyone was excellent, they opened their doors to us, spent an hour (at least) answering our questions and showing us how they operate from day to day and filling our heads (well, mine at least) with lots of ideas about how to improve our development process. Everyone at my company was great also, they entertained my ideas and our managers took time out of their busy days to go on these visits with me. They all had great questions, to which they received great answers from our hosts. To be honest, I learned a lot more than I expected to (not that I had low expectations).
After having seen how these agile shops operate I was extremely excited to try to implement some of the things that they were doing. I wanted a big public display of our CI environment, big white boards that showed what everyone was working on, scheduled releases with a predefined set of new features and enhancements that would be implemented and I wanted to do TDD and pair programming. The unfortunate thing was that my team was currently halved, half on one end of the building on the second floor and the other half on the opposite end of the building on the first floor. One consistent theme from all of the agile shops that we saw was the physical location of the team were very close.
Luckily, there was just enough room for us to move and bring our entire team together in a much closer area. Now that we were all together as a team, maybe we could start being more agile. My manager got a giant white board and put it up in his office, and we started reviewing what we were working on, and planned to work on every morning in a short stand up meeting. We still had high cubicle walls up and some of us are in separate rooms, but we were all just around the corner from each other, instead of across the building.
Management has agreed to, in the near future, do some renovation and build us our own big open space where we can develop together without any walls separating us. We should have ample wall space for white boards and a good public place to display some information from our CI environment. There are a lot of exciting developments that are happening now, and are starting to happen, and plenty more that we've been doing that I haven't told you about, yet. Tune in next time, there is plenty more to tell.