+ All Categories
Home > Documents > INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Date post: 18-Dec-2015
Category:
Upload: bryan-kelly-french
View: 214 times
Download: 1 times
Share this document with a friend
Popular Tags:
23
INSE - Lecture 6a Prototyping
Transcript
Page 1: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

INSE - Lecture 6a

Prototyping

Page 2: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Or: “Not building a Leaning Tower…”

Page 3: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Validation is needed

Having written a specification...

- irrespective of whether it is in English or some formal notation -

how do we ensure the specification matches the user requirements?

One method is prototyping

Page 4: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Differences between a prototype and “the real thing”

The prototype must be available very early so that lessons learnt from it can be fed back into the Requirements, Specification and Design documents.

This means we take whatever short-cuts are needed: e.g. – incomplete having only key facilities;– on the wrong machine;– too slow;– too big– ...

Page 5: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Typically We build an approximation to the doubtful

parts of the desired system; if needed we simulate any special hardware

or peripherals; we have users try it to see what they mis-

understand, mis-use, say is wrong, like/dislike, …

Often it changes the user’ perception of what they need.

Page 6: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Variations

a mock-up; a hand-built cut-down of “the real

thing”; using some sort of “prototype-maker”

– maybe from a formal spec, or– maybe in logic programming or other

special language.

Page 7: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Postscript on Prototyping No matter how a prototype is made prototypes are thought to save far more

than they cost. And if you don’t prototype intentionally,

your chances of fundamental error are so high that a good motto is

“build one to throw away (because you will, anyhow)”

Page 8: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

INSE - Lecture 6b

Estimating

Page 9: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Estimates...

… are almost always needed - usually in 2 forms

-- £££

-- man-years

“Man-years” often helps to

-- estimate the £££;

-- decide realistic deadlines;

-- decide what resources are likely to be needed.

Page 10: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Issues that arise... Milestones for keeping track of “whether the project is on schedule”;

Brookes Law; estimates

– often are wildly wrong; and– usually are under-estimates.

[But they are now usually much better than in the early days.]

Page 11: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Milestones Estimate the whole cost as the sum of

(pessimistic) estimates of the costs of parts; then decide the final deadline and total

number of people; then derive a target deadline for each part of

the project. Each deadline-for-a-part is then a milestone; project progress can be checked by seeing

whether milestones are reached by the expected deadlines.

Page 12: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Brookes Law

“Adding manpower to a late software project will make it even later.”

New people joining mid-project– need to do a lot of learning before they can

achieve anything;– waste the established people’s time by asking

questions on everything not yet documented;– will make mistakes when they do start achieving;– will never be fully committed to the project.

Page 13: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”
Page 14: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”
Page 15: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”
Page 16: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Avoiding Brookes’ Law

GET THE ESTIMATES RIGHT!

Page 17: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

When Brookes’ Law comes into action

limit later damage by having the new people write the missing documentation

Page 18: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Why do estmates go wrong?

Reasons include we tend to estimate for the bits we like,

omitting the bits we don’t like; getting the program out before the

competition get theirs out– therefore hurry– therefore haste– therefore less speed.

Page 19: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Why estimates go wrong… continued

Middle management do the estimates– not done technical work for years;– therefore out of touch.

Middle management will want to please higher management– therefore err on the low side.

The producers won’t be emotionally committed to the deadlines, so won’t try as hard.

Page 20: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Why estimates go wrong… continued

Ultimately, it will be guessing, supported by experience.

Most of these are reasons for the estimates to be low.

Page 21: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

After this lecture

from here out, consider prototyping for any non-trivial or non-obvious programs or parts of programs you build;

keep records of how much time you spend on building programs, web-pages, writing up notes; after a while start using that information to begin predicting...

Page 22: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”
Page 23: INSE - Lecture 6a Prototyping. Or: “ Not building a Leaning Tower …”

Recommended