lean software delivery

51
Lean Software Delivery Get lean and mean without being stretched too thing

Upload: ibm-urbancode-products

Post on 11-May-2015

3.255 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Lean Software Delivery

Lean Software Delivery

Get lean and mean without being stretched too thing

Page 2: Lean Software Delivery

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

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

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

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

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

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

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

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

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

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

UrbanCode Inc. ©2013

Wastes: 7 Defects

Severity of Defect * Time undetected

Page 13: Lean Software Delivery

UrbanCode Inc. ©2013

In Short

Build the right thing

Deliver it promptly

Page 14: Lean Software Delivery

UrbanCode Inc. ©2013

In Short

Build the right thing

Deliver it promptly

Execute Efficiently

Page 15: Lean Software Delivery

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

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

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

UrbanCode Inc. ©2013

Should I support ‘Log-in with Facebook’?

Page 19: Lean Software Delivery

UrbanCode Inc. ©2013

Should I support ‘Log-in with Facebook’?

Page 20: Lean Software Delivery

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

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

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

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

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

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

UrbanCode Inc. ©2013

Spaghetti diagrams show flow of work

Page 27: Lean Software Delivery

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

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

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

UrbanCode Inc. ©2013

A Lean view of build & deployment

Page 31: Lean Software Delivery

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

UrbanCode Inc. ©2013

Dan’s Diagram

Page 33: Lean Software Delivery

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

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

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

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

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

UrbanCode Inc. ©2013

Manual fix & verify spaghetti

Page 39: Lean Software Delivery

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

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

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

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

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

UrbanCode Inc. ©2013

Bug fix & verify with Enterprise CD

Page 45: Lean Software Delivery

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

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

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

UrbanCode Inc. ©2013

Think at the system level

Image credit: http://52weeksofux.com/post/694598769/the-local-maximum

Page 49: Lean Software Delivery

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 51: Lean Software Delivery

Q&[email protected]

Slideshare.net/Urbancode@EricMinick

Linked-in group:“Automating Deployment and Release”