Павел Чуняев - State of Continuous Delivery in 2015
-
Upload
itspringby -
Category
Leadership & Management
-
view
36 -
download
0
Transcript of Павел Чуняев - State of Continuous Delivery in 2015
Our common goal
• Give customer what they want• When they want• At the lowest costs possible
• Quickly, cheaply and reliably implement ideas for customers and receive feedback.
One in six IT projects have an average cost overrun of 200% and a schedule overrun of 70%. (Harvard Business Review, 2011)
75% of business and IT executives anticipate their software projects will fail. (Geneca, 2011)
Fewer than a third of all projects were successfully completed on time and on budget over the past year. (Standish Group, 2013)
Last mile problem
• Streamlined value delivery from left to right• We need to remove the wall of separation between development/QA
and Production.
OperateLast mile
Our highest priority is to satisfy the customer through early and
continuous delivery of valuable software.
The Agile Manifesto
Continuous Delivery overview
Inception
•Business idea•Needed immediately•Should generate money
Plan
•Create user stories•Prioritize•Refined•Estimated
Develop
•Scrum sprints•Create branch•Develop•Code review
Integrate
•Commit•Trigger pipeline•Build•Unit testing•Integration testing
Testing
•Journey across environments
•Acceptance•Capacity•Security•Manual/exploratory
Release
•Automated•Push-button•Zero-downtime•Canary
Operate
•Monitoring•Validation•Money generation•Disposal
Principles of CD
• Create repeatable and reliable process for releasing software• Keep everything in the source control• Automate (almost) everything• Build quality in• Redefine ‘Done’ to mean released• Make everybody responsible for the release process• Implement continuous improvements
Principles of CD
• Create repeatable and reliable process for releasing software• Keep everything in the source control• Automate (almost) everything• Build quality in• Redefine ‘Done’ to mean released• Make everybody responsible for the release process• Implement continuous improvements
Continuous Delivery vs Continuous Deployment
• Possibility to aggregate changes in preproduction
• Possibility to deploy every change/commit
How long would it take your organization to deploy a change that involves just one single line of code?
How to start?
• Agile development• Continuous Integration• Infrastructure automation• Automated testing• Automated deployments• Shared tools and procedures• Shared goals and communication
Conway’s law
Organizations which design systems ... are constrained to produce designs which are copies of the communication structures of these organizations.—Melvin Conway
If the architecture of the system and the architecture of the organization are at odds, the architecture of the organization wins.—Ruth Malan
Process perspective
• Workflow• Each step – repeatable• No defects go further• No local optimizations that degrade overall performance• Increase the flow, analyze and optimize
• Reduce the batch size• Improve at the bottleneck
Inception Plan Develop Integrate Testing Release Operate
Lean software development
• Deliver as fast as possible• Build quality in• Optimize for the whole• Eliminate waste• Amplify learning• Decide as late as possible• Empower the team
Waste
• Inventory (work waiting)• Defects • Handovers• Manual setups• Manual tests• Manual deployments• Slow internal communication
Shorten cycle time
• Waterfall – months• Agile (Iterative development) – weeks• Kanban – days• CD - hours
Lean startup/enterprise
1. Make a guess based on experience and observation.2. Propose an explanation - hypothesis.3. Make a prediction from the hypothesis.4. Test the prediction.
5. Repeat!
Some big shifts happening
• Testing in production• Microservices• Containers/Cloud• Role of QA/System administrator
Key takeaways
• Create repeatable and reliable process for releasing software• Automate (almost) everything• Build quality in• Reduce the batch size• Improve continuously :)
[email protected]@PavelChunyayev
Any questions?