You are on page 1of 28

Training Title

PARTICIPANT’S MANUAL

Lean Software Development

Trainer: Đoàn Đức Đề

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Introductions and Expectations


2

Participant introductions
v Name
v Position and background
v How long experience with Lean Software development?

v What do you want to get out of this course (expectation)?

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 1
Training Title
PARTICIPANT’S MANUAL

Logistics
3

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Rules of Engagement
4

Participate.
One person speaks at any given time.
Keep discussions and questions to the
point.
Turn on your cell phones and other
communication devices to Silence
mode.
Be prompt returning from breaks.
……

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 2
Training Title
PARTICIPANT’S MANUAL

PRINCIPLES AND TOOLS

info@apexglobal.com.vn Author: APEX Learning Content Development Team

A Lean History
6

v Lean is a manufacturing & production practice that


considers the expenditure of resources for any goal other
than the creation of value for the end customer to be
wasteful, and thus a target for elimination.
v "value" is defined as any action or process that a customer
would be willing to pay for.
v Lean is centered around preserving value with less work.
v Lean manufacturing is based on optimizing flow, increasing
efficiency, decreasing waste, and using empirical methods
to decide what matters, rather than uncritically accepting
pre-existing ideas
v Toyota was a leader in implementing lean practices in the
80s

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 3
Training Title
PARTICIPANT’S MANUAL

A Lean History
7

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Lean Software Development


8

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 4
Training Title
PARTICIPANT’S MANUAL

Mary Poppendieck and Tom Poppendieck Hà Nội 2017


9

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Seven Lean Principles


10

Eliminate Waste

Amplify Learning
LEAN PRINCIPLES

Decide as Late as Possible

Deliver as Fast as Possible

Empower the Team

Build Integrity In

See the Whole

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 5
Training Title
PARTICIPANT’S MANUAL

Principle # 1: Eliminate Waste


11

info@apexglobal.com.vn Author: APEX Learning Content Development Team

What is waste?
12

v Anything that doesn’t add value (as perceived by the


customer) to the product
v Unnecessary code or functionality
v Unclear requirements
v Slow internal communications or processes
v Bureaucracy

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 6
Training Title
PARTICIPANT’S MANUAL

Tool #1: Seeing Waste


13

v Agile practices seek to eliminate waste, but the first step is


to learn how to see waste
v Good examples of waste are parts of the software process
that are not analysis and coding - do they really add value
to the customer?
v Shigeo Shingo identified seven types of manufacturing
waste
v Mary and Tom Poppendieck translated these into the
software domain in the following table

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #1: Seeing Waste


14

Learn to see waste


Wastes of Manufacturing Wastes of Software Development

Inventory Partially work done


Extra processing Paperwork or excess documentation
Overproduction Extra features
Transportation Task Switching
Waiting Waiting for the information
Motion Motion
Defects Defects

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 7
Training Title
PARTICIPANT’S MANUAL

Tool #2: Value Stream Mapping


15

v Mapping your value stream is a good way to start


discovering waste in your process
v This involves drawing a chart of the average customer
request, from arrival to completion
v At the bottom, draw a timeline that shows how much time
the request spends in value-adding, waiting, and non-
value-adding activities

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #2: Value Stream Mapping


16

v Reduce management activities such as unnecessary


tracking systems. Minimize tracking by create a smooth
flowing work system
v Rethink Authorization systems. Make “approvals”
unnecessary
v Retrain you brain to see waste. Ask yourself “Why am I
really doing this?”
v Map your value stream to identify inefficiencies

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 8
Training Title
PARTICIPANT’S MANUAL

Principle # 2: Amplify Learning


17

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #3: Feedback


18

v Feedback adds complexity to a system, but it also adds


considerable value
For example, a traffic light that senses cars is more useful
than a traffic light on a strict timer
v The Waterfall development model does not provide much
feedback; it is generally thought of as a single-pass model
v Traditional processes consider feedback loops threatening
because incorporating feedback could modify the
predetermined plan
v Developers should know their immediate and have ways
for that customer to provide feedback

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 9
Training Title
PARTICIPANT’S MANUAL

Tool #3: Feedback


19

v Increasing feedback is the single most effective way to


deal with troubled software projects
Instead of letting defects accumulate, run tests as soon as
the code is written
Instead of adding more documentation or detailed planning,
check out ideas by writing code
Instead of gathering more requirements, show the customer
an assortment of potential users screens and get their input
Instead of studying which tool to use, bring the top three
candidates in-house and test them

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #4: Iterations


20

v Iterations provide a dramatic increase in feedback


The operational environment is considered early
Design problems are exposed early
Change-tolerance is built into the system
v Short iterations allow the system to respond to facts rather
than forecasts
v Iterations are a point of synchronization between the
different teams and the customer
v Iterations force decisions to be made because the system
is deployed early and often

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 10
Training Title
PARTICIPANT’S MANUAL

Tool #5: Synchronization


21

v Build the system every day after a small batch of work has
been completed by each of the developers
v At the end of the day, a build takes place followed by an
automated set of tests
v If the build works and the tests pass, then the developers
have been synchronized
v The more builds, the better because it provides rapid
feedback
v Full system tests should be run as frequently as possible

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #6: Set-Based Development


22

Set-Based Versus Point-Based


v The point-based approach starts with one choice and is
refined until it works, which takes many iterations and
might not converge
v The set-based approach starts by defining everyone's
constraints and then selects a choice that fits into those
constraints
v Set-based development bases communication on
constraints rather than choices which requires significantly
less data to convey far more information
v Talking about constraints allows developers to defer
making choices until the last possible moment

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 11
Training Title
PARTICIPANT’S MANUAL

Tool #6: Set-Based Development


23

Develop Multiple Options


v When you have a difficult problem, develop a set of
solutions, see how they actually work, and merge the best
features of the solutions
v It might seem wasteful to develop multiple solutions, but
set-based development can lead to better solutions faster

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Principle # 3: Decide as Late As Possible


24

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 12
Training Title
PARTICIPANT’S MANUAL

Sequential versus Concurrent


25

Sequential Concurrent
Depth First (Drilling into the Breadth First (seeing things in full
details too fast) view over time)
Order of Creation ( On day 1, We Highest valued features first
created requirements)
Rigid, change is costly Adaptable, change is manageable
Cost escalation is high when Cost escalation is low, as issues are
issues are found late found incrementally
High stakes decisions are made High stakes decisions can be
based on assumptions and with deferred until the last responsible
uncertainly moment

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #7: Options Thinking


26

v People find it difficult to make decisions when there is


uncertainty present
v Delaying Decisions
The underlying economic mechanism for controlling
complexity in just-in-time systems is minimizing irreversible
decisions
This contrasts with other methodologies that manage
complexity by limiting decisions - e.g. "any color as long as
it's black"
Delaying irreversible decisions leads to better decisions,
limits risk, helps manage complexity, reduces waste, and
makes customers happy
However, delaying decisions has a cost, but the overall
system is more profitable and allows the correct decision to
be made
info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 13
Training Title
PARTICIPANT’S MANUAL

Tool #8: The Last Responsible Moment


27

v The last responsible moment is the moment in which failing


to make a decision eliminates an important alternative
v If commitments are delayed beyond this moment then
decisions are made by default, which is generally not a
good approach to making decisions
v This is not be be confused with procrastination; in fact,
delaying decisions is hard work

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #9: Making Decisions


28

Depth-first versus Breadth-first problem solving


v Breadth-first problem solving could be thought of as a
funnel and involves delaying decisions
v Depth-first problem solving could be thought of as a tunnel
and involves making early commitments
v Depth-first is preferred when approaching new problems
because it tends to quickly reduce the complexity of the
problems
v If there is an expert to make early decisions correctly and
an assurance that there will not be changes that render the
decisions obsolete, then depth-first is more effective.
Otherwise, breadth-first will lead to better results

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 14
Training Title
PARTICIPANT’S MANUAL

Principle # 4: Deliver as Fast as Possible


29

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #10: Pull Systems


30

v For rapid delivery to happen, it must be clear to every


person what he/she should do to make the most effective
contribution to the business
v There are two ways to ensure that workers are productive:
tell them what to do or set things up so they can figure it
out for themselves
v In fast-moving situations, it is more effective to let the
workers task themselves

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 15
Training Title
PARTICIPANT’S MANUAL

Tool #11: Queuing Theory


31

Reduce Cycle Time


v Queuing theory strives to make your wait as short as
possible
v The fundamental measurement of a queue is cycle time -
the average time it takes something to get from the
beginning of a process to the end
v The time spent waiting in the queue is wasted time
v There are two ways to reduce cycle time - look at the way
work arrives or look at the way the work is processed
v One way to control the rate of work arrival is to release
small packages of work so that the queue is smaller

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #11: Queuing Theory


32

v Once variability has been removed from the arriving work,


the next step is to remove the variability in the processing
time
v Small work packages allow parallel processing of the small
jobs by multiple teams so that if one team is stalled by a
problem, the rest of the project can proceed without delay
v Software organizations, like highways, cannot function at
full capacity
v Having slack in an organization gives the capacity to
change, reinvent itself, and marshal resources for growth

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 16
Training Title
PARTICIPANT’S MANUAL

Tool #12: Cost of Delay


33

v Often, software teams are told that they must meet cost,
feature, and date objections simultaneously. This sends
two messages:
Support costs are not important because they were not
mentioned
When something has to give, make your own trade-offs
v Instead, give the team an economic model which will
empower the members to figure out for themselves what is
important for business
v Trade-off decisions are easiest to make when they are
expressed in the same units
v Economic models justify the cost of reducing cycle time,
eliminate bottlenecks, and purchasing tools

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Principle # 5: Empowering the Team


34

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 17
Training Title
PARTICIPANT’S MANUAL

Tool #13: Self-Determination


35

v Transfer practices from one environment to another is


often an mistake
v Let the team design their own working procedures
v Remember Management’s role is coach, train, and assist
the teams
v It is key to understand the fundamentals principals that
make up practices, and transform those principles into new
practices
v Managers need to improve as much as individual workers.
A feedback loop is critical going both ways between
managers and workers to drive improvement

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #14: Motivation


36

Create a sense of purpose at work. People care about a


purpose greater then themselves
v It must be clear
v It must be achievable
v The team must have access to customers
v Let the team make it’s own commitments
v Management’s role is to provide support, resources,
guidance, and protection

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 18
Training Title
PARTICIPANT’S MANUAL

Tool #15: Leadership


37

Respected Leaders
v Nearly every major product development is spearheaded
by a champion who is excited and passionate about their
work
v They probably wrote the product concept, recruited the
team, interpret the vision for the team, and set the pace for
development
Master Developers
v Exceptional developers exercise leadership through
superior knowledge instead of bestowed authority
v It is not essential to identify a master developer at the
beginning of every project as more often than not they will
emerge as a result of their technical prowess

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #15: Leadership


38
Where do master developers come from?
v They grow into their role through extensive experience in the
technology being employed or the domain being addressed by
the system
v They also possess exceptional abstraction and communication
skills
Project Management
v Often the project manager does not have a technical
background and is not responsible for developing a deep
technical understanding of the product
v They focus on identifying waste, coordinate iteration planning
meetings, help team acquire resources, coordinate/ synchronize
multiple teams, and provide a motivating environment (among
many other things)

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 19
Training Title
PARTICIPANT’S MANUAL

Tool #16: Expertise


39
Share Expertise
v Promote mentorship and pair programming
v Create communities of expertise
Identify the technical and domain specific competencies that
are critical to an organization's success
Within these communities create forums for knowledge
sharing; monthly meetings, newsletters, guest speakers, etc.
Enforce Standards
v Naming standards, coding standards, language standards,
check in/out standards, build standards
v Develop standards and practice them
v Lack of standards leads to sloppy work
v Standards develop through experimentation and knowledge
sharing
info@apexglobal.com.vn Author: APEX Learning Content Development Team

Principle # 6: Build Integrity In


40

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 20
Training Title
PARTICIPANT’S MANUAL

Tool #17: Perceived Integrity


41
Focus on keeping customer values at the forefront
v Engineers have a tendency to get lost in the details and lose
track of customer values
v To prevent this, visions of perceived integrity should be
refreshed regularly through customer feedback or access to
groups of users who can judge the system's integrity
Model Driven Design
v Construct domain models such that software implementation
can flow directly from these models
v These models must be understood and directly usable by the
customers and developers
v The models should express all the business rules, business
processes, and domain related issues using ubiquitous
language that can be understood by everyone
info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #17: Perceived Integrity


42

Recommended collection of Models


v Conceptual Domain Model: Class model of the basic
entities of the system
v Glossary: Defines terms found in domain model and
ensures consistent language for the team
v Use Case Model: A dynamic view of the system that
captures customers goals for interacting with the domain
model and details their expected workflow
v Qualifiers: Details the the qualifiers that might be applied to
the basic functionality of the system such as number of
users, acceptable response time, required availability,
projections for growth, etc

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 21
Training Title
PARTICIPANT’S MANUAL

Tool #18: Conceptual Integrity


43

Measured by how well a system's components work


together as a smooth, cohesive whole
v Components match/work well together
v The architecture allows for a balance between flexibility,
maintainability, efficiency, and responsiveness
Effective communication is key to achieving conceptual
integrity
Reuse existing solutions
v If something has been proven to solve a problem in the
past and you can make use of it, do it
v This helps to remove degrees of freedom in the
development process, reduces the complexity and need for
communication
info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #18: Conceptual Integrity


44

Employ integrated problem solving practices


v Understand and store the problem simultaneously
v Release preliminary data early and don't wait for the
complete answer
v Information is released in small batches
v Information flows in two directions
v The preferred method of communication is face-to-face

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 22
Training Title
PARTICIPANT’S MANUAL

Tool #18: Conceptual Integrity


45

Without integrated problem solving


v Designers make decisions in isolation and send a large
amount of information to those who must make decisions
causing a "throw it at the wall approach"
With integrated problem solving
v Frequent bilateral communication occurs which produces
necessary feedback

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #19: Refactoring


46

Complex systems have effects that aren't fully


understood at design time
Architecture must remain healthy as the system evolves
v New features are always being requested by users
v Features can always be added separately; often new
features are related and redesigning architecture of system
to support feature set is the best decision
v Resist the urge of adding features in a brute force
approach and instead adjust the architecture so that
system integrity does not degrade

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 23
Training Title
PARTICIPANT’S MANUAL

Tool #19: Refactoring


47

Maintaining conceptual integrity


v Simplicity
A simple design is nearly always the best design
Experienced developers know how to simplify complex
designs
v Clarity
Code must be easy to understand
Everything should be clearly named and naming conventions
and practices should be upheld

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #19: Refactoring


48

Maintaining conceptual integrity


v Suitability for use
Every design must accomplish intended purpose
v No repetition
Repetition should never exist, this is a sign of bad design
v No extra features
When Code is no longer needed, get rid of it

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 24
Training Title
PARTICIPANT’S MANUAL

Tool #19: Refactoring


49

Does refactoring slow down productivity?


v Conventional wisdom suggests that the overhead
associated with refactoring would slow down the team - the
opposite turns out to be true
v By spending time making sure code does not get out of
hand you make further development much easier and
more efficient

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #20: Testing


50

v Testing proves that design intent is achieved and that the


system does what customers want it to do
Whenever developers write code, tests should exist to
ensure that the features being developed work as intended
v When developers write code he/she should get immediate
feedback about whether or not it works as intended from
the existing test code
v Tests should be automated as much as possible and run
as part of the daily build
v Tests that cannot be automated or take too long to be run
daily have much less value than those that can be run
frequently

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 25
Training Title
PARTICIPANT’S MANUAL

Tool #20: Testing


51

Types of tests
v Unit tests (single component), integration tests (multiple
components) and system tests (the entire system)
v Developer tests (tests that ensure code does what
developer intended) and acceptance tests (also known as
customer tests these tests ensure that the system
functions how the customer expects)

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #20: Testing


52

Roles of tests in development life cycle


v Communicate how things are supposed to work
v Provide feedback on whether or not the system actually
works how it is supposed to
v Provide the scaffolding for developers to make changes
through the development process
v After development tests provide a an accurate
representation of how the system was actually built

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 26
Training Title
PARTICIPANT’S MANUAL

Principle # 7: See the Whole


53

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #21: Measurements


54

v Measurements are important for tracking the progress


of software development
Example: defect counts are important for gauging
software readiness
v People will increase their performance in areas that are
measured
v Measurements should motivate the team to collaborate
and find better ways to do things

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 27
Training Title
PARTICIPANT’S MANUAL

Tool #22: Contracts


55

v A common misconception is that agile development cannot


be used in the context contract work in which each firm is
expected to look out for itself
v To make it work, we need to change our idea of a contract
being method of keeping two parties from taking
advantage of each other into something that supports
collaboration
v In most cases this means being flexible with regards to
scope

info@apexglobal.com.vn Author: APEX Learning Content Development Team

Tool #22: Contracts


56

Incorporating Lean Development into different types of


contracts
v Fixed-Price Contracts
v Time-and-Materials Contracts
v Multistage Contracts
v Target-Cost Contracts
v Target-Schedule Contracts
v Share-Benefit Contacts

info@apexglobal.com.vn Author: APEX Learning Content Development Team

©2017 Apex Global


No part of this material shall be reproduced, stored in a retrieval system, or transmitted by any means without written permission from author 28

You might also like