You are on page 1of 18

AGILE SOFTWARE

DEVELOPMENT
LECTURE # 5(b)
Instructor: Anam Ashraf
 A process designed to eliminate waste, amplify
learning, make decisions late, fast delivery,
empowered teams, product integrity and an fully
understood system.
LEAN  It comes from Toyota Production System.
SOFTWARE
 It is a set of principles and toolset.
DEVELOPMENT
 It promise to achieve quality, speed, customer
alignment
7-Principles of LEAN

See the
Build Whole

Empower Integrity
the Team In
Deliver as
Decide as Fast as
Late as possible
Amplify
Learning possible
Eliminate
Waste
Waste Amplify Decide as late Deliver as fast as
Learning as Possible Possible
Anything that
doesn’t add value
to product Developing
Software
Everyone like
software is about
learning Development is rapid delivery
Software about uncertainty
Development
Wastes:
• Partially done Software Design is Rapid delivery
a problem solving There are many = customer see
work Extra process answer to one
Processes question is it what they
Extra Features asked for first
Task
Switching Short iteration Let customer see the
Waiting speed up the product fast, let
Motion learning process them
Defect decide it, the answer
Management will come back later
Activities

You can’t predict


the future! Keep the
flexibility
Empower the Team Built Integrity In See the Whole

Find good people and let Perceive Integrity Software Product != sum of
them do their job •Customer experience with a its part
system

People are not resource, they Conceptual Integrity Think about affected areas
need motivation •Flexibility when fix defects /
•Maintainability add new features
•Efficiency
•Responsiveness

Optimization
• Less Infrastructure
Advantage: • Limited Waste. ...
• Strong Customer Relationships.

• Equipment or Labor Failure


Disadvantage:
• Missed Deliveries.
KANBAN
9

Common problems include:


Short time-boxes give more frequent opportunity to
measure progress and inspect software but force
development items to be smaller

Time-boxed Smaller development items are often too small to be


iterative valuable and difficult to identify
Quality of requirements suffers as analysts rush to
development prepare for upcoming cycles
has challenges Quality of current development suffers when busy
analysts are unable to inspect software or answer
questions during development
Quality often suffers as testers race to complete work
late in the development time-box
10

1. Define a This simple process flow has the steps:


1.elaboration & acceptance criteria
work process 2.development
3.test
flow 4.deployment

 Look at the typical flow for features, stories, or work packages and
describe typical process steps
11

Place an expedite track above


the main left to right queue

2. Lay out a
visual Kanban Place “done and waiting”
board queues between each work
queue (in this example they’re
placed below)

 Place a goals column on the left, then a waiting queue, the


process steps, and a final “done” column to the right
12

3. Decide on This board uses painters tape to


limits for items indicate available “slots” for work in
in queue and progress

work in progress

 A good limit is a factor of the number of people in a role that can work on an
item in a given process step. Start with number of people * 1.5
13

Having goals visible:


•promotes focus
4. Place •helps us prioritize
prioritized goals •helps us manage feature scope &
requirements
on the left column
of the board

 A good goal describes the outcome we hope to achieve after software


ships. Goals help keep focus on the larger outcome.
14

Product owners manage the waiting


queue
5. Start the board
by placing stories
or features in
queue

 Mark on the story or feature card the date it entered the queue. This begins our measurement of
cycle time.
15

6. Move features
through the
process flow as
work is completed

 As the story enters the first process step, mark that date on the card. This is the
start date. As it’s finished, mark that date on the card. This is the finish date.
16

Cycle time = finish date – start date


7. Use the dates The average cycle time from the date the
item enters the board is the wait time
on the cards to from this point in the queue
calculate cycle
time

 Use average cycle time to set wait times from different points on the board. Pay
attention to flow and bottlenecks: relieving bottlenecks as quickly as possible.
17

 Keep regular time-boxes in your process as a cue for product


inspection:
Evaluate the quality of the growing product from a functional,
engineering, and user experience perspective

 Evaluate your pace of development:


Keep time- Look at the number of development items completed relative to goals
boxed product Look at the average cycle time per development item
and process Calculate the ratio of developer days per completed item. Use this
inspection ratio to estimate the completion time for undeveloped items
Adjust your development plan as necessary

 Evaluate and adjust the process you’re using


Use a process reflection session to identify changes you could make
to improve your product or pace

Ending cycles right: http://www.stickyminds.com/s.asp?F=S14865_COL_2


KANBAN

You might also like