cs314 software engineering continuous delivery
play

CS314 Software Engineering Continuous Delivery Dave Matthews How - PDF document

11/15/18 CS314 Software Engineering Continuous Delivery Dave Matthews How long does it take your team to deploy a change that involves a single line of code? And do this on a reliable, repeatable basis? Continuous Delivery: , Jez Humble


  1. 11/15/18 CS314 Software Engineering Continuous Delivery Dave Matthews How long does it take your team to deploy a change that involves a single line of code? And do this on a reliable, repeatable basis? Continuous Delivery: …, Jez Humble and David Farley, 2011 1

  2. 11/15/18 Cycle Time is the key metric • Time from deciding that you need to make a change to having it in production • Years? Months? Weeks? Days? • Some teams achieve a cycle time of hours or minutes Continuous Delivery: …, Jez Humble and David Farley, 2011 Continuous Delivery • Agile - deliver early and continuously. • First release is the just the beginning and contains the minimum amount of functionality • Majority of cost occurs after first release in the form of maintenance, support, new features and defect fixes Continuous Delivery: …, Jez Humble and David Farley, 2011 2

  3. 11/15/18 Continuous Delivery • Build - Deploy - Test - Release • Releases become routine – Ideas rapidly turn into delivered code – Deliver more frequently with less stress • Adds the last mile to Continuous Integration – turn integrated code into production software – more automation, done quickly without error – involves separate Dev Ops teams Continuous Delivery: …, Jez Humble and David Farley, 2011 Continuous Delivery Principles • Create a repeatable, reliable process for releasing software • Automate almost everything • Keep everything in version control • If it hurts, do it more frequently, and bring the pain forward • Build quality in • Done means released • Everybody is responsible for the delivery process • Continuous Improvement 3

  4. 11/15/18 Deployment Pipeline • Every change creates a new instance of the pipeline. • Every change is a release candidate. • Done means released. • No alpha - beta- ... - gold Continuous Delivery: …, Jez Humble and David Farley, 2011 Configuration Management • Keep absolutely everything in version control • Check in regularly to master • Use meaningful commit messages • Manage external libraries • Manage components • Manage application configuration • Manage your environments Continuous Delivery: …, Jez Humble and David Farley, 2011 4

  5. 11/15/18 Testing Strategy Continuous Delivery: …, Jez Humble and David Farley, 2011 Continuous Integration • Don't check in on a broken build • Always run all commit tests locally before committing, or get your CI server to do it for you • Wait for commit tests to pass before moving on • Never go home on a broken build • Always be prepared to revert to the previous version • Time box fixing before reverting • Don ’ t comment out failing tests • Take responsibility for all breakages resulting from your changes • Test-Driven Development Continuous Delivery: …, Jez Humble and David Farley, 2011 5

  6. 11/15/18 Continuous Improvement • Optimize the whole process, not just the parts – Configuration Management – Automated Testing – Continuous Integration and Deployment – Data Management – Environment Management – Release Management • Increase feedback and improve collaboration between development, testing, and dev ops teams Continuous Delivery: …, Jez Humble and David Farley, 2011 Other Metrics as Diagnostics • Automated test coverage • Codebase properties - complexity, duplication, coupling, … • Number of defects • Velocity • Number of commits, builds, build failures per day • Duration of builds, automated tests Continuous Delivery: …, Jez Humble and David Farley, 2011 6

  7. 11/15/18 Theory of Constraints • Identify the limiting constraint in your process (bottleneck) • Exploit the constraint (maximize the throughput for that part of the process - 100% utilization) • Subordinate all other processes to the constraint (less emphasis on other parts of the process) • Elevate the constraint (increase resources, investment) • Find the next constraint and repeat Continuous Delivery: …, Jez Humble and David Farley, 2011 7

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend