Feature Flags in Production & Constraint Driven Development

Characterised as Config Options on Steroids
Feature Flags in Production & Constraint Driven Development

Last month's audio visual extravaganza was always going to be a tough act to follow but, still on form after his well received ten minutes of turtle graphics, Simon Davey this month gave a detailed and insightful account of the feature flag strategy used by his team at Canonical - makers of the Ubuntu OS in case you didn't know.

The practice of coding toggle switches into features under development is not new; but doing so with a thoughtful, tactical approach and making a careful note of successful strategies on the way might be. Being able to share this type of insight and experience is the lifeblood of the Agile Yorkshire community and speakers like Simon should be celebrated.

Characterised as config options on steroids, Simon outlined some of the feature flag benefits, including maintaining an always deployable single mainline, providing tailored usability to targeted users and supporting multi variant testing. The downsides of added complexity were emphasised by the hard won advice to removed unused code paths and associated switches as soon as possible after the code is in production and functionality stable.

Simon’s session was filled with tips like: try to minimise code branches even at the expense of code duplication, make new code the default path to ensure old code is easier to remove later, try to make flags on by default and consider applying a naming convention to differentiate between short and long term configuration.

Simon covered several real world examples used at Canonical to illustrate his points and the interest and reception was reflected in the numerous questions.

Phil Rice filled the second slot for the second time in twelve months. The last time Phil Rice spoke at Agile Yorkshire was back last April, when he covered his business past and Lean Startup future. Several months of work and coding later he was back to talk about what he has been up to with his brand of Constraint Driven Development.

Phil has plenty of past form in this area having spent many years and a previously business focused on the problem domain of legacy systems and their reluctance to be tamed by conventional techniques in a cost effective way. Using his framework to compose constraints yielding both tests and working functionality holds the premise of a new approach to legacy system re-engineering. For the code hungry in the audience, Phil’s session was a banquet of Scala.

With screen after screen of live programming and numerous test driven development “red to green” cycles. The session was based on a Tennis rules kata and after thirty minutes of effort Phil had a working set of coded rules and a suite of tests to match.

The whole session was perhaps too brief to fully absorb the whole concept and explore the full potential but for those wishing to investigate further Phil has a whole website devoted to his framework and its usage.

The evening was capped off with the monthly prizes for "five to" twitter lottery and feedback draw. We now give a total of seven prizes a month so showing up for two or three times means you've a good change of walking away with something.


Royd Brayshay