Agile 2014 Opening Keynote

Sam Gluckenheimer, Group Product Planner for Visual Studio at Microsoft, opened the Agile 2014 conference with a keynote titled Journey to Cloud Cadence.

He described how the Visual Studio Product team had evolved their practices since the early 2000s from a waterfall process with 3-4 year release cycles to deployment every four weeks for their cloud service.

He started by painting the picture of the waterfall environment with competing tribes, lots of technical debt, competing tribes and complex architecture which truly embodied Conway's law and a blame culture that together resulted in release cycles extending as long as four years and lots of deferred defects to be fixed "in future releases"

In 2005/2006 they adopted what he called the first wave of Agile with some simple but important principles:

Get clean, stay clean: remove the technical debt and focus on the internal quality of the code base

Have a product backlog: prioritized and actively managed across three levels of granularity

Define Done: explicit set of criteria by which teams built the product

Scheduling: have a release schedule which is visible to all

Iteration backlog: give the teams autonomy in planning and executing their own work

Engineering practices: use the good technical practices which the Agile movement espouses

This change had definitely resulted in improved outcomes, but there was still opportunity to do better. He stated that one of the unintended consequences of adopting Agile practices is a focus on the internals of the process and the product - building the product right. There is a potential gap regarding the backlog - is it correctly ranked.

The next phase was the move to much more frequent delivery on what he calls the Cloud Cadence. This entails getting better customer feedback and responding to their needs much more quickly. He explained how they engage customers directly to identify needs and feed these into the product backlog. In customer workshops they ask three questions regarding potential features which are presented:

Is this feature important to you?

How good is your current solution for this capability?

Is what was presented going in the right direction?

This feedback enables product management to focus on the flow of value for customers and ensure they build capabilities which result in products their customers actually want and will get value from.

In order to achieve this responsiveness and outcomes focus they needed to move from Agile practices to a DevOps lifecycle, where Agile development practices provide a foundation for frequent and seamless automated deployment. They also build in lots of usage monitoring and use that feedback to direct the development process, responding not just to what customers are asking for but adapting the product based on actual usage stats.

He discussed their team environment and explained how their teams are structured, with a leadership triad consisting of product ownership, development and testing in teams of 8-12 people who stay together for 12-18 months. Each team has an autonomous backlog and works together in a shared team room.

He explained the planning horizons that they use on the products:

Vision - 18 months view of major capabilities they plan to release

Season - the next 6 months

Planning Chat - the crew leaders discuss their plans for the next 3 sprints

Sprint - the teams plan their own work for the next 3 weeks, after which the release is put into production.

They utilize feature flags which can be as granular as configuring features for a single user to enable incremental development without needing to branch the code base. This is done in conjunction with Canary Deployment - rolling a release into a single data centre and monitoring it for any anomalous behavior. He emphasized the importance monitoring and rapid response with their ability to constantly monitor many aspects of usage and performance is crucial to feeding the backlog to drive business success. He stated that the principles they follow regarding telemetry are