Even though my organization has been practicing “agile” for several years, I have witnessed a seismic shift in what that means over the last 15 months. We have shifted from Sprint Teams running two-week Sprints and releasing every other Sprint cycle to an interrupt-driven Kanban “pull” model with no strictly time-boxed development cycle where we release twice a week, whatever is ready. This is just a step along the road to fully automated Continuous Delivery for us, though. We’re learning as we go. Our focus right now is ruthlessly stripping our manual release process to its essence, then automating what’s left.
Even though we’re focused on optimization of a semi-manual release process, we’re thinking about what else we need to do to improve our game. We’re not just thinking about release process. We’re still defining our development philosophy is, how we can create an infrastructure in which we can experiment, and what techniques we can employ now that improve our flexibility and give us more options for future experimentation.