Professional Documents
Culture Documents
2
Attributes for good requirements
• Complete - they very thoroughly describe the criteria
• Correct - they are accurate and true
• Feasible - they can be accomplished and individual requirements do not
contradict each other.
• Necessary - they are truly needed for the system to function properly and
they are really what the client wants.
• Prioritized - in the case that not all parts of the system can be
implemented at the same time, it's important to be able to distinguish
"absolutely necessary" from "nice to have".
• Unambiguous - they are clear and cannot be misinterpreted
• Verifiable - once implemented, it can be confirmed that the system has
met the requirement through observation and testing
3
Three types of poor requirements
• Missing
• Irrelevant
• Bad
4
Impacts of poor requirements
• Scope creep negatively affecting budget and completion time
• Low utilization of resources and higher overheads
• Inadequate business process design (due to insufficient details about
activities)
• Poor design and ergonomics of the user interface, resulting in lower
productivity
• Inadequate software specification, resulting in lower developer
productivity
• Poor specification amplifies the negative effect of poor requirements
when it comes to software testing, leading to higher costs and lower
quality of the solution
• Time-consuming and costly code rework
• Difficulties in solution integration.
5
IT Pain
7
Where to really start
• Domain Experts - people who are very knowledgeable and work in the
area of the system that is being built
• Users - people who will actually be the ones using the system once it's
built
• Find out the limitations of existing systems and software
• Find out where the users' time is spent
• Find out what they like and don't like
• User shadowing
• Review similar software programs
8
Different techniques
• One-on-one interviews
• Group interviews
• Facilitated sessions
• Questionnaires
• Prototyping
• Use cases
• Brainstorming
9
One on one interview
• Planned ahead
• Open ended questions
• Probing questions
10
Group interview
• Two to four people
• Typically same level or role
• Must keep the group focused
11
Facilitated session
• Five or more users
• Faster approach to get a common set of requirements
• Allow for a longer time
12
Questionnaires
• A good way to get information from remote users
• Typically covers a large number of users who will have minor input
• Much more informal
13
Prototyping
• A more modern approach
• Prototype built on preliminary requirements
• Show this to client
• Modify prototype based on feedback
• Circle back until product meets business needs
14
Use cases
• Also known as user stories
• As <user>, I want to <action> so I can <result>
• Defines a definition of done
15
Brainstorming
• Set aside a longer period of time
• All users together
• Tools
– Whiteboards
– Stickies
– Online collaboration such as box notes or google docs
• Generate ideas
• Prioritize
• Agreement
16
Combining Brainstorming, User stories, prototyping
Walk through!
17