Lean Based Sofware Development

25
LEAN BASED SOFWARE DEVELOPMENT Semen Cirit @semencirit 2016

Transcript of Lean Based Sofware Development

Page 1: Lean Based Sofware Development

LEAN BASED SOFWARE

DEVELOPMENT

Semen Cirit

@semencirit

2016

Page 2: Lean Based Sofware Development

What is Lean?

• Maximize customer value while minimizing waste.

• Continiously increasing customer value.

• The ultimate goal is to provide perfect value to the

customer through a perfect value creation process that

has zero waste.

Page 3: Lean Based Sofware Development

Lean Thinking

• Optimizing the flow of products and services through

entire value streams

• Eliminating waste along entire value streams, instead

of at isolated points

• Creates processes that need less human effort, less

space, and less time to make products and services at

far less costs and with much fewer defects, compared

with traditional business systems.

• Companies are able to respond to changing customer

desires with high variety, high quality, low cost, and

with very fast throughput times.

Page 4: Lean Based Sofware Development
Page 5: Lean Based Sofware Development

Lean Principles

Page 6: Lean Based Sofware Development

Lead Time and Cycle Time

• Lead Time:

– Time between request to delivery

– This is what the customer sees!

• Cycle Time:

– Time between production start to completion

– Not visible to customer

Page 7: Lean Based Sofware Development

Takt Time

• Calculated as the available production time divided by customer

demand.

• The purpose of takt time is to precisely match production with

demand.

• If customers want two new products per month, takt time is two

weeks.

Page 8: Lean Based Sofware Development

Value Stream for Cola Cans

Page 9: Lean Based Sofware Development

Software Development Value Stream

Page 10: Lean Based Sofware Development

Agile Value Stream Map

Page 11: Lean Based Sofware Development

Wastes in Lean

Page 12: Lean Based Sofware Development

How they manifest?

Page 13: Lean Based Sofware Development
Page 14: Lean Based Sofware Development

Wastes in Software Development

Waste in Manufacturing Waste in Software development

Inventory Partially work done

Extra Processing Extra procceses and meetings

Overproduction Extra not value added features

Transportation Task switching

Waiting Waiting

Motion Unused creativity

Rework Defects

Page 15: Lean Based Sofware Development

7 Principles of Lean Software

Development

Page 16: Lean Based Sofware Development

Optimize the Whole

• Focus on the Entire Value Stream

• From concept to cash.

• From customer request to deployed software.

• Deliver a Complete Product

• Customers don't want software; they want their problems solved.

• Think Long Term

Page 17: Lean Based Sofware Development

Eliminate Waste

• Waste is anything that does not add customer value.

• Building the Wrong Thing – That customer does not want

• Failure to Learn - interfere with the learning that is the essence of

development.

• Thrashing –task switching, long lists of requests, big piles of partly

done work

Page 18: Lean Based Sofware Development

Build Quality In

• Final Verification Should Not Find Defects!

• Primary purpose to find and fix defects as early in the development process as possible.

• Proof your Process with Test-First Development

• Establish confidence in the correctness of the system at any timeduring development, at every level of the system.

• Break Dependencies

• System architecture should support the addition of any feature at any time.

Page 19: Lean Based Sofware Development

Learn Constantly and Fast

• Predictable Performance is Driven by Feedback

• Maintain Options

• Think of code as an experiment – make it change-tolerant.

• Last Responsible Moment

• Learn as much as possible before making irreversible decisions.

• Rapid Delivery, High Quality, and Low Cost are Fully

Compatible

• Queuing Theory Applies to Development, not Just

Servers

• Managing Workflow is a lot easier than Managing

Schedules

Page 20: Lean Based Sofware Development

Keep Getting Better

• Failure is a Learning Opportunity

• Standards Exist to be Challenged and Improved

• Use the Scientific Method

Page 21: Lean Based Sofware Development

Engage Everyone

• Autonomy

• The most effective work groups are semi-autonomous teams with an internal leader with end-to-end responsibility for complete, meaningful tasks.

• Mastery

• Respect for people means providing the challenge, feedback, and environment that enables everyone to become excellent.

• Purpose

• Tie work to value. Only by believing in the purpose of their work will people become engaged in achieving that purpose.

Page 22: Lean Based Sofware Development

What is Kanban?

• Kanban is not an inventory control system; it is a

scheduling system that helps determine what to

produce, when to produce it, and how much to produce.

• In addition, it proved to be an excellent way for

promoting improvements because reducing the number

of kanban in circulation highlighted problem areas.

• Kanban in the context of software development can mean

a visual process management system that tells what to

produce, when to produce it, and how much to produce

inspired by the Toyota Production System and Lean

manufacturing.

Page 23: Lean Based Sofware Development

Kanban for Software

• Visualize the Workflow: Represent the work items and

the workflow on a card wall or electronic board

• Limit Work-in-Progress (WIP): Set agreed upon limits

on how many work items are in progress at a time

• Measure and Manage Flow: Track work items to see if

they are proceeding at a steady, even pace

• Make Process Policies Explicit: Agree upon and post

policies about how work will be handled

• Use Models to Evaluate Improvement Opportunities:

Adapt the process using ideas from Systems Thinking,

Deming, etc

Page 24: Lean Based Sofware Development

Kanban Way / Just in Time(JIT)

• Don’t build features that nobody needs right now

• Don’t write more specs than you can code

• Don’t write more code than you can test

• Don’t test more code than you can deploy

Page 25: Lean Based Sofware Development

Kanban Board