21
PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward planning was not great revisions of programmers’ designs were infrequent usability wasn’t much considered systems were generally simple – they automated only a few processes rather than tackling complex issues

PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Embed Size (px)

Citation preview

Page 1: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

PROTOTYPING

When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes

• forward planning was not great• revisions of programmers’ designs were infrequent• usability wasn’t much considered• systems were generally simple – they automated only a few processes rather than tackling complex issues

Page 2: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

automation of Type I tasks - high volume, low complexity, routine operations within a business - eventually led to attempts to use computers in Type II tasks - complex, decision-making which required evaluation of a variety of data inputs and strategic outcomes.

the process of system development had also become computer-assisted as well

this led to the increased use of alternative approaches to the established structured, phased approached to systems development

PROTOTYPING

Page 3: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Possible incorporation of Prototyping in the Conventional Approach to Systems Development

FEASIBILITY STUDY

REQUIREMENTS ANALYSIS

SYSTEMS ANALYSIS

SYSTEMS SPECIFICATION

IMPLEMENTATION

MAINTENANCE

REVIEW

economicsocialoperationaltechnical

interviewingobservationsquestionnairesrecord sampling

working methodsuser requirementscurrent system problems

prototype design

prototype development

prototype testing

prototype amendment

inputsoutputsprocessesfilessecurity

system meets requirements?new requirements?continue to function?

writing progstestingtraininginstallationchangeover

Page 4: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

increased emphasis on involving the user in the process of systems design and possibly the whole development process can be assisted by the use of PROTOTYPES: ...especially in the area of safety-

critical applications - like flying an airliner or monitoring a nuclear reactor...

where prototyping may be combined with formal notations to guarantee the correctness and reliability of software

PROTOTYPING

Page 5: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Prototyping is a technique for building a quick and rough version of a desired system or parts of that system

Rapid Application Development by James Martin

PROTOTYPE

An original or model, after which anything is formed

The first thing, or being, of its kind

A pattern, exemplar, or archetypeWebsters 20th Century Dictionary

An approximation of a type that exhibits the essential features of the final version of that type

Avison & Fitzgerald p 76

PROTOTYPING

Page 6: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Get an idea of what the system will offer

Provide feedback on whether the system is what is required

The main objectives of using prototypes is:

PROTOTYPING

Page 7: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Prototyping helps to identify misunderstandings between users & software

developersthis may help detection of missing (not yet specified) user requirements

where the functions and detailed design of a system are not yet fully understood

and can be used to explore and solidify the functions and design

James Martin suggests a prototype is most useful when:

For this purpose, it is far more effective that reviewing paper specifications

“a prototype is worth ten thousand words”

PROTOTYPING

Page 8: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

• real• manipulatable• can be adjusted • can be modified

For this purpose, it is far more effective that reviewing paper specifications

It is also fundamentally different from a paper description:It is also fundamentally different from a paper description:

a prototype is:a prototype is:

PROTOTYPING

Page 9: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

users get a feel for what their system will be like. Its flaws are visible and tangible rather than buried in boring text

that the prototype must be part of the evolving system

In the RAD lifecycle the expressed intention is:

i.e. NOT disposed of, but worked on throughout

PROTOTYPING

Page 10: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

prototyping ought to be used in the development of all interactive systems

Martin suggests, that in particular:

when a prototype is reviewed seriously by end users, they almost always change something

It is worth noting that:

Prototyping does much to solve the problem of inadequate communication between the designers and users

PROTOTYPING

Page 11: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

“prototype” suggests an analogy with engineering, where prototyping is used extensively

There are, however, fundamental differences between the prototyping of software and the prototyping of machines

In engineering, a machine prototype usually takes longer to build and is more expensive than the ultimate product

a mass-production linemay be used

the prototype is needed for pre-testing the product

IN SOFTWARE THERE IS NO MANUFACTURING PRODUCTION LINE

PROTOTYPING

Page 12: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Prototyping is practical only if the prototype can be built

quickly and cheaply

Therefore, a software prototype

is usually an incomplete or simplified version that has the essential functions of the working system but not the scale

or performance

James Martin asserts that:there are many pitfalls in prototyping

to avoid these, it is essential to incorporate prototyping in the development lifecycle where the procedural structures will aid avoidance of those pitfalls

PROTOTYPING

Page 13: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

JAD sessionsJAD sessions can make very good use of prototypes. The discussions become more tangible between developers and users when their interaction is bridged by use of a prototype

It can also be used in the Requirements Planning Phase

partial prototypes can help in checking the desirability of a system before committing funds

PROTOTYPINGJAD = JAD = Joint Application DesignJoint Application Design

Page 14: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

There is scope for user creativity to improve the system

Users are unsure of exactly what they want

The system changes a basic business operation

An end-user dialogue should be tried out with the users to see if it can be improved

The users do not understand all the impacts of the new system

The functions are subtle, and the users understand them better than the analysts

Prototyping is particularly valuable in the following situations:

PROTOTYPING

Page 15: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Screens and reports should be checked with management to see if they can be made more useful or easy to use

The users have difficulty expressing all the system requirements

The prototype may act as a catalyst to elicit alternative ideas

The relative merits of alternative solutions need to be explored

Experimentation may be done to achieve better business practice

Prototyping is particularly valuable in the following situations (continued):

PROTOTYPING

Page 16: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Prototyping should never be an excuse for casual work in which structured design is abandoned

always first build something simple

This starts a debate early in the evolution that may flush out misconceptions

The initial prototype is successively enhanced

With complex systems it is desirable to build the functionality first

then polish the human factoring

PROTOTYPING

Page 17: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

When the prototype is regarded as complete, there may still be much work to do in building the operational system

A list of missing features should be made:

Features for recovery from failures Features for fallbackSecurity features

Features of auditability

Features for ease of maintenanceMachine efficiency

Facilities for having multiple usersFacilities for high-volume usage with adequate response times

PROTOTYPING

Page 18: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Larger database facilitiesNetworking facilities

A list of missing features should be made (continued):

Operation on a different machineDocumentation

A danger of prototyping is that the users, motivated to be excited about the prototype, acquire unfulfillable expectations

The advantage is that the prototype can be used to train users so they will be ready when the real system arrives

PROTOTYPING

Page 19: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Users understand and react to prototypes far better than to paper specifications. Often, they fail to understand or miss important points in paper specs

Often it is quicker to build a prototype than to build paper specifications

Prototyping introduces early reality testing into a project. The users can see what is being built for them and critique it

Without, there is a substantial risk of building an inadequate system, wrong features or, at worst, a system the users will reject

It encourages users to contribute creative input into design process

When using or reviewing a prototype, users tend to be unbiased by existing systems

Benefits of Prototyping:

PROTOTYPING

Page 20: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Prototyping enables errors and weaknesses to be caught before expensive design and programming are done

Prototypes, or partial prototypes, are of great help in JAD sessions

Prototypes can generate excitement and improve morale of the users and developers

Prototypes are valuable for communicating what is required to programmers

Prototypes provide users with early experience with the system and may be used as training tools

Prototyping can yield fast development by having the prototype evolve into the final system

Benefits Prototyping:

PROTOTYPING

Page 21: PROTOTYPING When “systems development” was essentially “programming” then it could be considered that all systems were developed as prototypes forward

Quick, casual design may replace well-structured design

The prototype encourages the users to change their minds about requirements. They may continually invent requirements so that the prototype constantly changes and does not converge quickly to an implementable form

The users’ expectations may become too high. They may think they can have the system immediately

There is a temptation to make the prototype the production system, without adequate consideration of security, auditability, fallback, recovery, maintainability, performance, networking or documentation

The user may take the prototype too literally; in fact, the implemented system will be different

The user may be too casual about the prototype and not take the time to identify its flaws

Dangers of Prototyping:

PROTOTYPING