lean software delivery
TRANSCRIPT
![Page 1: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/1.jpg)
Lean Software Delivery
Get lean and mean without being stretched too thing
![Page 2: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/2.jpg)
UrbanCode Inc. ©2013
Lead Consultant & Tech Evangelist
Eric is Lead Consultant at Urbancode where I help customers get the most out of their build, deploy and release processes.
Today he works with customers and industry leaders to figure out this DevOps thing.
Eric [email protected]@EricMinick
![Page 3: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/3.jpg)
UrbanCode Inc. ©2013
Why Lean? Need to do more
Agile: Faster pace of builds & releases More complex architectures Distributed, even global teams
Adding more people unlikely Only solution is to increase efficiency
![Page 4: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/4.jpg)
UrbanCode Inc. ©2013
Lean Software By analogy, inspiration and even direct mapping from
Lean Manufacturing
More focused on principles than practices 7 Lean Principles Complements and underpins Agile and DevOps
Provides a low-risk approach to increasing efficiency
![Page 5: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/5.jpg)
UrbanCode Inc. ©2013
Lean increases efficiency by removing waste
7 Wastes: of Manufacturing
InventoryExtra ProcessingOverproductionTransportationWaitingMotionDefects
7 Wastes: of Software
Partially Done WorkExtra ProcessesExtra FeaturesTask SwitchingWaitingMotionDefects
![Page 6: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/6.jpg)
UrbanCode Inc. ©2013
Wastes: 1 Partially Done Work
Waste: Work you get no value from Risk: Untestable.
Can’t verify you’re on the right track
Commons.wikimedia.org
![Page 7: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/7.jpg)
UrbanCode Inc. ©2013
Wastes: 2 Extra Process
Wastes: Paperwork that nobody really reads is “theater” at best, a complete waste at worst.
What happens if we skip or delay this process? Is any value to the customer lost?
Image: http://upload.wikimedia.org/wikipedia/commons/d/d9/Paperwork_-_by_Tom_Ventura.jpg
![Page 8: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/8.jpg)
UrbanCode Inc. ©2013
Wastes: 3 Extra Features
Waste: All planning, development and testing time was useless. No value was delivered.
Worse: Extra complexity was introduced
Image: http://commons.wikimedia.org/wiki/File:IPhone_3G.png
![Page 9: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/9.jpg)
UrbanCode Inc. ©2013
Wastes: 4 Task Switching
Waste: “Reloading” the information for various concurrent process is expensive when switching between them.
Another useless meeting… now where was I on this?
![Page 10: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/10.jpg)
UrbanCode Inc. ©2013
Wastes: 5 Waiting
Waste: When the project is not moving forward, value is not being delivered.
Waiting tends to generate more task switching as well.
![Page 11: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/11.jpg)
UrbanCode Inc. ©2013
Wastes: 6 Motion
Each hand-off represents a risk due to incomplete knowledge.
Can my developer quickly understand a feature, or does she need to ask someone; who asks someone; who asks someone?
![Page 12: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/12.jpg)
UrbanCode Inc. ©2013
Wastes: 7 Defects
Severity of Defect * Time undetected
![Page 13: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/13.jpg)
UrbanCode Inc. ©2013
In Short
Build the right thing
Deliver it promptly
![Page 14: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/14.jpg)
UrbanCode Inc. ©2013
In Short
Build the right thing
Deliver it promptly
Execute Efficiently
![Page 15: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/15.jpg)
UrbanCode Inc. ©2013
In Short
Build the right thing
Deliver it promptly
Execute Efficiently
Agile focuses here
DevOps focuses here
![Page 16: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/16.jpg)
UrbanCode Inc. ©2013
In Short
Build the right thing
Deliver it promptly
Execute Efficiently
Agile focuses here
DevOps focuses here
DevOps also helps with feedback
![Page 17: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/17.jpg)
UrbanCode Inc. ©2013
Build the right thing: Strategy by situation When requirements are well understood
Document them well
When big picture is understood but details are shaky Tight customer collaboration Rapidly deliver to QA and user acceptance for validation
When big picture of the app is shaky Use ‘Lean Startup’ approach of Minimum Viable Product
• Get something in front of customers quickly and measure
![Page 18: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/18.jpg)
UrbanCode Inc. ©2013
Should I support ‘Log-in with Facebook’?
![Page 19: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/19.jpg)
UrbanCode Inc. ©2013
Should I support ‘Log-in with Facebook’?
![Page 20: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/20.jpg)
UrbanCode Inc. ©2013
Should I support ‘Log-in with Facebook’?
Pro: Lower sign-up barrier to entry. More customers!Con: My company is B2B. Maybe Facebook is too personal
1) Acknowledge uncertainty
![Page 21: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/21.jpg)
UrbanCode Inc. ©2013
Should I support ‘Log-in with Facebook’?
Pro: Lower sign-up barrier to entry. More customers!Con: My company is B2B. Maybe Facebook is too personal
2) Establish a Thesis
10% of People who would otherwise ‘bounce’ will attempt to sign up w/ Facebook
![Page 22: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/22.jpg)
UrbanCode Inc. ©2013
Pro: Lower sign-up barrier to entry. More customers!Con: My company is B2B. Maybe Facebook is too personal
3) Test it cheaply. Then decide
10% of People who would otherwise ‘bounce’ will attempt to sign up w/ Facebook
Add button that doesn’t work for X% of visitors. Measure attempted use.
Something went wrong. Try again.
Should I support ‘Log-in with Facebook’?
![Page 23: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/23.jpg)
UrbanCode Inc. ©2013
Experimentation may depend on delivery
Build the right thing
Deliver it promptly
Execute Efficiently
Agile focuses here
DevOps focuses here
DevOps also helps with feedback
![Page 24: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/24.jpg)
UrbanCode Inc. ©2013
Visualize waste with lean techniques
Spaghetti Diagramming shows motion, such as handoffs and the flow of artifacts
between people
Value Stream Mapping shows the temporal division between work being done
(value being added) and waiting (waste)
image credits: http://commons.wikimedia.org/wiki/File:Diagram_spaghetti_kilka_produktow.PNGhttp://www.michaelnygard.com/blog/2008/02/outrunning_your_headlights.html
![Page 25: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/25.jpg)
UrbanCode Inc. ©2013
Example: Sign-off Process
1. PM emails Dev Manager2. Dev Manager emails PM3. PM emails QA Manager4. QA Manager emails PM5. PM emails Operations6. Operations emails PM
![Page 26: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/26.jpg)
UrbanCode Inc. ©2013
Spaghetti diagrams show flow of work
![Page 27: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/27.jpg)
UrbanCode Inc. ©2013
Value stream map shows delays
---3030303030
111111
Waiting Working
150 6
1. PM Dev2. PM Dev3. PM QA4. PM QA5. PM Ops6. PM Ops
![Page 28: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/28.jpg)
UrbanCode Inc. ©2013
Value stream map after process change
------30---3030
1---1---11
Waiting Working
90 4
1. PM Dev2. ----------3. Dev QA4. ----------5. QA Ops6. Ops PM
![Page 29: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/29.jpg)
UrbanCode Inc. ©2013
Lean Software Takeaways
Inspired by Lean Manufacturing
Strong emphasis on removing “waste”
The 7 Wastes of Lean Software Development
Tools for Visualizing Waste
![Page 30: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/30.jpg)
UrbanCode Inc. ©2013
A Lean view of build & deployment
![Page 31: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/31.jpg)
UrbanCode Inc. ©2013
Common Practice: “Dan the Deployer”
1. Pam emails Dan to deploy to the Development environment
2. Dan the Deployer reads the email 3. Dan moves the build artifacts to the Development
environment4. Dan runs the deployment scripts5. Deployment script runs while Dan monitors
progress via the console6. Dan emails Pam to let her know the deployment is
complete7. Pam reads the email
![Page 32: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/32.jpg)
UrbanCode Inc. ©2013
Dan’s Diagram
![Page 33: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/33.jpg)
UrbanCode Inc. ©2013
1. Pam emails2. Dan reads3. Moves artifacts4. Launches script5. Deploy runs6. Dan emails7. Pam reads
---???0?1
1111
1011
Waiting Working
? 16
Delays from Dan
![Page 34: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/34.jpg)
UrbanCode Inc. ©2013
What if Pam could click a button?
http://commons.wikimedia.org/wiki/File:Big_Green_Button.png
![Page 35: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/35.jpg)
UrbanCode Inc. ©2013
1. Pam triggers2. ----------3. Move artifacts4. ---------- 5. Deploy runs6. System emails7. Pam reads
------0---001
1---1---1001
Waiting Working
1 13
Self-service deployment removes delays
![Page 36: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/36.jpg)
UrbanCode Inc. ©2013
Deployment automation story
Offshore testing team needed to request deploys to test environments Due to timezones, average turn-around was 20 hours Giving the offshore team direct access to servers was not
an option
Secure, automated deployments allow self-service Turn around drops to under one hour
Win: 15% more testing gets done. Defects found faster, cheaper to fix, and product ships quicker.
![Page 37: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/37.jpg)
UrbanCode Inc. ©2013
Bug fix & verify cycle
1. Pam commits a feature2. Feature is built by Bob3. Build with new feature is deployed by Dan4. Tom the Tester tests new feature and reports a bug5. Pam fixes the bug6. Bug fix is built7. Build with fix is deployed8. Tom verifies the bug fix
![Page 38: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/38.jpg)
UrbanCode Inc. ©2013
Manual fix & verify spaghetti
![Page 39: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/39.jpg)
UrbanCode Inc. ©2013
Bug fix & verify value stream
7203600240
2880720
3600240
1515
12060151560
Waiting Working
12000 300
1. Feature build2. Build deployed3. Bug reported4. Pam fixes 5. Fix built6. Fix deployed7. Tom verifies
![Page 40: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/40.jpg)
UrbanCode Inc. ©2013
Adding automation
1. Automated builds (CI); that invokes:2. Automated deployments; that invokes:3. Automated regression tests
![Page 41: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/41.jpg)
UrbanCode Inc. ©2013
1515
12060151560
1. Feature build2. Build deployed3. Bug reported4. Pam fixes 5. Fix built6. Fix deployed7. Tom verifies
7203600240
2880720
3600240
Waiting Working
12000 300
Impact of continuous delivery
![Page 42: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/42.jpg)
UrbanCode Inc. ©2013
7203600240
2880720
3600240
1515
12060151560
1. Feature build2. Build deployed3. Bug reported4. Pam fixes 5. Fix built6. Fix deployed7. Tom verifies
Waiting Working
12000 300
Impact of automated testing
![Page 43: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/43.jpg)
UrbanCode Inc. ©2013
1. Feature build2. Build deployed3. Bug reported4. Pam fixes 5. Fix built6. Fix deployed7. Tom verifies
Waiting Working
12000 300
7203600240
2880720
3600240
1515
12060151560
Impact of automated reporting
![Page 44: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/44.jpg)
UrbanCode Inc. ©2013
Bug fix & verify with Enterprise CD
![Page 45: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/45.jpg)
UrbanCode Inc. ©2013
Bug fix & verify value stream with ECD
000
6000
1440
151530151515
120
Waiting Working
1500 225
1. Feature build2. Build deployed3. Bug reported4. Pam fixes 5. Fix built6. Fix deployed7. Tom verifies
![Page 46: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/46.jpg)
UrbanCode Inc. ©2013
CD impact on bug fix & verify cycle
Partially Done WorkExtra Processes: no bug “hot potato”; Tom tests onceExtra FeaturesTask Switching: Pam quickly notified of defectWaiting: no waiting for builds or deploymentsMotion: fewer handoffs; no bug report adminstriviaDefects: more time testing, can find additional defects
![Page 47: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/47.jpg)
UrbanCode Inc. ©2013
The impact of automated building & testing
90% rise in LOC output/programmerwhen performing builds at least daily
36% reduction in defect ratewhen integration/regression testing at each code check-in
“Trade-offs between Productivity and Quality in Selecting Software Development Practices”, IEEE Software, Sept-Oct 2003
![Page 48: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/48.jpg)
UrbanCode Inc. ©2013
Think at the system level
Image credit: http://52weeksofux.com/post/694598769/the-local-maximum
![Page 49: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/49.jpg)
UrbanCode Inc. ©2013
Urbancode.com/resources
Continuous Delivery Maturity ModelDeployment Automation BasicsValue of Deployment Automation
Blogs.urbancode.com
Twitter.com/UrbanCode
Facebook.com/IBMUrbanCodeProducts
SlideShare.net/Urbancode
Further Resources
![Page 50: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/50.jpg)
UrbanCode Inc. ©2013
Yes, UrbanCode has tools that help
IBM UrbanCode Deploy Application Release Automation
IBM UrbanCode Release- Release management and release weekend v execution
IBM UrbanCode Build Build automation on an enterprise scale
![Page 51: Lean Software Delivery](https://reader038.vdocuments.us/reader038/viewer/2022102805/554f9152b4c905d25b8b5201/html5/thumbnails/51.jpg)
Slideshare.net/Urbancode@EricMinick
Linked-in group:“Automating Deployment and Release”