Continuous Delivery
from the Trenches
By @leenasn
Agenda
● Tale of two customers
● Overview of the Process
● Our learnings
Story 1
http://www.multunus.com/portfolio/micro-loan-processing-platform/
Originator & Underwriter
http://www.multunus.com/portfolio/micro-loan-processing-platform/
Loan Processing
http://www.multunus.com/portfolio/micro-loan-processing-platform/
Payment Processing
Manual + Some Automation
http://www.multunus.com/portfolio/micro-loan-processing-platform/
First release of the
product
- Close to 4 million
worth of loans till
date
- An average of 4 loan
officers
http://www.multunus.com/portfolio/micro-loan-processing-platform/
Passive monitoring and alerting
http://www.multunus.com/portfolio/micro-loan-processing-platform/
Originator - Work in Progress
Story 2
http://www.multunus.com/portfolio/end-end-mobile-device-management-solution-health-media-enterprise/
http://www.multunus.com/portfolio/end-end-mobile-device-management-solution-health-media-enterprise/
http://www.multunus.com/portfolio/end-end-mobile-device-management-solution-health-media-enterprise/
http://www.multunus.com/portfolio/end-end-mobile-device-management-solution-health-media-enterprise/
Stats
Released to 1 clinic Automated the Device
Setup
Extended to Linux
Media Players
How?
Team
● 1-3 pair of programmers
● One Product Manager
● One Business Analysts/Tester
● Works closely with the business team
● Every commit gets deployed to staging
● Production updates multiple times a week
● Gradual rollout for major features
● Weekly production pushes for Android Apps
● Slowly moving to a Continuous Deployment for Webapps
Continuous Delivery
“Continuous Delivery is a software development discipline where
you build software in such a way that the software can be
released to production at any time.”
http://martinfowler.com/bliki/ContinuousDelivery.html
Focus on Delivering Business
Value
Team understanding the users
Software development is a
human activity
Two pillars
● Respect for people
● Continuous Improvement
Technical Practices
Continuous Integration
“Continuous integration (CI) is the practice, in software
engineering, of merging all developer working copies to a shared
mainline several times a day.”
Mainline Development
Feature Toggles
Test Driven Development
Automated Deployments
Deployment Pipeline
Non-Technical Practices
Collaboration, Communication
Pairing
Timeboxing instead of
Estimating
http://www.multunus.com/blog/2013/04/estimating-to-timeboxing-our-journey/
User in User stories
Retrospectives and Cause
Effect Analysis
Quick overview of Tools
CI/CD
Continuous Integration a
Dollar A Day
Courtesy: James Shore
Monitoring
Deployment
https://github.com/multunus/chef-repo
Static Analysis
Communication
Challenges
Speed vs Quality
Resiliency
http://www.multunus.com/blog/2014/08/production-outages-part-2/
The “managers”
Absence Blindness
How long?
http://www.multunus.com/blog/2013/04/estimating-to-timeboxing-our-journey/
Summary
Done = Released
Work in small batches
http://cnmnewz.com/wp-content/uploads/2014/06/Golden-Gate-Bridge-with-Net-AP.jpg
Quick overview
@leenasn / leena.sn@multunus.com
Office hours http://bit.ly/leena-officehours
Playbook http://bit.ly/our-playbook
References

Continuous delivery from the trenches