Feature Bits at DevOpsDays 2010 US

20
Latent Code: Lessons Learned Implementing Feature Bits Erik Sowa Lyris Engineering DevOpsDay US 2010

description

Ignite talk delivered at DevOpsDays 2010 US (June 15, 2010) http://www.slideshare.net/eriksowa/feature-bits-at-devopsdays-2010-us

Transcript of Feature Bits at DevOpsDays 2010 US

Page 1: Feature Bits at DevOpsDays 2010 US

Latent Code:Lessons Learned

Implementing Feature Bits

Erik SowaLyris Engineering

DevOpsDay US 2010

Page 2: Feature Bits at DevOpsDays 2010 US

Outline of Talk

Business contextDevOps: Continuous flow of code to productionLatent code: Introducing feature bitsLessons learned

Page 3: Feature Bits at DevOpsDays 2010 US

Business Context

Page 4: Feature Bits at DevOpsDays 2010 US

Enable Flow: Avoid Big Bangs

Photo Credit: USDOE (http://commons.wikimedia.org/wiki/File:Castle_romeo2.jpg)

Page 5: Feature Bits at DevOpsDays 2010 US

Deployment Pipeline

Photo Credit: Ryan McFarland (http://commons.wikimedia.org/wiki/File:Alaska_Pipeline.jpg )

Page 6: Feature Bits at DevOpsDays 2010 US

Continuous Delivery

Documented examples:

Allspaw, John and Hammond, Paul, 10+ Deploys Per Day: Dev and Ops Cooperation at Flickr

http://en.oreilly.com/velocity2009/public/schedule/detail/7641http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickrhttp://velocityconference.blip.tv/file/2284377/

Humble, Jez and Farley, David,

Continuous Delivery (O'Reilly Rough Cuts)What about features you can't build in a day?

Page 7: Feature Bits at DevOpsDays 2010 US

Feature Bits: Latent Code

Photo Credit: Marcin Wichary (http://commons.wikimedia.org/wiki/File:IMSAI8080_TV11.jpg)

Page 8: Feature Bits at DevOpsDays 2010 US

Latent code variants

DigitalRiver and ExactTarget"Feature bits" used by Sean G. Ryan and team

FlickrPreviously cited talk mentions "feature flags" http://en.oreilly.com/velocity2010/public/schedule/detail/14145

Twitter "dynamically controlling features" and "infrastructure"http://nosql.mypopescu.com/post/407159447/cassandra-twitter-an-interview-with-ryan-king

Google ExperimentsGradual rollout of new features

Etc.

Page 9: Feature Bits at DevOpsDays 2010 US

Usage at Lyris

Introduced August, 2008~ 80 active bits by December, 200948 active bits in March, 2010

Photo Credit: superde1uxe (http://commons.wikimedia.org/wiki/File:IMSAI8080.jpg)

Page 10: Feature Bits at DevOpsDays 2010 US

Lessons Learned

Photo Credit: Underwood & Underwood (http://commons.wikimedia.org/wiki/File:Ecuadoran_Students.jpg)

Page 11: Feature Bits at DevOpsDays 2010 US

Design Pressure is Good

Photo Credit: Tokino (http://commons.wikimedia.org/wiki/File:Air_pressure_gauge.jpg)

Page 12: Feature Bits at DevOpsDays 2010 US

Manage the Lifecycle

Photo Credit: Pyrothansia (http://commons.wikimedia.org/wiki/File:Life_cycle.jpg)

Page 13: Feature Bits at DevOpsDays 2010 US

Maintain Production Quality

Code hidden behind feature bits is subject to the same quality requirements as any code

Photo Credit: Rjgdoy (http://commons.wikimedia.org/wiki/File:Quality_not_quantity.png)

Page 14: Feature Bits at DevOpsDays 2010 US

Default state: Decouple code rolls

Photo Credit: Kazumasa Ogawa (http://commons.wikimedia.org/wiki/File:Japanese_Chain_coupler.jpg)

Page 15: Feature Bits at DevOpsDays 2010 US

Naming Convention Matters

Page 16: Feature Bits at DevOpsDays 2010 US

Do Not Overload

Photo Credit: Jonathan Mallard(http://commons.wikimedia.org/wiki/File:Unsafe_transport_of_a_shipping_container_in_Afghanistan.jpg)

Page 17: Feature Bits at DevOpsDays 2010 US

Limit the overhead

Photo Credit: Henning Klevier (http://commons.wikimedia.org/wiki/File:Fibonacci_%28x%2B1%29%5En.png)

Page 18: Feature Bits at DevOpsDays 2010 US

Customer-facing releases

Page 19: Feature Bits at DevOpsDays 2010 US

Beta- and Split-Testing

Photo Credit: US Navy (http://commons.wikimedia.org/wiki/File:Navy_binoculars.jpg)

Page 20: Feature Bits at DevOpsDays 2010 US

For more information

Feature Bits

Video of longer presentation (LSSC10)http://bit.ly/9m3d3r

Paper (LSSC10 proceedings)http://bit.ly/bu8mNo

Thanks Rob Loh (implementer and co-author) Me

Twitter: @eriksowaBlog: http://eriksowa.wordpress.comLinkedIn: http://www.linkedin.com/in/eriksowaemail: [email protected], [email protected]