I’ve never been to a conference like this before, so I wasn’t sure what to expect. The conference kicked off Tuesday at the Microsoft Conference Center in Redmond, which is a beautiful building, even if I’ve only seen the conference rooms on the bottom floor so far 🙂 The start-time for registration said 7:30am and it was running all day along with an Expo Reception that wrapped up at 8pm, so I was prepared for a very grueling day, but it turned out to be some of the most fun I’ve had talking shop with other industry folks.
I attended sessions from a mix of the DevOps, Agile Development, and ALM Leadership tracks. I won’t go into detail on every single thing said in these sessions, especially because the videos will surface in a few weeks and I can just link to them then, but here are a few highlights and notes from the sessions I was able to attend.
The day started with a few keynotes to kick things off. The opening keynote by Jason Zander delved into Windows Azure and really showed off how easy it’s going to be to spin up new websites, apps, and infrastructure in the cloud. I had no intention of thinking about infrastructure while I was here, but this session really got me interested in checking out the free trial. What really got me thinking was the online pricing calculator which makes any quoting I need to do for a client dead simple once I’ve figured out what the basic model is that will be needed to deliver the solution. With the real-time scalability to just update on the fly and have your billing updated to reflect, along with HA/DR out of the box, this sounds like a no-brainer for a lot of clients. I’m not sure on how the pricing scales out though, so I’d have to run the calculator through some common scenarios and see what it comes out to.
Scaled Agile Framework
The Industry Keynote that followed was delivered by Dean Leffingwell on scaling agile and staying lean. The work that he and his colleagues have done surrounding the Scaled Agile Framework (SAFe) is pretty inspiring, and it’s all freely available. I think the big thing I took away here was the discussion surrounding the Program Level where Architects are working to set things up for multiple teams (Team-Of-Agile-Teams, a.k.a. Scrum-of-Scrums). I also got a book by Dean on Agile Software Requirements that I’m going to read through.
My favorite session of the day was definitely by Etsy’s Mike Brittain who spoke on how they have accomplished doing continuous deployment directly into production. Can you imagine doing 30 deployments a day to your production environment? Without a QA environment? I spent some time with Mike outside of the session as well and I think this is definitely something we should all be paying attention to. I wasn’t the only one interested, as well, because the conference room for this was packed to overflowing. Folks were lined up in the aisles, along the walls, and sitting on the floor for a chance to hear about this. It will be a little while before the video for this is posted, but I did find a slide deck Mike presented at a previous conference that can give you a general idea. The presentation today was a little different, but the core idea remains the same: Dev is not the same as Prod. The only place you’ll know if it works is in your production environment. The config flag mechanism they use to deploy code “in the dark” and with limited canary pool releases drives the whole thing.
UPDATE: Mike has posted the latest slide deck onto the web.
Other Agile Sessions
I attended a few other sessions in the ‘Agile’ theme. Peter Provost did his “Staying in the Groove” session while dressed in a brown robe and told us how to motivate people. Very Dan Pink type of stuff. His stand-up desk seems to be pretty awesome!
Gregg Boer did a session in the Kodiak room on “Shifting to Agile Requirements in a Continuous Delivery Cadence” which really spoke more about engagement then about the requirements. I had thought we’d be talking how to write acceptance criteria but it was more about making teams Agile. The session was good, but wasn’t what I was looking for.
I rounded out the conference room sessions that day with David Starr’s “Estimating for Software Development, Delivery, and Deadlines”. David is a great presenter and really dug into group estimation, projecting with velocity, and how to start calculating values. I think the part of this session regarding the different Economies at different tiers, and then pulling those Economies together was really great. I’m not sure how much of it I could use on a day-to-day basis, but at the very least it talked to a few of the problems I’ve faced with trying to discuss estimates at a Director level when we have estimates coming in at a Team level. When this comes out on video, I think I’m going to have to re-watch it, because I’m not certain I got everything the first time through.
Birds of a Feather sessions
Something that I didn’t know what to do with was the Birds of a Feather session time. I understood the concept, but had to walk into it to really get it. I came across a hallway session with Ken Schwaber and a ring of folks talking about KPIs and metrics, but for some reason I couldn’t get engaged. So, as the instructions on the website had indicated, I picked myself up and moved along. I sure am glad I did! I ran into some folks from Scrum Alliance and Scrum.org and all sorts of other groups that were talking about Organizational Gravity, and that deviated into several other interesting areas which really caught my interest. I really enjoyed my time with the folks around the table, and I came away knowing two things:
- I need to work on my soft-skills training to be able to manage better
- Lots of folks are wondering about how to get distributed agile teams to work.
Agile Testing and Unit Tests
Throughout the day, at breakfast, lunch, in between sessions, I kept getting into conversations about QA, and how we ensure quality, and how do we get developers to buy into helping with testing. This topic is on everybody’s minds, and from all sides of the organization. Everybody has their own solution, but it sounded like the consensus was definitely that whomever is verifying that the functionality works needs to be part of the team and involved in the iteration. Of all the discussions had, a few points really rang true for me:
- Implement Work In Progress (WIP) limits. Developers won’t be able to keep coding, they’ll have to help test.
- Unit Tests. The automation is key, whether done by developers or QA resources with development back-ground. Test-driven development is even better!
- Reduce Gates. Having gates in our way just makes us find ways to avoid the gate. Things like gated check-ins, QA blocking deploys to an environment, QA bottlenecks at the end of an iteration… all of this needs to go away. The Lean model seems to have some great tools that can probably help for some teams on this.