Latent Code:
    Lessons Learned
Implementing Feature Bits

          Erik Sowa
      Lyris Engineering
     DevOpsDay US ...
Outline of Talk

  Business context
  DevOps: Continuous flow of code to production
  Latent code: Introducing feature bit...
Business Context
Enable Flow: Avoid Big Bangs




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




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

Documented examples:

   Allspaw, John and Hammond, Paul,
  10+ Deploys Per Day: Dev and Ops Cooperat...
Feature Bits: Latent Code




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

  DigitalRiver and ExactTarget
      "Feature bits" used by Sean G. Ryan and team
  Flickr
      Pre...
Usage at Lyris
   Introduced August, 2008
   ~ 80 active bits by December, 2009
   48 active bits in March, 2010




 Phot...
Lessons Learned




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




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




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



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



...
Default state: Decouple code rolls




  Photo Credit: Kazumasa Ogawa (http://commons.wikimedia.org/wiki/File:Japanese_Cha...
Naming Convention Matters
Do Not Overload




Photo Credit: Jonathan Mallard
(http://commons.wikimedia.org/wiki/File:Unsafe_transport_of_a_shipping_...
Limit the overhead




 Photo Credit: Henning Klevier (http://commons.wikimedia.org/wiki/File:Fibonacci_%28x%2B1%29%5En.pn...
Customer-facing releases
Beta- and Split-Testing




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

Feature Bits

     Video of longer presentation (LSSC10)
        http://bit.ly/9m3d3r
     Paper (LS...
Upcoming SlideShare
Loading in …5
×

Feature Bits at DevOpsDays 2010 US

1,946
-1

Published on

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

1 Comment
1 Like
Statistics
Notes
  • I gave a longer version of this talk at LSSC10. Those slides are also available from my slideshare page. The video of the longer version is posted on the conference website:

    http://www.leanssc.org/files/201004/videos/20100421_Sowa_EnabilingFlowWithinAndAcrossTeams/20100421_Sowa_EnabilingFlowWithinAndAcrossTeams.html
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
1,946
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Feature Bits at DevOpsDays 2010 US

  1. 1. Latent Code: Lessons Learned Implementing Feature Bits Erik Sowa Lyris Engineering DevOpsDay US 2010
  2. 2. Outline of Talk Business context DevOps: Continuous flow of code to production Latent code: Introducing feature bits Lessons learned
  3. 3. Business Context
  4. 4. Enable Flow: Avoid Big Bangs Photo Credit: USDOE (http://commons.wikimedia.org/wiki/File:Castle_romeo2.jpg)
  5. 5. Deployment Pipeline Photo Credit: Ryan McFarland (http://commons.wikimedia.org/wiki/File:Alaska_Pipeline.jpg )
  6. 6. 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/7641 http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr http://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?
  7. 7. Feature Bits: Latent Code Photo Credit: Marcin Wichary (http://commons.wikimedia.org/wiki/File:IMSAI8080_TV11.jpg)
  8. 8. Latent code variants DigitalRiver and ExactTarget "Feature bits" used by Sean G. Ryan and team Flickr Previously 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 Experiments Gradual rollout of new features Etc.
  9. 9. Usage at Lyris Introduced August, 2008 ~ 80 active bits by December, 2009 48 active bits in March, 2010 Photo Credit: superde1uxe (http://commons.wikimedia.org/wiki/File:IMSAI8080.jpg)
  10. 10. Lessons Learned Photo Credit: Underwood & Underwood (http://commons.wikimedia.org/wiki/File:Ecuadoran_Students.jpg)
  11. 11. Design Pressure is Good Photo Credit: Tokino (http://commons.wikimedia.org/wiki/File:Air_pressure_gauge.jpg)
  12. 12. Manage the Lifecycle Photo Credit: Pyrothansia (http://commons.wikimedia.org/wiki/File:Life_cycle.jpg)
  13. 13. 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)
  14. 14. Default state: Decouple code rolls Photo Credit: Kazumasa Ogawa (http://commons.wikimedia.org/wiki/File:Japanese_Chain_coupler.jpg)
  15. 15. Naming Convention Matters
  16. 16. Do Not Overload Photo Credit: Jonathan Mallard (http://commons.wikimedia.org/wiki/File:Unsafe_transport_of_a_shipping_container_in_Afghanistan.jpg)
  17. 17. Limit the overhead Photo Credit: Henning Klevier (http://commons.wikimedia.org/wiki/File:Fibonacci_%28x%2B1%29%5En.png)
  18. 18. Customer-facing releases
  19. 19. Beta- and Split-Testing Photo Credit: US Navy (http://commons.wikimedia.org/wiki/File:Navy_binoculars.jpg)
  20. 20. 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: @eriksowa Blog: http://eriksowa.wordpress.com LinkedIn: http://www.linkedin.com/in/eriksowa email: erik.sowa@gmail.com, esowa@lyris.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×