Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
From problems to a prototype
Bob-Antoine J. MENELAS, Ph.D.
Objectives• Know the problem • Prototype the solution
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution
Definitions Root Cause – Deepest underlying cause(s) of positive or negative
symptoms within any process that, if resolved, would eliminate or substantially reduce the symptom.
Root Cause Analysis (RCA) – a tool used both reactively, to investigate an adverse event that already has occurred, and proactively, to analyze and improve processes and systems before they break down (Preuss, 2003).
Data Analysis – the process of gathering, reviewing, and evaluating data.
Symptoms – the noticeable gap between expectations and reality; the “red flag” that draws attention to the issue.
4
Root Cause Analysis (RCA)? • Helps identify the problem or challenge • Helps resolve the Problem • Eliminates Patching
• Conserves Resources • Facilitates Discussion (leading to solutions) • Provides Rationale for Strategy Selection
5
The RCA process • The process of determining root cause was used most
notably in the business sector o Toyota, in particular, used the system for their production. o The process is being used in other sectors as well.
• We will see two ways to implement this approach.
6
Determining the Root Cause What is the underlying cause(s) of symptoms, that if resolved, would
eliminate or reduce the symptom?
Two ways are possible : • The Five Whys. A process to seek root cause by asking “why” five
times in succession.
• System Planning Process. Problem solving approach asks 4 questions: Where are we now? Where are we going? How will we get there? What is holding us back?
7
The Five Whys
8
Asking the question ‘Why’ 5 times, will lead you to the root cause of the problem.
Steps: 1. Write down the specific problem. Writing the problem helps team
focus on the same problem. 2. Ask why the problem happens and write down the answer. Repeat 5
times – 5 ‘Whys’, until team is in agreement that problem is identified.
See web resource:
http://www.isixsigma.com/index.php?option=com_k2&view=item&id=1308:&Itemid=49
5 Whys: Example.
9
Why• Why did the user failed to log in?
• She typed the wrong password.
Why• Why she typed the wrong password?
• She forgot it.
Why• Why she forgot it?
• We have a constraint making passwords.
Why• Why she didn’t used the reset process?
• She tried but did not get the email before 30s.
Why• Why such a delay in the process?
• Because, we are using a third party plugin
System Planning Process
10
� System Planning Process. Problem solving approach asks 4 questions: v Where are we now? v Where are we going? v How will we get there? v What is holding us back?
Problem Solving Approach
11
• What are the facts (current data)?• What worked well? What can be improved?
Where are we now?
• What do we want to achieve (goal)?• What is the expected outcome?
Where are we going?
• What steps must we take to ensure we reach the outcome?
• Who are the key members of team (teachers, staff, administrators)?
How will we get there?
• Is there support for improvement planning and implementation?
• What roadblocks must we overcome in order to reach the expected outcome?
What is holding us back?
� Agreement on a root cause. � Cause is logical, makes sense, and
provides clarity to the problem. � Cause is something you can influence
and control � If cause is resolved, there is realistic
hope that the problem can be reduced or prevented in the future.
12
Indicators that you have found Root Cause
Practice• Apply the root cause analysis to understand why
you do not have better grades
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution • What is a prototype? • Why prototype? • Prototyping benefits • Prototyping objectives • Prototyping process • What to prototype • Different kinds of prototyping
low fidelity high fidelity
• Evolutionary prototype • Throw away prototype
The Task-Centered Design Process • figure out who's going
to use the system to do what
• Create personas • choose representative
tasks for task-centered design
• rough out a design • think about it • create a mock-up or
prototype
• test it with users• iterate• build it• track it• change it
What is a prototype?
In other design fields a prototype is a small-scale model:
a miniature car a miniature building or town
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution • What is a prototype? • Why prototype? • Prototyping benefits • Prototyping objectives • Prototyping process • What to prototype • Different kinds of prototyping
low fidelity high fidelity
• Evolutionary prototype • Throw away prototype
What is a prototype? In interaction design it can be (among other things):
a series of screen sketches a storyboard, i.e. a cartoon-like series of scenes a Powerpoint slide show a video simulating the use of a system a lump of wood (e.g. iphone) a cardboard mock-up a piece of software with limited functionality written in the target language or in another language
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution • What is a prototype? • Why prototype? • Prototyping benefits • Prototyping objectives • Prototyping process • What to prototype • Different kinds of prototyping
low fidelity high fidelity
• Evolutionary prototype • Throw away prototype
Why prototype? • Evaluation and feedback are central to interaction design • Stakeholders can see, hold, interact with a prototype more easily than a document or a drawing • Team members can communicate effectively • You can test out ideas for yourself • It encourages reflection: very important aspect of design • Prototypes answer questions, and support designers in choosing between alternatives
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution • What is a prototype? • Why prototype? • Prototyping benefits • Prototyping objectives • Prototyping process • What to prototype • Different kinds of prototyping
low fidelity high fidelity
• Evolutionary prototype • Throw away prototype
Prototyping benefits• Misunderstandings between software users and
developers are exposed • Missing services may be detected and confusing
services may be identified • A working system is available early in the process • The prototype may serve as a basis for deriving a
system specification • The system can support user training and system
testing
Prototyping benefits• Improved system usability • Closer match to the system needed • Improved design quality • Improved maintainability • Reduced overall development effort
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution • What is a prototype? • Why prototype? • Prototyping benefits • Prototyping objectives • Prototyping process • What to prototype • Different kinds of prototyping
low fidelity high fidelity
• Evolutionary prototype • Throw away prototype
Prototyping objectives• The objective of evolutionary prototyping is to
deliver a working system to end-users. The development starts with those requirements which are best understood.
• The objective of throw-away prototyping is to validate or derive the system requirements. The prototyping process starts with those requirements which are poorly understood
Prototyping in the software process
• Evolutionary prototyping o An approach to system development where an
initial prototype is produced and refined through a number of stages to the final system
• Throw-away prototyping o A prototype which is usually a practical
implementation of the system is produced to help discover requirements problems and then discarded. The system is then developed using some other development process
Approaches to prototyping
Evolutionaryprototyping
Throw-awayPrototyping
Deliveredsystem
Executable Prototype +System Specification
OutlineRequirements
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution • What is a prototype? • Why prototype? • Prototyping benefits • Prototyping objectives • Prototyping process • What to prototype • Different kinds of prototyping
low fidelity high fidelity
• Evolutionary prototype • Throw away prototype
Prototyping process
Establishprototypeobjectives
Defineprototypefunctionality
Developprototype
Evaluateprototype
Prototypingplan
Outlinedefinition
Executableprototype
Evaluationreport
What to prototype?
• Technical issues
• Work flow, task design
• Screen layouts and information display
• Difficult, controversial, critical areas
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution • What is a prototype? • Why prototype? • Prototyping benefits • Prototyping objectives • Prototyping process • What to prototype • Different kinds of prototyping
low fidelity high fidelity
• Evolutionary prototype • Throw away prototype
Low-fidelity Prototyping
• Uses a medium (support) which is unlike the final medium, e.g. paper, cardboard
• Is quick, cheap and easily changed • You focus on the content
• Examples: sketches of screens, task sequences, etc ‘Post-it’ notes storyboards ‘Wizard-of-Oz’
Sketching
• Sketching is important to low-fidelity prototyping
• Don’t be inhibited about drawing ability. Practice simple symbols
Storyboards (User journey)
• Often used with scenarios, bringing more detail, and a chance to role play
• It is a series of sketches showing how a user might progress through a task using the device
• Used early in design
• Index cards (3 X 5 inches)
• Each card represents one screen
• Often used in website development
Using index cards
‘Wizard-of-Oz’ prototyping • The user thinks they are interacting with a computer, but a developer is responding to output rather than the system. • Usually done early in design to understand users’ expectations • What is ‘wrong’ with this approach?
>Blurb blurb >Do this >Why?
User
High-fidelity prototyping • Uses materials that you would expect to be in the final product.
• Prototype looks more like the final system than a low-fidelity version.
• Danger that users think they have a full system…….see compromises
Compromises in prototyping • All prototypes involve compromises • For software-based prototyping maybe there is a slow response? sketchy icons? limited functionality? • Two common types of compromise
• ‘horizontal’: provide a wide range of functions, but with little detail • ‘vertical’: provide a lot of detail for only a few functions
• Compromises in prototypes mustn’t be ignored. Product needs engineering
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution • What is a prototype? • Why prototype? • Prototyping benefits • Prototyping objectives • Prototyping process • What to prototype • Different kinds of prototyping
low fidelity high fidelity
• Evolutionary prototype • Throw away prototype
Evolutionary prototyping• Must be used for systems where the specification
cannot be developed in advance e.g. o AI systems and user interface systems
• Based on techniques which allow rapid system iterations
• Verification is impossible as there is no specification. Validation means demonstrating the adequacy of the system
Evolutionary prototyping
Build prototypesystem
Develop abstractspecification
Use prototypesystem
Deliversystem
Systemadequate?
YES
N
Evolutionary prototyping advantages• Accelerated delivery of the system
o Rapid delivery and deployment are sometimes more important than functionality or long-term software maintainability
• User engagement with the system o Not only is the system more likely to meet user
requirements, they are more likely to commit to the use of the system
Evolutionary prototyping• Specification, design and implementation are inter-
twined • The system is developed as a series of increments
that are delivered to the customer • Techniques for rapid system development are used
such as Agile • User interfaces are usually developed using a GUI
development toolkit
Evolutionary prototyping problems• Management problems
o Existing management processes assume a waterfall model of development
o Specialist skills are required which may not be available in all development teams
• Maintenance problems o Continual change tends to corrupt system
structure so long-term maintenance is expensive • Contractual problems
Prototypes as specifications
• Some parts of the requirements (e.g. safety-critical functions) may be impossible to prototype and so don’t appear in the specification
• An implementation has no legal standing as a contract
• Non-functional requirements cannot be adequately tested in a system prototype
Incremental development• System is developed and delivered in increments
after establishing an overall architecture • Requirements and specifications for each
increment may be developed • Users may experiment with delivered increments
while others are being developed. therefore, these serve as a form of prototype system
• Intended to combine some of the advantages of prototyping but with a more manageable process and better system structure
Incremental development process
Validateincrement
Build systemincrement
Specify systemincrement
Design systemarchitecture
Define systemdeliverables
Systemcomplete?
Integrateincrement
Validatesystem
Deliver finalsystem
YES
NO
Outline• The Root Cause Analysis approach
o The approach o Implementations
• Prototype the solution • What is a prototype? • Why prototype? • Prototyping benefits • Prototyping objectives • Prototyping process • What to prototype • Different kinds of prototyping
low fidelity high fidelity
• Evolutionary prototype • Throw away prototype
Throw-away prototyping• Used to reduce requirements risk • The prototype is developed from an initial
specification, delivered for experiment then discarded
• The throw-away prototype should NOT be considered as a final system o Some system characteristics may have been left out o There is no specification for long-term maintenance o The system will be poorly structured and difficult to
maintain
Throw-away prototypingOutline
requirementsDevelopprototype
Evaluateprototype
Specifysystem
Developsoftware
Validatesystem
Deliveredsoftwaresystem
Reusablecomponents
Prototype delivery• Developers may be pressurised to deliver a throw-
away prototype as a final system • This is not recommended
o It may be impossible to tune the prototype to meet non-functional requirements
o The prototype is inevitably undocumented o The system structure will be degraded through
changes made during development o Normal organisational quality standards may not
have been applied
Rapid prototyping techniques
• Various techniques may be used for rapid development o Dynamic high-level language development o Database programming o Component and application assembly
• These are not exclusive techniques - they are often used together
• Visual programming is an inherent part of most prototype development systems
User interface prototyping• It is impossible to pre-specify the look and feel of a
user interface in an effective way. prototyping is essential
• UI development consumes an increasing part of overall system development costs
• User interface generators may be used to ‘draw’ the interface and simulate its functionality with components associated with interface entities
• Web interfaces may be prototyped using a web site editor
Key points• A prototype can be used to give end-users a
concrete impression of the system’s capabilities • Prototyping is becoming increasingly used for
system development where rapid development is essential
• Throw-away prototyping is used to understand the system requirements
• In evolutionary prototyping, the system is developed by evolving an initial version to the final version
Conclusion• Regarding high fidelity prototypes
o We need for information about designing UI and UX