9/4/20141 iterative project management chapter 2 – how do iterative projects function? iterative...

38
06/11/22 1 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental

Upload: stefan-louth

Post on 01-Apr-2015

250 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

04/11/23 1

Iterative Project Management

Chapter 2 – How Do Iterative Projects Function?

Iterative Project Management / 01 - Iterative and Incremental

Development

Page 2: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

2

Basic Philosophy• No matter the methodology (and there are many), the most

important feature: methodology is iterative and incremental.

– Regardless whether use-cases, pair-programming, scrum-meetings, feature-driven development, design by test approach or others is used, an iterative approach will greatly assist in producing predictable results.

– Iterative development is characterized by small mini-projects (iterations) designed with a clear set of objectives producing a measurable executable (product) objectively assessed that incrementally advances a product of increasing business value. Lots of keywords in this.

– The objective of this approach is simply to maximize chances for project success.

04/11/23 2Iterative Project Management / 01 - Iterative and Incremental

Development

Page 3: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

3

Mindset of Project Success• “Chaos” approach claims successful projects are finished on time,

within budget, with all the features / functions present.– BUT: Using these criteria, most projects still fail; – with 16-24% succeeding; – And 15-40% ‘challenged’, – and 33-53% failed!

• Successful: completed on time within budget; contains intended features/functions.• Challenged: project completed and operational but is over budget/time and has fewer

features than originally intended• Failed: project is cancelled before completion.

• Author claims that a successful project oftentimes facilitates organizational change, which changes ‘success’ criteria.

• While the ‘above’ criteria are important, the real success is determined by the clear benefit to the business as measured and verified by business sponsors!

04/11/23 3Iterative Project Management / 01 - Iterative and Incremental

Development

Page 4: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

4

Mindset of Project Success• So, we are saying that sometimes providing “specific business

functionality” may not be as important as delivering business benefit. These are not necessarily the same!

• So what is ‘business benefit?’• While we are certainly interested in projects that deliver business

value in terms of functionality delivered, on time, and within budget, ‘business benefit’ itself may differ markedly from project to project and from stakeholder to stakeholder!– “Ultimately a project should be judged upon the value that it delivers to the

business that commissions it, the customers that purchase its products, and the users that use them.” So:

– It might be the application really had to be ‘first to market’ of its kind.– Might be a really innovative set of functionality; something really new!– Might be significant additional quality or performance…

04/11/23 4Iterative Project Management / 01 - Iterative and Incremental

Development

Page 5: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

5

Mindset of Project Success• Thus a project manager must understand the desired

outcomes of the project are and what business results the product is expected to deliver.

• Too often, development teams focus on technical aspects of the project only to find themselves divorced from the “sometimes not too obvious” real business benefit desired by other stakeholders.

04/11/23 5Iterative Project Management / 01 - Iterative and Incremental

Development

Page 6: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

6

Success and the Iterative Project - 3

• In iterative development, the project may be adapted to changing requirements as changing understanding of what constitutes success as the project progresses.

• Poor results may occur if the views of some stakeholders, say the project managers or customers, is divergent from the developers.

• An iterative approach helps us avoid this possibility of a project viewed as a failure by some yet a success by others.

• We need to measure project success by focusing on desired business success and not necessarily blind adherence to some original plan that might seemingly focus on pure functionality.

04/11/23 6Iterative Project Management / 01 - Iterative and Incremental

Development

Page 7: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

7

Success and the Iterative Project• In this approach, each iteration has objectives set by the

management team collaborating with the development team (esp on technical objectives) and the customer team (esp where business/requirements – related objectives are defined).

Remember, it is far more important (especially to management / customer) to deliver / test scenario(s), and/or set of implemented requirements or changes resulting in a new release with more functionality than to produce a complete set of analysis and design documents for these features!

04/11/23 Iterative Project Management / 01 - Iterative and Incremental Development

7

Page 8: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

8

Evidence of Success

• Pitfalls: (you may use these to fool yourself)– Use the iterative nature to excuse never finishing anything!– Allow results of one iteration to subvert results of previous

iterations. A No-No!

• Successful project management continuously monitors iterations so that an iteration– Takes a measurable step closer to desired result– Builds upon successes of previous iterations– Reduces project risk

• The success of a project is measured and becomes increasingly more evident iteration by iteration!

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

8

Page 9: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

9

Key Characteristics of a Successful Iterative Project

• Demonstrable, objectively measured progress• Incrementally increasing functionality• Continually improving quality• Continual risk reduction• Increasingly accurate estimates• Reducing levels of change• Convergence on a accurate business solution

• Let’s look at some of these…

On time, on budget, meeting the customer’s real needs.

04/11/23 9Iterative Project Management / 01 - Iterative and Incremental

Development

Page 10: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

10

Demonstrable, objectively-measured progress - 2

• Lots of ways: From book:– Number of products / documents produced– Number of LOC produced– Number of activities completed– Amount of budget consumed– Amount of schedule consumed– Number of requirements verified to have been implemented

correctly.

• Best one by far: number of requirements verified to have been implemented correctly– Others are indirect and may not measure real progress.– But we must test the release and we must record the amount of

verified software!– Nice graphs in book re: requirements verified vs project schedule

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

10

Page 11: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

11

Demonstrable, Objectively Measured Progress

Project Schedule / Iterations

Req

uire

men

ts V

erifi

ed

0%

100%

04/11/23 11Iterative Project Management / 01 - Iterative and Incremental Development

Page 12: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

12

Avoid Feature Creep - 1• Feature Creep is natural and practically unavoidable.• Frankly, if the number of requirements grows, the team will not make

schedule.• Solution 1: Just say no.

– Will keep you on schedule, but will create ill-will and will likely result in escalation.

– Often unforeseen features are ‘essential’

• Solution 2: Prioritize them and negotiate with Customer– What can be removed from a features list if the delivery date and

resources remains constant• Be careful of ‘added resources!!!!!’

– Best to discuss this at iteration end when plans for the next iteration are being firmed up.

• Underlying theme: have frequent deliverables and value present to the business sooner rather than later.

• Do not recommend extending the current project.• Have more critical / core functions in earlier iterations

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

12

Page 13: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

13

Incrementally Increasing Functionality - 3• Essential that each iteration produce more verified, demonstratable

functionality without compromising sacrificing quality established in previous iterations.

– But there are issues here. This is not always the case: How so?

1. Amount of Effort may have been less during an iteration (time off; illness…)

2. Team productivity: As we progress through the iterations, we typically increase the productivity as the architecture becomes more stable, team members become more confident in the process, risk is reduced, as well as reduced breakage (ahead)

3. Stability of earlier iterations: Inevitable for rework and breakage. Thus in a given iteration, the code growth for the ‘next’ iteration may come up short than that previously planned.

Page 14: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

14

Incrementally Increasing Functionality

– The S curve depicting increased functionality shows that early iterations tend to yield ‘lesser’ increments– Due to cost / effort of start up; familiar with

environment; stability, …– Lesser functionality too occurs at the end due to

transitioning to the user community, training, customer service, latent bugs, clean-up, etc.

– Hence, middle iterations normally produce the most significant increases in high-quality increments that supplement previous increments.

– Too, risk is reduced, environment becomes more stable as well as the architecture, etc.

Page 15: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

15

Incrementally Increasing Functionality

Iteration n Iteration n + 1 Iteration n + 2

Each iteration has more complete functionality than the one before.

Increment n

Increment n + 1

Increment n + 2

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

What is this decrease?

Page 16: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

16

Continually Improving Quality - 3• Healthy projects constantly assess quality and this must

increase every iteration.• But quality can be impacted by assessment at end of

iterations: – 1. testing does not totally address coded functionality (need more

testing / development) and – 2. just plain breakage (code does not pass tests).

• This regression is shown in the next slide.

Page 17: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

17

Continually Improving Quality

Iteration n Iteration n + 1 Iteration n + 2

Each iteration has less breakage than the one before.

Iteration n + 3

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

Regression in functionality from previous iteration(s).But overall higher quality code will be produced, as shown in the graph.

Page 18: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

18

Continually Improving Quality• One problem with the effort to continuously improve quality is the perception

that taking care of problems should be given precedence over adding new functionality

– But by ignoring / ‘pressing on’ in the face of defects causes more significant problems.

– The graph (see figure 2-8 in your text – page 61) shows that by subordinating the addressing of breakage, etc. causes more time spent in fixing ‘other’ problems and less overall progress and quality. And, this rate of ‘lower’ progress/quality increases…

• Too much emphasis on adding functionality leads to degrading quality…• We know that earlier iterations must concentrate on stabilizing the

architecture and reducing risk at the cost of increased functionality• Thus care must be exercises in planning the iterations to address these

parts of the project where architecture concerns and risk are high. Functionality can be added secondarily to these factors.

• Once risk becomes reduced and the architecture stabilizes, then more functionality will be added and a higher quality product continues its evolution.

• Avoiding accumulating defects will increase the quality of the increments.

Page 19: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

19

Continual Risk Reduction – 2• We know that healthy projects address risk up front, as this reduces

the likelihood of project failure.• This is old news and is essential to early iteration planning.

• See next slide for graph: This graph reflects an immediate increase in risk up front rising to a high point, and then dropping off to become much lesser in importance as the project evolves.– Earliest iterations are usually the most difficult as those items of high

risk must be addressed.

– Too, a team rarely really understands all the risks up front.

– Thus there is a period of (book) risk exploration.

• What do we mean by risk mitigation?– We divide projects into iterations to gain greater control over the project

and mitigate risk.

Page 20: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

20

Continual Risk Reduction

Project Schedule / Iterations

Tota

l Ris

k Ex

posu

re

Risk Exploration and

Resolution

Controlled Risk Management

Low

High

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

Page 21: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

21

Controlling Change - 2

• Again, there will be change and rework. But it is a matter of controlling and managing these activities!

• Change and rework generally come at a much higher expense later on in the project because the architecture is stabilized and so much functionality has been verified and integrated into the project.

• Bringing Change and Rework under control dramatically impacts overall project completion.

Page 22: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

22

Controlling Change - 2

• Early in lifecycle, we expect change – typically between 35% and 100% - as we become more stable and learn more about the project.

• Rework will then typically decrease and should drop to something below 25%.

• We must watch the stability of the interfaces – subsystems, packages, layers, etc. Major responsibilities of components!

• Earlier in project – no problem. • Typically if these require change well into the project, then we likely

have deeper problems.• Watch for these!

Page 23: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

23

Increasingly Accurate Estimates

• Accurate estimates for both short-term and long-term activities must be predictable.

• All estimates have an element of probability in them.• Traditional estimates (COCOMO model) convered (as

expected) as we approach end of project.• Iterative projects do better due to revised estimates

based on real progress measures / verified each iteration.– We constantly revised our estimates and hence converge more

quickly to actual costs• As time progresses, the closer we get to actual results• Margin of error decreases as time moves on in the iterative

approach.

Page 24: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

24

Increasingly Accurate Estimates

Source: COCOMO 2 Model Manual

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

Traditional approach for estimation.

Page 25: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

Increasingly Accurate Estimates

Project Schedule / Iterations

X

4X

2X

0.5X

0.25X

Rel

ativ

e S

ize

Ran

ge

Expected size rangefor a traditional project

Expected size range for an iterative project

04/11/23 25Iterative Project Management / 01 - Iterative and Incremental Development

Iterative estimating: note quicker convergence and reduced margin of error. (Convince management of this)

Page 26: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

Estimating Facts

• Facts are that– Estimating is so very poorly done.– Often estimates are dramatically influenced by management;

perhaps negotiated. Why?

“The reality is that reductions in schedule without corresponding reductions in scope have the effect of setting the project up for failure from the start.” p. 69

Page 27: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

Estimating Facts - 2

• Facts are that– Software professionals don’t develop estimating expertise– We tend to be overly optimistic– Development teams don’t cope well with political problems.– There’s very little historical information to base estimates upon– Teams do NOT continuously revise estimates

• But by continuously estimating via learning more, developing additional business value, assessing, and verification, and, equivalently, developing our own history, our estimates can become much more authoritative and result in more predictable outcomes.

Page 28: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

28

Increasingly Accurate Estimates

Project Schedule

Estim

ate

of w

ork

to c

ompl

ete

Original Target Date

X X XX

X

X

X

XX

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

Note the margin of error decrease over time.

Page 29: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

29

Reducing Levels of Change

Project Schedule / Iterations

Rew

ork

(% o

f Tot

al)

0%

100%

50%

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

Reducing levels of change? How so? Discuss.

Page 30: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

30

Defect Density

Project Schedule / Iterations

Def

ect D

ensi

ty /

Def

ects

per

Lin

e of

Ver

ified

Cod

e

Low

High

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

not only defect density, but their severity.If so, how so?

Page 31: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

31

Convergence on an Accurate Business Solution

The following perspectives converge iteration by iteration: • Discuss

– What the customers think they need– What the customers expect to get– What the developers think the customers need– What the developers expect to deliver– What the users actually need– What the developers are actually going to deliver– What the customers actually going to get

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

Page 32: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

32

More on Convergence…

• Reality is that users and business analysts often don’t know what they really want until they see it.– Too close to the action in many cases…– Too busy; bad attitudes; resistance to change; seniors vs

newbees; turf;….

• Often specifiers ‘need’ the world… until they see the cost and impacts on schedule.

• Nice thing is that early iterations address risk and force early problems to be resolved via demonstrations, proofs of concept, prototyping, etc….before long term project commitments need to be forthcoming.

Page 33: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

33

Discussion: Resources

• What skills do you need to iterate?

• What are the key roles in an iterative project?

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

Page 34: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

34

Team Responsibilities

Development

Project Management

Assessment

Requirements Management Architecture

To iterate the key management and development skills need to be in place.

04/11/23 Iterative Project Management / 01 - Iterative and Incremental

Development

Who does what?What perspective do they come from?What specific skills do you see absolutely necessary?

Page 35: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

35

Increasing Enthusiasm, Morale, Collaboration, And Effective Teamwork

• Iterative approach is characterized by – Regular demonstrations– Assessments– Retrospectives– Feedback loops

• That reinforced team building and process improvement.• BUT: team attitude is critical…

Page 36: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

36

Team Attitude - 1…

• Oftentimes an iterative approach is taken due to previous project failures.

• Often many individuals / groups doubt the other’s ability to meaningfully contribute or have commitment ‘they’ have.

• DIFFERENCES: (for management…) (book)– Iterative approach provides greater ability to see what’s happening– Force issues to be dealt with immediately and not put off…– Feedback is folded into the planning of iterations– Actions taken to resolve issues.– Iterative projects produce code almost immediately!!– And these are addressed each iteration!! (unlike traditional

aproaches)

Page 37: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

37

Team Attitude - 2…

• Developers (paraphrased) commonly doubt the customer’s commitment to the project and question their willingness to become actively engaged in steering and assessing the project through the iterative elaboration of requirements providing feedback on the iteration demonstrations and contributing to the iteration assessments.

• Customers often question the development team’s attitude toward their (customer’s) taking a more central role in the projects and actually listening to their inputs.

Page 38: 9/4/20141 Iterative Project Management Chapter 2 – How Do Iterative Projects Function? Iterative Project Management / 01 - Iterative and Incremental Development

38

Summary and Review

• Maniacal focus on producing working software– Something ‘runnable’ produced every iteration

• Objective measurement of progress

• Continuous integration and testing

• Active reduction of risk

• Incremental completion ….

• Convergence04/11/23 Iterative Project Management / 01

- Iterative and Incremental Development