SlideShare a Scribd company logo
1 of 20
Download to read offline
Latent Code:
    Lessons Learned
Implementing Feature Bits

          Erik Sowa
      Lyris Engineering
     DevOpsDay US 2010
Outline of Talk

  Business context
  DevOps: Continuous flow of code to production
  Latent code: Introducing feature bits
  Lessons learned
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 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?
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
      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.
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)
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




 Photo Credit: Rjgdoy (http://commons.wikimedia.org/wiki/File:Quality_not_quantity.png)
Default state: Decouple code rolls




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




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




 Photo Credit: Henning Klevier (http://commons.wikimedia.org/wiki/File:Fibonacci_%28x%2B1%29%5En.png)
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 (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

More Related Content

Similar to Feature Bits at DevOpsDays 2010 US

Feature Bits at LSSC10
Feature  Bits at LSSC10Feature  Bits at LSSC10
Feature Bits at LSSC10Erik Sowa
 
Portable Technology in the Workplace – Welcoming Wearables
Portable Technology in the Workplace – Welcoming WearablesPortable Technology in the Workplace – Welcoming Wearables
Portable Technology in the Workplace – Welcoming WearablesMartin Hamilton
 
Building Microservices in the cloud at AutoScout24
Building Microservices in the cloud at AutoScout24Building Microservices in the cloud at AutoScout24
Building Microservices in the cloud at AutoScout24Christian Deger
 
Semantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer AppsSemantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer AppsJie Bao
 
Moodle Series - Learn Local - Embedding in Moodle
Moodle Series - Learn Local - Embedding in MoodleMoodle Series - Learn Local - Embedding in Moodle
Moodle Series - Learn Local - Embedding in MoodleYum Studio
 
Agile + Benefits + Transition Nov 2009
Agile + Benefits + Transition   Nov 2009Agile + Benefits + Transition   Nov 2009
Agile + Benefits + Transition Nov 2009Michael Sahota
 
Software rotting
Software rottingSoftware rotting
Software rottingGiulio Vian
 
DockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDocker, Inc.
 
Doing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via DistributionsDoing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via DistributionsThom Bunting
 
DrupalCon chicago 2011 summary
DrupalCon chicago 2011 summaryDrupalCon chicago 2011 summary
DrupalCon chicago 2011 summaryHector Iribarne
 
Achieving Secure DevOps: Overcoming the Risks of Modern Service Delivery
Achieving Secure DevOps: Overcoming the Risks of Modern Service DeliveryAchieving Secure DevOps: Overcoming the Risks of Modern Service Delivery
Achieving Secure DevOps: Overcoming the Risks of Modern Service DeliveryPerforce
 
ECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsJeff Potts
 
14180203 an-introduction-to-android
14180203 an-introduction-to-android14180203 an-introduction-to-android
14180203 an-introduction-to-androidNeha Jain
 
Top10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome AppsTop10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome AppsCasey Lee
 
Highway to heaven - Voxxed Days Belgrade
Highway to heaven - Voxxed Days BelgradeHighway to heaven - Voxxed Days Belgrade
Highway to heaven - Voxxed Days BelgradeChristian Deger
 
Highway to heaven - Microservices Meetup Dublin
Highway to heaven - Microservices Meetup DublinHighway to heaven - Microservices Meetup Dublin
Highway to heaven - Microservices Meetup DublinChristian Deger
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Hasan Hosgel
 
Governing Online: Using Drupal To Open Up The NY State Senate
Governing Online: Using Drupal To Open Up The NY State SenateGoverning Online: Using Drupal To Open Up The NY State Senate
Governing Online: Using Drupal To Open Up The NY State SenateAndrew Hoppin
 

Similar to Feature Bits at DevOpsDays 2010 US (20)

Feature Bits at LSSC10
Feature  Bits at LSSC10Feature  Bits at LSSC10
Feature Bits at LSSC10
 
Portable Technology in the Workplace – Welcoming Wearables
Portable Technology in the Workplace – Welcoming WearablesPortable Technology in the Workplace – Welcoming Wearables
Portable Technology in the Workplace – Welcoming Wearables
 
Building Microservices in the cloud at AutoScout24
Building Microservices in the cloud at AutoScout24Building Microservices in the cloud at AutoScout24
Building Microservices in the cloud at AutoScout24
 
Semantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer AppsSemantic Web: In Quest for the Next Generation Killer Apps
Semantic Web: In Quest for the Next Generation Killer Apps
 
Moodle Series - Learn Local - Embedding in Moodle
Moodle Series - Learn Local - Embedding in MoodleMoodle Series - Learn Local - Embedding in Moodle
Moodle Series - Learn Local - Embedding in Moodle
 
Agile + Benefits + Transition Nov 2009
Agile + Benefits + Transition   Nov 2009Agile + Benefits + Transition   Nov 2009
Agile + Benefits + Transition Nov 2009
 
Software rotting
Software rottingSoftware rotting
Software rotting
 
DockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General SessionDockerCon EU 2015: Day 1 General Session
DockerCon EU 2015: Day 1 General Session
 
Doing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via DistributionsDoing Drupal: Quick Start Deployments via Distributions
Doing Drupal: Quick Start Deployments via Distributions
 
DrupalCon chicago 2011 summary
DrupalCon chicago 2011 summaryDrupalCon chicago 2011 summary
DrupalCon chicago 2011 summary
 
Achieving Secure DevOps: Overcoming the Risks of Modern Service Delivery
Achieving Secure DevOps: Overcoming the Risks of Modern Service DeliveryAchieving Secure DevOps: Overcoming the Risks of Modern Service Delivery
Achieving Secure DevOps: Overcoming the Risks of Modern Service Delivery
 
ECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM SolutionsECM and Open Source Software: A Disruptive Force in ECM Solutions
ECM and Open Source Software: A Disruptive Force in ECM Solutions
 
14180203 an-introduction-to-android
14180203 an-introduction-to-android14180203 an-introduction-to-android
14180203 an-introduction-to-android
 
Velocity Report 2009
Velocity Report 2009Velocity Report 2009
Velocity Report 2009
 
Top10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome AppsTop10 Characteristics of Awesome Apps
Top10 Characteristics of Awesome Apps
 
Highway to heaven - Voxxed Days Belgrade
Highway to heaven - Voxxed Days BelgradeHighway to heaven - Voxxed Days Belgrade
Highway to heaven - Voxxed Days Belgrade
 
2011 NASA Open Source Summit - Forge.mil
2011 NASA Open Source Summit - Forge.mil2011 NASA Open Source Summit - Forge.mil
2011 NASA Open Source Summit - Forge.mil
 
Highway to heaven - Microservices Meetup Dublin
Highway to heaven - Microservices Meetup DublinHighway to heaven - Microservices Meetup Dublin
Highway to heaven - Microservices Meetup Dublin
 
Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24Mobile Development across Different Platforms @ Immobilienscout24
Mobile Development across Different Platforms @ Immobilienscout24
 
Governing Online: Using Drupal To Open Up The NY State Senate
Governing Online: Using Drupal To Open Up The NY State SenateGoverning Online: Using Drupal To Open Up The NY State Senate
Governing Online: Using Drupal To Open Up The NY State Senate
 

Feature Bits at DevOpsDays 2010 US

  • 1. Latent Code: Lessons Learned Implementing Feature Bits Erik Sowa Lyris Engineering DevOpsDay US 2010
  • 2. Outline of Talk Business context DevOps: Continuous flow of code to production Latent code: Introducing feature bits Lessons learned
  • 4. Enable Flow: Avoid Big Bangs Photo Credit: USDOE (http://commons.wikimedia.org/wiki/File:Castle_romeo2.jpg)
  • 5. Deployment Pipeline Photo Credit: Ryan McFarland (http://commons.wikimedia.org/wiki/File:Alaska_Pipeline.jpg )
  • 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. Feature Bits: Latent Code Photo Credit: Marcin Wichary (http://commons.wikimedia.org/wiki/File:IMSAI8080_TV11.jpg)
  • 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. 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. Lessons Learned Photo Credit: Underwood & Underwood (http://commons.wikimedia.org/wiki/File:Ecuadoran_Students.jpg)
  • 11. Design Pressure is Good Photo Credit: Tokino (http://commons.wikimedia.org/wiki/File:Air_pressure_gauge.jpg)
  • 12. Manage the Lifecycle Photo Credit: Pyrothansia (http://commons.wikimedia.org/wiki/File:Life_cycle.jpg)
  • 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. Default state: Decouple code rolls Photo Credit: Kazumasa Ogawa (http://commons.wikimedia.org/wiki/File:Japanese_Chain_coupler.jpg)
  • 16. Do Not Overload Photo Credit: Jonathan Mallard (http://commons.wikimedia.org/wiki/File:Unsafe_transport_of_a_shipping_container_in_Afghanistan.jpg)
  • 17. Limit the overhead Photo Credit: Henning Klevier (http://commons.wikimedia.org/wiki/File:Fibonacci_%28x%2B1%29%5En.png)
  • 19. Beta- and Split-Testing Photo Credit: US Navy (http://commons.wikimedia.org/wiki/File:Navy_binoculars.jpg)
  • 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