SlideShare une entreprise Scribd logo
1  sur  43
Continuous Deployment
                Case-study: WiredReach
                                              COMMIT
          DEV




                                    MONITOR            TEST


RELEASE            QA


                                              DEPLOY




                        Ash Maurya
                          @ashmaurya
                  http://www.ashmaurya.com
How do you maximize
progress in a Lean Startup?
By maximizing validated
learning about customers.
Requirements   Development   QA   Release
Some learning




   Requirements   Development   QA   Release
Most learning happens
Some learning
                                              here



   Requirements   Development   QA            Release
Most learning happens
Some learning
                                                   here



   Requirements   Development       QA             Release




                   Very little learning
Product Development gets in the
way of learning about customers.
Most learning happens
Some learning
                                                   here



   Requirements   Development       QA             Release




                   Very little learning
Most learning happens
Some learning
                           here



   Requirements            Release
Most learning happens
Some learning
                           here



   Requirements            Release
Most learning happens
Some learning
                           here



   Requirements            Release
Most learning happens
Some learning
                                  here


                   Continuous
   Requirements                   Release
                   Deployment




            Shortens cycle time
1. Before and After
2. How we got started
3. How we build features
About WiredReach
 Dead-Simple Sharing Software


          BoxCloud
          The simple way to share files
          with clients and coworkers.




          CloudFire
          Photo and Video Sharing for
          Busy Parents and Photographers.
Before                   After
                                    COMMIT
            DEV




                         MONITOR             TEST


RELEASE            QA


                                    DEPLOY




2 week release cycles   Multiple releases a day
Before                 After


  PRODUCTION            PRODUCTION




  CERTIFICATION          SANDBOXES




Staging area      Standalone sandboxes
Before                      After
                                           COMMIT
                DEV




                                MONITOR             TEST


    RELEASE            QA


                                           DEPLOY




Releases were all day events   Releases are non-events
Before                    After
                                       COMMIT
              DEV




                            MONITOR             TEST


  RELEASE            QA


                                       DEPLOY




     Release size:              Release size:
hundreds of lines of code     < 25 lines of code
Before                  After
                                     COMMIT
              DEV




                          MONITOR             TEST


  RELEASE            QA


                                     DEPLOY




More emergency releases     Less firefighting
Before                  After
                                   COMMIT
            DEV




                        MONITOR             TEST


RELEASE            QA


                                   DEPLOY




Coding days versus       Coding days AND
  Customer days           Customer days
Continuous Deployment
  sounds great, but...
Taking the plunge is scary as hell
Requirements   Development   QA   Release
Requirements   Development   QA   Release
$
Requirements   Development   QA   Release
$
Requirements   Development       QA    Release




                Very little learning
$
                              Automated
Requirements   Development       QA
                                 QA       Release




                Very little learning
$
                              Automated
Requirements   Development       QA
                                 QA        Release




                                          Production
                Very little learning      Monitoring
1. Before and After
2. How we got started
3. How we build features
Code in small batch sizes
Deploy manually at first, then automate.
Always test the User Activation flow
Watch the release cycle time


                           COMMIT




                 MONITOR            TEST




                           DEPLOY




                  Less than 30 minutes
Be ready to stop the production line
Build a cluster
immune system.
Incrementally.




   Build a cluster immune system. Incrementally.
Challenges: Downloadable software
1. Before and After
2. How we got started
3. How we build features
Don’t be a feature pusher




         NEW FEATURES



                        20%
                              CONTINUOUS
                                RELEASE

                        80%

           EXISTING
           FEATURES
Constrain the features pipeline




                                            Validated
     Backlog     In-Progress    Done
                                            Learning



               Was this feature any good?
Closing the loop with validated learning


        Qualitative            Quantitative




          Start here           Verify with data
When is the right time to start ?




              There is no better time than the present.
Thanks!
Ash Maurya
twitter: ashmaurya
blog: http://www.ashmaurya.com


         Getting Lean - the book
         How to iterate your web
         application to product/market fit

         http://www.wiredreach.com/gettinglean.html

Contenu connexe

Tendances

Shift Left Testing: Going Beyond Agile
Shift Left Testing: Going Beyond AgileShift Left Testing: Going Beyond Agile
Shift Left Testing: Going Beyond AgileTechWell
 
Why everything is an A/B Test at Pinterest
Why everything is an A/B Test at PinterestWhy everything is an A/B Test at Pinterest
Why everything is an A/B Test at PinterestKrishna Gade
 
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Xpand IT
 
A/B Testing with Yammer's Product Manager
A/B Testing with Yammer's Product ManagerA/B Testing with Yammer's Product Manager
A/B Testing with Yammer's Product ManagerProduct School
 
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...ScyllaDB
 
Build optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and DockerBuild optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and DockerDmytro Patkovskyi
 
Emerging QA COE Practice by Mukund Wangikar
Emerging QA COE Practice by Mukund WangikarEmerging QA COE Practice by Mukund Wangikar
Emerging QA COE Practice by Mukund WangikarAgile Testing Alliance
 
Slicing and dicing your user stories
Slicing and dicing your user storiesSlicing and dicing your user stories
Slicing and dicing your user storiesJenny Wong
 
Self healing test automation with Healenium and Minimization of regression su...
Self healing test automation with Healenium and Minimization of regression su...Self healing test automation with Healenium and Minimization of regression su...
Self healing test automation with Healenium and Minimization of regression su...Dmitriy Gumeniuk
 
Test data management a case study Presented at SiGIST
Test data management a case study Presented at SiGISTTest data management a case study Presented at SiGIST
Test data management a case study Presented at SiGISTrenardv74
 
5 Best Practices DevOps Culture
5 Best Practices DevOps Culture5 Best Practices DevOps Culture
5 Best Practices DevOps CultureEdureka!
 
Cloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agentsCloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agentsShai Almog
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introductionSven Peters
 
Architecting Atlassian for Healthcare and FDA Compliance
Architecting Atlassian for Healthcare and FDA ComplianceArchitecting Atlassian for Healthcare and FDA Compliance
Architecting Atlassian for Healthcare and FDA ComplianceAtlassian
 
Agile Testing Best Practices
Agile Testing Best PracticesAgile Testing Best Practices
Agile Testing Best PracticesStephen Ritchie
 

Tendances (20)

Shift Left Testing: Going Beyond Agile
Shift Left Testing: Going Beyond AgileShift Left Testing: Going Beyond Agile
Shift Left Testing: Going Beyond Agile
 
Why everything is an A/B Test at Pinterest
Why everything is an A/B Test at PinterestWhy everything is an A/B Test at Pinterest
Why everything is an A/B Test at Pinterest
 
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
Quality Assurance Made Easy in JIRA - Xpand IT & Atlassian JAM Sessions 2017
 
A/B Testing with Yammer's Product Manager
A/B Testing with Yammer's Product ManagerA/B Testing with Yammer's Product Manager
A/B Testing with Yammer's Product Manager
 
Agile at AT&T
Agile at AT&TAgile at AT&T
Agile at AT&T
 
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...Performance Engineering Masterclass: Efficient Automation with the Help of SR...
Performance Engineering Masterclass: Efficient Automation with the Help of SR...
 
Build optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and DockerBuild optimization mechanisms in GitLab and Docker
Build optimization mechanisms in GitLab and Docker
 
Emerging QA COE Practice by Mukund Wangikar
Emerging QA COE Practice by Mukund WangikarEmerging QA COE Practice by Mukund Wangikar
Emerging QA COE Practice by Mukund Wangikar
 
Slicing and dicing your user stories
Slicing and dicing your user storiesSlicing and dicing your user stories
Slicing and dicing your user stories
 
Self healing test automation with Healenium and Minimization of regression su...
Self healing test automation with Healenium and Minimization of regression su...Self healing test automation with Healenium and Minimization of regression su...
Self healing test automation with Healenium and Minimization of regression su...
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
Test data management a case study Presented at SiGIST
Test data management a case study Presented at SiGISTTest data management a case study Presented at SiGIST
Test data management a case study Presented at SiGIST
 
5 Best Practices DevOps Culture
5 Best Practices DevOps Culture5 Best Practices DevOps Culture
5 Best Practices DevOps Culture
 
Cloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agentsCloud Native Debugging in Production - Dig Deep into your agents
Cloud Native Debugging in Production - Dig Deep into your agents
 
Test Automation
Test AutomationTest Automation
Test Automation
 
Bamboo - an introduction
Bamboo - an introductionBamboo - an introduction
Bamboo - an introduction
 
Architecting Atlassian for Healthcare and FDA Compliance
Architecting Atlassian for Healthcare and FDA ComplianceArchitecting Atlassian for Healthcare and FDA Compliance
Architecting Atlassian for Healthcare and FDA Compliance
 
TCoE
TCoETCoE
TCoE
 
Agile Testing Best Practices
Agile Testing Best PracticesAgile Testing Best Practices
Agile Testing Best Practices
 
CI/CD
CI/CDCI/CD
CI/CD
 

En vedette

10 Steps to Product/Market Fit
10 Steps to Product/Market Fit10 Steps to Product/Market Fit
10 Steps to Product/Market FitAsh Maurya
 
Building a Lean Startup
Building a Lean StartupBuilding a Lean Startup
Building a Lean StartupAsh Maurya
 
Business plan vs Lean Canvas
Business plan vs Lean CanvasBusiness plan vs Lean Canvas
Business plan vs Lean CanvasAsh Maurya
 
Pirate Metrics 2.0 - AARRR
Pirate Metrics 2.0 - AARRRPirate Metrics 2.0 - AARRR
Pirate Metrics 2.0 - AARRRAsh Maurya
 
10 steps to product/market fit
10 steps to product/market fit10 steps to product/market fit
10 steps to product/market fitAsh Maurya
 
Aesop's garden presentation
Aesop's garden presentationAesop's garden presentation
Aesop's garden presentationAsh Maurya
 
Continuous Deployment - Lean LA
Continuous Deployment - Lean LAContinuous Deployment - Lean LA
Continuous Deployment - Lean LAAsh Maurya
 
Actionable metrics
Actionable metricsActionable metrics
Actionable metricsAsh Maurya
 
Lean Canvas Slideshow
Lean Canvas SlideshowLean Canvas Slideshow
Lean Canvas SlideshowAsh Maurya
 
How We Build Features
How We Build FeaturesHow We Build Features
How We Build FeaturesAsh Maurya
 
Running Lean - Dallas
Running Lean - DallasRunning Lean - Dallas
Running Lean - DallasAsh Maurya
 
What Is A Lean Startup?
What Is A Lean Startup?What Is A Lean Startup?
What Is A Lean Startup?Ash Maurya
 
Transitioning to-lean-at-infochimps
Transitioning to-lean-at-infochimpsTransitioning to-lean-at-infochimps
Transitioning to-lean-at-infochimpsAsh Maurya
 
How to Identify a lean startup
How to Identify a lean startupHow to Identify a lean startup
How to Identify a lean startupAsh Maurya
 
Running Lean Canvas
Running Lean CanvasRunning Lean Canvas
Running Lean CanvasAsh Maurya
 
Running lean - YearOneLabs, Montreal
Running lean - YearOneLabs, MontrealRunning lean - YearOneLabs, Montreal
Running lean - YearOneLabs, MontrealAsh Maurya
 
Software MTTR: The Path from Continuous Integration to Continuous Delivery
Software MTTR: The Path from Continuous Integration to Continuous DeliverySoftware MTTR: The Path from Continuous Integration to Continuous Delivery
Software MTTR: The Path from Continuous Integration to Continuous DeliveryJeff Sussna
 
Automated Deployment in Support of Continuous Integration to Transform SDLC
Automated Deployment in Support of Continuous Integration to Transform SDLCAutomated Deployment in Support of Continuous Integration to Transform SDLC
Automated Deployment in Support of Continuous Integration to Transform SDLCDerek Chang
 

En vedette (20)

Vetting ideas
Vetting ideasVetting ideas
Vetting ideas
 
10 Steps to Product/Market Fit
10 Steps to Product/Market Fit10 Steps to Product/Market Fit
10 Steps to Product/Market Fit
 
Building a Lean Startup
Building a Lean StartupBuilding a Lean Startup
Building a Lean Startup
 
Business plan vs Lean Canvas
Business plan vs Lean CanvasBusiness plan vs Lean Canvas
Business plan vs Lean Canvas
 
Pirate Metrics 2.0 - AARRR
Pirate Metrics 2.0 - AARRRPirate Metrics 2.0 - AARRR
Pirate Metrics 2.0 - AARRR
 
10 steps to product/market fit
10 steps to product/market fit10 steps to product/market fit
10 steps to product/market fit
 
Aesop's garden presentation
Aesop's garden presentationAesop's garden presentation
Aesop's garden presentation
 
Continuous Deployment - Lean LA
Continuous Deployment - Lean LAContinuous Deployment - Lean LA
Continuous Deployment - Lean LA
 
Actionable metrics
Actionable metricsActionable metrics
Actionable metrics
 
Lean Canvas Slideshow
Lean Canvas SlideshowLean Canvas Slideshow
Lean Canvas Slideshow
 
How We Build Features
How We Build FeaturesHow We Build Features
How We Build Features
 
Running Lean - Dallas
Running Lean - DallasRunning Lean - Dallas
Running Lean - Dallas
 
What Is A Lean Startup?
What Is A Lean Startup?What Is A Lean Startup?
What Is A Lean Startup?
 
Transitioning to-lean-at-infochimps
Transitioning to-lean-at-infochimpsTransitioning to-lean-at-infochimps
Transitioning to-lean-at-infochimps
 
How to Identify a lean startup
How to Identify a lean startupHow to Identify a lean startup
How to Identify a lean startup
 
Running Lean Canvas
Running Lean CanvasRunning Lean Canvas
Running Lean Canvas
 
Ash sxsw
Ash sxswAsh sxsw
Ash sxsw
 
Running lean - YearOneLabs, Montreal
Running lean - YearOneLabs, MontrealRunning lean - YearOneLabs, Montreal
Running lean - YearOneLabs, Montreal
 
Software MTTR: The Path from Continuous Integration to Continuous Delivery
Software MTTR: The Path from Continuous Integration to Continuous DeliverySoftware MTTR: The Path from Continuous Integration to Continuous Delivery
Software MTTR: The Path from Continuous Integration to Continuous Delivery
 
Automated Deployment in Support of Continuous Integration to Transform SDLC
Automated Deployment in Support of Continuous Integration to Transform SDLCAutomated Deployment in Support of Continuous Integration to Transform SDLC
Automated Deployment in Support of Continuous Integration to Transform SDLC
 

Similaire à Continuous Deployment: Startup Lessons Learned

Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionProduct Marketing Services
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryJohn Ferguson Smart Limited
 
Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3Alex Tregubov
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approachMichael Kopp
 
Continuous delivery chernivcy
Continuous delivery chernivcyContinuous delivery chernivcy
Continuous delivery chernivcyVolodymyr Yelchev
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to realityClément Escoffier
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedSandy Mamoli
 
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011Marko Taipale
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consultTomas Riha
 
Release Management for Large Enterprises
Release Management for Large EnterprisesRelease Management for Large Enterprises
Release Management for Large EnterprisesSalesforce Developers
 
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliveryDon't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliverySolano Labs
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA
 
Testing in an Open Source Middleware Platform Space The WSO2 Way.
Testing in an Open Source Middleware Platform Space  The WSO2 Way.Testing in an Open Source Middleware Platform Space  The WSO2 Way.
Testing in an Open Source Middleware Platform Space The WSO2 Way.WSO2
 
Continuous Testing in the Agile Age
Continuous Testing in the Agile AgeContinuous Testing in the Agile Age
Continuous Testing in the Agile AgeBlazeMeter
 
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_stAgile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_stNish Mahanty
 
Faster apps. faster time to market. faster mean time to repair
Faster apps. faster time to market. faster mean time to repairFaster apps. faster time to market. faster mean time to repair
Faster apps. faster time to market. faster mean time to repairCompuware ASEAN
 
BizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at ScaleBizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at ScaleQASymphony
 

Similaire à Continuous Deployment: Startup Lessons Learned (20)

Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
 
Continuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous DeliveryContinuous Integration, Continuous Quality, Continuous Delivery
Continuous Integration, Continuous Quality, Continuous Delivery
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
 
Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3Continuous delivery continuous integration 0.3
Continuous delivery continuous integration 0.3
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approach
 
Continuous delivery chernivcy
Continuous delivery chernivcyContinuous delivery chernivcy
Continuous delivery chernivcy
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
 
Flexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts ExplainedFlexing your Agile Muscle - Agile Technical Concepts Explained
Flexing your Agile Muscle - Agile Technical Concepts Explained
 
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
Continuous Deployment – Nextdoor.fi released every day at Scan-Agile 2011
 
Pycon India 12
Pycon India 12Pycon India 12
Pycon India 12
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 
Release Management for Large Enterprises
Release Management for Large EnterprisesRelease Management for Large Enterprises
Release Management for Large Enterprises
 
Don't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous deliveryDon't hate, automate. lessons learned from implementing continuous delivery
Don't hate, automate. lessons learned from implementing continuous delivery
 
SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612SOASTA Webinar: Process Compression For Mobile App Dev 120612
SOASTA Webinar: Process Compression For Mobile App Dev 120612
 
Testing in an Open Source Middleware Platform Space The WSO2 Way.
Testing in an Open Source Middleware Platform Space  The WSO2 Way.Testing in an Open Source Middleware Platform Space  The WSO2 Way.
Testing in an Open Source Middleware Platform Space The WSO2 Way.
 
Continuous Testing in the Agile Age
Continuous Testing in the Agile AgeContinuous Testing in the Agile Age
Continuous Testing in the Agile Age
 
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_stAgile Australia Conference 2011 - Devops live accounts- continuous delivery_st
Agile Australia Conference 2011 - Devops live accounts- continuous delivery_st
 
Faster apps. faster time to market. faster mean time to repair
Faster apps. faster time to market. faster mean time to repairFaster apps. faster time to market. faster mean time to repair
Faster apps. faster time to market. faster mean time to repair
 
BizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at ScaleBizDevOps – Delivering Business Value Quickly at Scale
BizDevOps – Delivering Business Value Quickly at Scale
 

Dernier

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Dernier (20)

FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

Continuous Deployment: Startup Lessons Learned

Notes de l'éditeur

  1. Hi - I am Ash with WiredReach and I&apos;m going to be presenting a case-study on how I transitioned from a traditional development process to continuous deployment. Just to get a sense of who is in the room, How many people here know what Continuous Deployment is? And how many people practice Continuous Deployment today?
  2. If I were to ask you &amp;#x201C;How do you maximize progress in a lean startup?&amp;#x201D;, most of you would probably say:
  3. By maximizing learning about customers. We are in a conference about Lean Startups after all.
  4. So lets take a look at where in the development process we learn about customers. Some of this learning happens during the requirements stage in the form of customer discovery when we&amp;#x2019;re out talking to customers and figuring and out what to build. But most of this learning happens only after we get the product into customers&amp;#x2019; hands in the form of customer validation. There is very little learning during development and QA. Sure we learn about other things, just not about customers.
  5. So lets take a look at where in the development process we learn about customers. Some of this learning happens during the requirements stage in the form of customer discovery when we&amp;#x2019;re out talking to customers and figuring and out what to build. But most of this learning happens only after we get the product into customers&amp;#x2019; hands in the form of customer validation. There is very little learning during development and QA. Sure we learn about other things, just not about customers.
  6. So lets take a look at where in the development process we learn about customers. Some of this learning happens during the requirements stage in the form of customer discovery when we&amp;#x2019;re out talking to customers and figuring and out what to build. But most of this learning happens only after we get the product into customers&amp;#x2019; hands in the form of customer validation. There is very little learning during development and QA. Sure we learn about other things, just not about customers.
  7. Even though building a product is the purpose of a startup, you could say that Product Development actually gets in the way of learning about customers.
  8. While we obviously can&amp;#x2019;t eliminate development and QA, we can shorten the cycle time from requirements to release so we can get to the learning parts faster. That is exactly what Continuous Deployment does. Continuous Deployment shortens the cycle time it takes to build, test, and deploy features. Shorter cycle times mean we get feedback faster and learn faster.
  9. While we obviously can&amp;#x2019;t eliminate development and QA, we can shorten the cycle time from requirements to release so we can get to the learning parts faster. That is exactly what Continuous Deployment does. Continuous Deployment shortens the cycle time it takes to build, test, and deploy features. Shorter cycle times mean we get feedback faster and learn faster.
  10. While we obviously can&amp;#x2019;t eliminate development and QA, we can shorten the cycle time from requirements to release so we can get to the learning parts faster. That is exactly what Continuous Deployment does. Continuous Deployment shortens the cycle time it takes to build, test, and deploy features. Shorter cycle times mean we get feedback faster and learn faster.
  11. While we obviously can&amp;#x2019;t eliminate development and QA, we can shorten the cycle time from requirements to release so we can get to the learning parts faster. That is exactly what Continuous Deployment does. Continuous Deployment shortens the cycle time it takes to build, test, and deploy features. Shorter cycle times mean we get feedback faster and learn faster.
  12. Here&amp;#x2019;s an overview of what I&amp;#x2019;ll be talking about today. I&amp;#x2019;ll describe what my development process looked like before and after continuous deployment. I&amp;#x2019;ll talk about how I got started and how I build features now.
  13. Here&amp;#x2019;s some background on WiredReach and the type of products we build. We&amp;#x2019;ve been in business for 7 years and have launched 2 products - BoxCloud and CloudFire. The first product BoxCloud was built using a release early, release often methodology while CloudFire was built using Lean Startup techniques. Both products are hybrid web/desktop applications. What I mean by that is they have both a web component and a downloaded client component which runs on mac and windows.
  14. So, before Continuous Deployment, we used to release on a 2 week cycle which is fairly fast by most standards. We used to spend about a week in development and then QA tested for another 2-3 days before we deployed to customers. Now we release multiple times a day.
  15. Before Continuous Deployment, we had a common staging area that mirrored production. This is what we used for development and QA. It worked fine in the early days but as we grew, coordinating around a single staging area became a problem. Now we build complete standalone sandboxes for development and QA. Each developer has the complete system on their workstation which gives them a lot more freedom to experiment. Each QA machine also runs on a standalone sandbox which makes it easier for us to do isolated testing as well as scale the testing infrastructure horizontally.
  16. Before Continuous Deployment, releases were all day events. We would do a code freeze typically on a Thursday and spend most of Friday building, testing and packaging a release. Now a release is triggered automatically every time we commit code. The system is run against a battery of tests and only deployed into production if it passes all the tests. We constantly monitor the production environment and can tell good changes from bad changes quickly and revert a release if we need to. Our release process currently takes about 20 minutes.
  17. Before Continuous Deployment, the average size of a release was measured in hundreds of lines of code. Now a typical release is under 25 lines of code.
  18. When you are committing 25 lines of code versus hundreds per release, the impact on the system is much more localized. This has led to fewer production emergencies and less firefighting for us.
  19. But most important of all, if you are a technical founder like me, you constantly have to trade-off outside the building activities like customer development against inside the building activities like product development. Before Continuous Deployment, I had to schedule my week for coding days and customer days. Now I can do both in the same day. I schedule my coding in 2 hour blocks usually early in the day. That leaves the rest of the day open for everything else.
  20. So, Continuous Deployment sounds great in theory.
  21. But taking the plunge was still scary. The biggest reason for us was having the feeling of there being no safety net. With a traditional development process, there is a QA cycle before deployment which provides a safety net of time and there is some comfort in sharing testing responsibility with someone else.
  22. But taking more time in QA was not always optimal for us: - despite our best testing efforts, bugs still crept into production - bugs got more expensive and harder to fix the longer we waited - but most important of all, we felt we weren&amp;#x2019;t learning anything about customers during that time The answer isn&amp;#x2019;t taking more time in QA but less through test automation and getting better at detecting and fixing issues in production.
  23. But taking more time in QA was not always optimal for us: - despite our best testing efforts, bugs still crept into production - bugs got more expensive and harder to fix the longer we waited - but most important of all, we felt we weren&amp;#x2019;t learning anything about customers during that time The answer isn&amp;#x2019;t taking more time in QA but less through test automation and getting better at detecting and fixing issues in production.
  24. But taking more time in QA was not always optimal for us: - despite our best testing efforts, bugs still crept into production - bugs got more expensive and harder to fix the longer we waited - but most important of all, we felt we weren&amp;#x2019;t learning anything about customers during that time The answer isn&amp;#x2019;t taking more time in QA but less through test automation and getting better at detecting and fixing issues in production.
  25. But taking more time in QA was not always optimal for us: - despite our best testing efforts, bugs still crept into production - bugs got more expensive and harder to fix the longer we waited - but most important of all, we felt we weren&amp;#x2019;t learning anything about customers during that time The answer isn&amp;#x2019;t taking more time in QA but less through test automation and getting better at detecting and fixing issues in production.
  26. But taking more time in QA was not always optimal for us: - despite our best testing efforts, bugs still crept into production - bugs got more expensive and harder to fix the longer we waited - but most important of all, we felt we weren&amp;#x2019;t learning anything about customers during that time The answer isn&amp;#x2019;t taking more time in QA but less through test automation and getting better at detecting and fixing issues in production.
  27. So lets take a look at how we got started.
  28. The first and most important practice we adopted was fitting releases into small batch sizes. Coding in small batches is the key concept in continuous deployment and can directly be attributed back to shorter cycle times, faster feedback, and a better work flow. For me, a small batch is the output of a 2 hour work block. We can not always build a full feature in 2 hours but we have gotten good at deploying features incrementally. We start with non-user facing changes first, like api updates and database changes, before building user-facing changes. Even deploying these changes early greatly help to lower the integration risk of a feature.
  29. The next thing we did was not try to achieve 100% automation from the start. We kept deploying these small batch releases manually for a while and audited everything we did. This helped us build confidence in the process and overcome some of the initial fear of loosing control. We already had a continuous integration server that ran a large collection of unit tests but once we took out the formal QA step, we found ourselves preferring functional tests over unit tests since they were much better at reflecting what users actually did with the system.
  30. We now have a practice of writing a new functional test with every user facing change, but we didn&amp;#x2019;t start that way. We got started by writing a single test for the user activation flow first. This is the path users take when they first signup, download and interact with our product. If something goes wrong here, nothing else matters after that.
  31. One downside of relying on more functional tests is that they take much longer to run and can drive up the release cycle time. Our goal was to keep the release cycle time under 30 minutes and we were only able to achieve that by distributing the tests across multiple machines. This is where the standalone sandboxes really come in handy. As we add more tests, it is fairly easy for us to add more test boxes and keep the cycle time in check.
  32. Another problem with tests is that over time, they get out of date and start failing. I&amp;#x2019;ve worked in places where developers start ignoring these which is a slippery slope as the problem only keeps getting worse. In Continuous Deployment, these tests are your only line of defense before deploying code, so you have to take failing tests very seriously. We only deploy a release if it passes all the tests. Otherwise, we stop and fix the tests first.
  33. You&amp;#x2019;ll eventually want to build one of these cluster immune systems (just hopefully not that one) that can automatically tell good changes from bad ones and do something about it. But here too, it&amp;#x2019;s important to build it out incrementally. We got started simply monitoring the health of production servers using off-the-shelf tools like ganglia and nagios. Over time we built other application and business level monitoring into it. We did this mostly reactively to production issues. 5Whys.
  34. One of the challenges we faced was adopting continuous deployment for the downloaded client component. Interrupting customers multiple times a day for updates was not an option so we had to build a software update process that updated itself transparently in the background without any user intervention. We also wanted to be able to both push and pull for updates so that we could control how and when we delivered updates. This took some time and experimentation to get right.
  35. Lastly, I want to spend some time talking about how I build features. Continuous Deployment shortens the cycle time it takes to deploy features but how do you make sure you&amp;#x2019;re actually building what customers want and not simply cranking out new features faster. Here are some rules we follow.
  36. Features must be pulled not pushed. If you&amp;#x2019;ve followed a customer discovery process, identified your top 3 problems, and defined a mvp, you do not need to push more features until you have validated your mvp. This doesn&amp;#x2019;t mean you stop development, but most of your time should be spent measuring and improving existing features versus chasing after new problems to solve. From experience, I know this can be a hard rule to enforce and the next rule helps with that.
  37. A good practice for ensuring the 80/20 rule is constraining the features pipeline. This is a common practice from Agile and Kanban, but with the addition of a validated learning state. Here&amp;#x2019;s how it works: Ideally, a new feature must be pulled or tested with more than one customer for it to show up in the backlog. The number of features in-progress is constrained by the number of developers and so is the number of features waiting for validation. This ensures that you cannot deploy a new feature until a previously deployed feature has been validated.
  38. So how do you validate a feature? Unless you have a lot of traffic, quantitative metrics can take some time to collect. For this reason, I prefer to validate a feature qualitatively first. Once a feature goes live, I directly contact customers that expressed interest in that feature and ask them for feedback. It&amp;#x2019;s important not just to test the coolness factor of a feature but that it actually solves a customer problem and more importantly makes or keeps the sale. If I don&amp;#x2019;t get a strong initial signal, I try and figure out why and either improve or kill the feature. We use google website optimizer, KISSmetrics, Mixpanel, and homegrown scripts to collect quantitative data. It&amp;#x2019;s important here too, to focus on the macro and track key metrics over time, like revenue and retention, versus just clicks.
  39. So when is the best time to adopt Continuous Deployment? I believe the ideal time is as early in the product development cycle as possible - when you are small and have a few or even no customers. Continuous Deployment is an incremental process that you have to practice to get really good at. But even adopting simple practices like &amp;#x201C;coding in small batch sizes&amp;#x201D; paid off for us very quickly. The biggest benefit we have derived from Continuous Deployment is the ability to integrate Customer Development with Product Development. The fundamental call to action from Continuous Deployment is to &amp;#x201C;Ship More Frequently&amp;#x201D;. Once you take that first step, what you need to do next becomes clearer. Thank you.