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

Feature Bits at DevOpsDays 2010 US

Embed Size (px)

DESCRIPTION

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

Citation preview

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]