requirements for project management
1
GCIS 514
Requirements and Project Management
Prototyping
Richard Lamb, MS
Prototyping Chapter 15
Prototyping is used to elicit and validate stakeholder needs through an iterative process that creates a model or design of requirements.
It is also used to optimize user experience, to evaluate design options, and as a basis for development of the final business solution.
2
Prototyping
A software requirements prototype is a mock-up or partial implementation of a software system
Helps developers, users, and customers better understand system requirements
Helps clarify and complete requirements
Provides early response to “I'll know it when I’ll see (or won’t see) it” attitude
3
Prototyping
A software requirements prototype is a mock-up or partial implementation of a software system
Effective in addressing the “Yes, But” and the “Undiscovered Ruins” syndromes
Helps find new functionalities, discuss usability, and establish priorities
4
Prototyping
Prototyping is effective in resolving uncertainties early in the development process
Focus prototype development on these uncertain parts
Encourages user participation and mutual understanding
5
Prototyping – Realizations
Prototypes can take many forms:
Paper prototypes
Prototype on index card
Storyboard
Screen mock-ups
6
Prototyping – Realizations
Prototypes can take many forms:
Interactive prototypes
Using high-level languages (e.g., Visual Basic, Delphi, Prolog)
Using scripting languages (e.g., Perl, Python)
Using animation tools (e.g., Flash/Shockwave)
7
Prototyping – Types
Horizontal: focus on one layer – e.g., user interface
Vertical: a slice of the real system
8
Prototyping – Types
Evolutionary can be turned into a product incrementally, giving users a working system more quickly (begins with requirements that are more understood)
9
Prototyping – Types
Throw-away: less precise, thrown away, focusing on the less well-understood aspects of the system to design, designed to elicit or validate requirements
10
Prototyping – Fidelity (1)
Fidelity is the extent to which the prototype is real and (especially) reactive
Fidelity may vary for throw-away prototypes
11
Prototypes don’t necessarily look like final products — they can have different fidelity.
The fidelity of a prototype refers to how it conveys the look-and-feel of the final product (basically, its level of detail and realism).
Fidelity can vary in the areas of:
Visual design
Content
Interactivity
There are two main types of prototypes, ranging between these two extremes:
Low-Fidelity
High-Fidelity
Product teams choose a prototype’s fidelity based on the goals of prototyping, completeness of design, and available resources.
Prototyping – Fidelity (1)
High-fidelity
Applications that "work" – you press a button and something happens
Often involves programming or executable modeling languages
12
Prototyping – Fidelity (1)
High-fidelity
Advantages: provides an understanding of functionality, reduce design risk, more precise verdicts about requirements
13
Prototyping – Fidelity (1)
High-fidelity
Disadvantages: takes time to build
more costly to build
sometimes difficult to change
14
Prototyping – Fidelity (1)
High-fidelity
Disadvantages: false sense of security
often focuses on details rather than on the goals and important issues
15
Prototyping – Fidelity (2)
Low-fidelity
It is not operated – it is static
Advantages: easy and quick to build
cheaper to develop
excellent for interfaces
16
Low-fidelity prototyping
Low-fidelity (lo-fi) prototyping is a quick and easy way to translate high-level design concepts into tangible and testable artifacts. The first and most important role of lo-fi prototypes is to check and test functionality rather than the visual appearance of the product.
Here are the basic characteristics of low-fidelity prototyping:
Visual design: Only some of the visual attributes of the final product are presented (such as shapes of elements, basic visual hierarchy, etc.).
Content: Only key elements of the content are included.
Interactivity: The prototype can be simulated by a real human. During a testing session, a particular person who is familiar with design acts as a computer and manually changes the design’s state in real-time. Interactivity can also be created from wireframes, also known as “connected wireframes.” This type of prototype is basically wireframes linked to each other inside an application like PowerPoint or Keynote, or by using a special digital prototyping tool such as Adobe XD.
Pros
Inexpensive. The clear advantage of low-fidelity prototyping is its extremely low cost.
Fast. It’s possible to create a lo-fi paper prototype in just five to ten minutes. This allows product teams to explore different ideas without too much effort.
Collaborative. This type of prototyping stimulates group work. Since lo-fi prototyping doesn’t require special skills, more people can be involved in the design process. Even non-designers can play an active part in the idea-formulation process.
Clarifying. Both team members and stakeholders will have a much clearer expectation about an upcoming project.hgygh
Cons
Uncertainty during testing. With a lo-fi prototype, it might be unclear to test participants what is supposed to work and what isn’t. A low-fidelity prototype requires a lot of imagination from the user, limiting the outcome of user testing.
Limited interactivity. It’s impossible to convey complex animations or transitions using this type of prototype.
Prototyping – Fidelity (2)
Low-fidelity
It is not operated – it is static
Advantages: offers the opportunity to engage users before coding begins
encourage creativity
17
Low-fidelity prototyping
Low-fidelity (lo-fi) prototyping is a quick and easy way to translate high-level design concepts into tangible and testable artifacts. The first and most important role of lo-fi prototypes is to check and test functionality rather than the visual appearance of the product.
Here are the basic characteristics of low-fidelity prototyping:
Visual design: Only some of the visual attributes of the final product are presented (such as shapes of elements, basic visual hierarchy, etc.).
Content: Only key elements of the content are included.
Interactivity: The prototype can be simulated by a real human. During a testing session, a particular person who is familiar with design acts as a computer and manually changes the design’s state in real-time. Interactivity can also be created from wireframes, also known as “connected wireframes.” This type of prototype is basically wireframes linked to each other inside an application like PowerPoint or Keynote, or by using a special digital prototyping tool such as Adobe XD.
Pros
Inexpensive. The clear advantage of low-fidelity prototyping is its extremely low cost.
Fast. It’s possible to create a lo-fi paper prototype in just five to ten minutes. This allows product teams to explore different ideas without too much effort.
Collaborative. This type of prototyping stimulates group work. Since lo-fi prototyping doesn’t require special skills, more people can be involved in the design process. Even non-designers can play an active part in the idea-formulation process.
Clarifying. Both team members and stakeholders will have a much clearer expectation about an upcoming project.hgygh
Cons
Uncertainty during testing. With a lo-fi prototype, it might be unclear to test participants what is supposed to work and what isn’t. A low-fidelity prototype requires a lot of imagination from the user, limiting the outcome of user testing.
Limited interactivity. It’s impossible to convey complex animations or transitions using this type of prototype.
Prototyping – Fidelity (2)
Low-fidelity
Disadvantages: may not cover all aspects of interfaces, are not interactive, may seem non-professional in the eyes of some stakeholders (sigh!)
18
Prototyping – Risks
Prototypes that focus on user-interface tends to lose the focus of demonstrating/exploring functionality
Prototypes can bring customers’ expectations about the degree of completion unrealistically up
19
Though prototyping decreases the probability of a software development project failure, this activity has its own risks.
The biggest risk is that anyone who is interested in the project after facing a working prototype will decide that the final product is almost ready.
‘Wow, you seem to have already done everything!’ enthusiastically says the one you asked to evaluate the prototype. ‘It looks great. Is it possible that you will finish it quickly and give it to me?” In short, then: NO!
Prototyping – Risks
Do not end-up considering a throwaway prototype as part of the production system
Always clearly state the purpose of each prototype before building it
20
Beware of those project stakeholders who think that the prototype is just an early version of the final product. Managing expectations is one of the key components of the success of prototyping.
Everyone who sees a prototype must understand its purpose and the limits of its application. Web testing service comes in handy when you want to improve design and content of e-commerce site.
Do not let the fears associated with premature release of the product draw you away from creating a prototype. Explain to everyone that you are not going to release it as the final product.
One way to control this risk is to use paper and electronic prototypes. None of those who evaluate the paper prototype will believe that the product is almost ready.
Another way is to choose prototyping tools that are different from those used to develop the final product. This will help to counter those who ask to “quickly finish” and release a prototype.
Moreover, beware when users start to bother you with the question: “How the user interface will look like and operate?” Working with prototypes that resemble the final product, users easily forget that at the stage of requirements specification they should basically think what they want to see in the system.
Create the prototype only with those demonstrations, functions and navigation capabilities that will help you eliminate ambiguities in the requirements.
Prototypes
Partial implementations
Best used to explore requirements
Great for “Yes, But” responses
Evaluate the results
21
Prototype Roles
Evolutionary
Usually part of an agile or rapid application development effort
Part of iterative stages of code refinement
Code kept
Prototype Roles
Throw-away
Requirements gathering tool
Particularly useful with interface development
None of the code should be carried forward into the final product