• No results found

Software Engineering Process Economy & Quality

N/A
N/A
Protected

Academic year: 2021

Share "Software Engineering Process Economy & Quality"

Copied!
8
0
0

Loading.... (view fulltext now)

Full text

(1)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Project delivery: Progress report

The SPA

reports you

RECEIVED

Your actions

on received

feedback

Excel format

preferred

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Lecture 4:

Agile PM – Paper 3, Ch 4.10-11, 4.13-15 [Hughes]

Monitor & Control - Ch 9 except 9.6 & 9.9, 12.4 [Hughes]

[email protected]

Software Engineering Process

– Economy & Quality

ETSF 01

http://cs.lth.se/etsf01

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

AGILE PROJECT MANAGEMENT

Ch 4.10-11, 4.13-15 [Hughes],

P4 (not DSDM parts):

Coram, Bohner,

“The Impact of Agile Methods on Software Project Management”,

Proc of 12

th

Int. Conf. and Workshops on the Engineering of

Computer-Based Systems, 2005.

[email protected]

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Agile…

• One name for many different methods

• Each implementation is unique

Today’s lecture: Scrum, XP and Kanban

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Principle-Driven Approach

based on

Agile Manifesto

More valuable

• Individuals & interactions

• Working software

• Customer collaboration

• Responding to change

Valuable

• Processes

and tools

• Comprehensive documentation

• Contract negotiation

• Following a

plan

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward

Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron

Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber,

Jeff Sutherland, Dave Thomas, The Agile Manifesto,

http://agilemanifesto.org/,

2001

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Agile focuses on…

• Maximizing ROI - delivering business value

• Quickly delivering working code

• Expecting and managing changes

target

scope

lead time

cost /

effort

changes

(2)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Agile SPM

Gradual detailing

Work order

Priority

Just-in-time

Self-governing teams

Level of detail at dev start

Traditional

project

Agile

project

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

ReqtsDesignImpl Testing

Reqts

Design

Impl

Testing

ReqtsDesignImpl Testing

ReqtsDesignImpl Testing

• Same activities different sizing and sequence

• Agile principles and management are different

Traditional Development

Agile Development

+ a preparatory phase:

High-level reqts +

design!

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Scrum Development

PRE-GAME

POST-GAME

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Time boxing

• time-box fixed deadline by which something has

to be delivered

• typically two to six week iterations

• Develop the most prioritized stories first

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Continuous Feedback & Transparency

Business, Management and Development roles

involved in

• Sprint planning meeting

• Daily stand-up meetings

• End-of-sprint demo

• Sprint retrospective meeting

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Kanban:

No iterations, team pull

http://www.crisp.se/gratis-material-och-guider/kanban

Max velocity – WIP (work in process) / state

(3)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Kanban boards

• Simplest version: columns for to-do, in progress, done

• Common: Backlog, Ready, Coding, Testing, Approval,

Done columns

• Used to

– visualize workflow

– limit work-in-progress

– pull work from column to column

– monitor, adapt, improve

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

XP Development

Customer approval

& release

Stories

Priorities

(strict)

Effort estimates

Analysis Design

planning

Test

Testing

Pair programming, TDD

Continuous

review

Code base

Continuous

integration

Auto test

Feedback

Kent Beck, eXtreme Programming eXplained, Addison Wesley, 2000

Backlog

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Agile (XP) Phases

Exploration

Planning:

Release +

per iteration

Development

(iterations)

Production-izing

Death

Maintenance

Kent Beck, eXtreme Programming eXplained, Ch 21, Addison Wesley, 2000

HL reqts

Business

prio

Prototypng

Effort

estimates

Prio

backlog

Estimate

Capacity

Release

Maintce

Rel

Final

Rel

A

D

T P

T

Pair programming

TCs

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Exploration

• Define high-level requirements

• Prioritize from business perspective

• Explore / prototype

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Planning

• Prioritize user stories

• Backlog (scrum)

• Story cards, story board

• Re-estimate, for each sprint

• Select set of stories for iteration according to

capacity

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Development in Scrum vs XP

Iterations aka sprints

Scrum

30 days prescribed, varies in reality

XP

1-4 weeks

Work in prio order

Scrum

team chooses stories in sprint planning

XP

team chooses stories strictly according to agreed prio

(set by product owner)

Managing change: Constant re-prio of backlog

Scrum

no changes in scope during sprint

(4)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Activity Planning

• Product Owner/Customer defines & prioritises User

stories

• Backlog or Story card management

• Dependencies are built into the prioritised

list, i.e. not explicitly marked

Backlogs

Story cards

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Effort Estimate

• Early estimates during exploration phase

• User stories estimated as part of iteration/sprint planning

• Time (man / person hours / days)

or relative estimates (story points, bananas, gummy

bears)

• Planning game (XP) or Planning poker (Scrum)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Resource Allocation

• Capacity driven

– Project level: In exploration phase

– Iteration level: In iteration planning

• Within iteration: team pull, i.e. self-allocation

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Risk Management

• Built into the process, e.g. stand-up meetings:

Hindrances?

• Transparency, openess with information

• Iteration demos with customer / product owner

Traditional risk management techniques can be

used, even if not prescribed

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Monitor

• Progress monitored by asking ”How much work

remains?”

• Frequent status checks -> Burn-down charts

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

… & Control

• Management does not control in agile, rather facilitate

• Team is responsible for managing itself– Team pull!

→ Team responsible for its own work practice / process

… within the ”rules”

• Regular feedback loops: pair programming, daily stand-up

• Sprint retrospectives

(5)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Strengths of Incremental Delivery

[Hughes 4.10]

• quickly delivers working increments

• user gets some benefits earlier

• reduces ‘gold-plating’ – focus on ROI

• avoids unnecessary overhead, e.g. keeping docs updated

• experienced engineers can be more productive

• shorten comm paths with customer & within

cross-functional teams

• feedback from early stages used in developing latter

stages

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Weaknesses of Incr Delivery

[Hughes 4.10]

• weak long-term and overall perspective

• loss of economy of scale

• refactoring causes software breakages

• weak / missing documentation – esp for large scale

– Dependent on personal knowl: negative for new

members, transitioning to other team, audits, user doc

– Decision rationale, reqst-tc tracing may be lost

• Generalists have weaker specialist competence, e.g.

reqts, testing, architecture

• Less structure/guidance for weaker engineers

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Monitor &

Control

(Ch 9 except 9.6 & 9.9,

12.4)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

• Plan ≠ Reality / ’facit’!

• Aim is to reach

• Scope: good product

• Budget: cost

• Timeliness: market

window, commitments etc

►Monitor & Control

Schedule vs Reality

Roadworks!

Accident!

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Monitoring

• Objective: to check if project is on track relative plan

• Different kinds of data (measurements!)

– Data from reports

– Subjective data on completion rate

– Data comparing actual cost and planned cost

– Data comparing actual value and planned value

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Monitor via Reporting

Project Sponsor / Director Steering Committee Project manager PM for subproject Legacy Team Media Team Storage Team Leader for Media Player Team member: MM Dev Team member UX Design Team member Tester Team leader for FS ext Team member FileS Dev Team member Tester

Customer

(6)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Different Types of Reporting

Formal – Informal, Oral – Written, Regular - Ad Hoc

Formal

Informal

Regular

Oral

Re-occurring progress

meetings, eg stand-ups

Around coffee machine

Written

Job sheets, progress

reports

Emails to known

collegues

Ad Hoc

Oral

Review meetings

Ad hoc meetings

Written

Issues reports, change

requests

Emails for issues

investigation

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Project vs Line Organisation

Manager

Analysis

Coding

Testing

PM

Feature

A

Feature

B

System

Test

Functional (usually Line)

Task (usually Project)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Quantitive cost & remaining effort,

but thin on qualitative info, e.g.

issues, actual state of progress.

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Collecting progress details

Need to collect data about:

• Achievements

• Costs

Exercise on partial completion

Developer has produced 250 lines of Java code for a task

estimated at total 500 loc.

Questions

1.Reasonable to assume task 50% complete?

2.Why / Why Not?

3.How can PM deal with this?

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Cost vs Time

Actual relative planned cost

≠ actual relative planned time

• Project can be behind time but under budget

Example: Delayed due to not deploying committed staff

• Project can be on time but over budget

Example: additional resources have been added to cope with work load

→Need to monitor both achievements and costs

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Collecting progress details

Need to collect data about:

• Achievements

• Costs

Exercise on partial completion

Developer has produced 250 lines of Java code for a task

estimated at total 500 loc.

Questions

1.Reasonable to assume task 50% complete?

2.Why / Why Not?

3.How can PM deal with this?

Possible answers

1.

Not necessarily

2.

Possible issues

Incorrect estimate

Non-typical or uneven progress so far

Test & debugging not started yet

3.

More (qualitative) knowledge of progress

(7)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Gantt charts

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Slip charts

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Burn-Down Charts (Scrum)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Fever Chart (Critical Chain)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Prioritized monitoring

[Hughes 9.7]

Monitoring and reporting has a $-tag!

Focus on monitoring based on risk

• Critical path activities: if delayed later dependent

activities are delayed

• Activities with less than a specified float

• High risk activities: E.g. top 5-10 risks

• Activities using critical resources

+ activities with external dependencies

+ resource allocations

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Assessing progress

Checkpoints – predetermined times when

progress is checked (plan + process)

– Event driven: check takes place when

a particular event has been achieved

– Time driven: date of the check is

pre-determined

Frequency and level of reporting

• Corresponding to organizational level

• Higher risk → more frequent

assessment

(8)

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Control or Getting back on track

[Hughes 9.8]

+ Understand the issues! E.g. missing information, weak

tools, non-functioning team etc etc etc

• Try to shorten critical path by adding resources

– Overtime

– Re-allocate existing staff to more critical activities

– Get more staff

• Reconsider activity dependencies

– Over-lap activities to avoid waiting for completion of another

– Split activities to remove dep. to activities / critical resources

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Control by Modifying the Target

• Re-negotiate the commitment: time (deadline), cost or scope

– Reduce scope &/ quality

– Increase cost or deliver later. Consider incremental delivery!

For changes that affect business case (scope-cost-time) involve

• All affected stakeholders

• Inform and gain approval from steering committee and project sponsor

• Ensure affected parties are informed

Lund University / Faculty of Engineering/ Department of Computer Science / Software Engineering Research Group

Summary

Two main PM tasks

• PLAN

• GUIDE, i.e. monitor & control a project

to meet agreed goals and targets

Monitor and control

• Monitor through analysing, compiling incoming reports

• Take corrective and adjustive action when needed

• Manage change in a structured way

• Coordinate roles and people (project meetings etc)

Recommended

exercises:

9.1 and 9.2

References

Related documents

Nonetheless, the frustrating news that most of the students at the tertiary level, especially in primary school teacher education department (PGSD) of Semarang

– Robeco Capital Growth Funds – Robeco Investment Grade Corporate Bonds – class B EUR and class I EUR on 27 March 2009 and class IE EUR shares on 27 April 2009 – Robeco

The questions were developed to examine four dimensions of public attitudes and aspirations by combining the concept of support, commitment, perceived benefits and aspiration for

Įdomu, kad patirtis nėra kvestionuojama, tačiau galima matyti, kad dėl išminties ir amžiaus sąsajos retsykiais sudvejojama: jaunesniam žmogui išmintis nėra būdinga ypatybė

• multiply and divide integers using one of two methods: the table method or the like/unlike method.. Integers – Multiplying and

• to represent the general membership in its collective dealings with regional and international organisations; • to acquire, collate, process and disseminate relevant data