Requirement collection and analysis is an important part of every development process. It is a leading indicator of a project's success or failure. In this presentation, I give a brief overview of the steps involved walking through an example.
Who am I?
• 15 years of software development experience
• Project Manager, Business Analyst, Data Architect, Developer
• Worked in many enterprise projects in ﬁnancial, retail, technology industries
• 5 years as a founder and core developer in WP App Studio WordPress Design and Development
• B.S. in Mechanical Engineering (Military Academy - 1992)
• Masters in Hotel, Restaurant and Institutional Management (Penn State - 1998)
• Masters in Management Science and Information Technology (Penn State - 2000)
Why quality in requirement
collection is important?
40% to 60% of all software defects found in software projects
are traceable back to incorrect requirements collection
..And we all pay for it
• Redevelopment costs
• Costs associated to delay in time-to-market
• Operational costs of incorrectly built software in production
• Customer and developer frustration…. and on and on..
What is a requirement?
There are two types of
• Deﬁnes what software needs to do
• Deﬁnes the scope of the system
• Deﬁnes the system boundaries and connections to the
• Deﬁnes the business rules - the most will be of this type
• Deﬁnes the look and feel of the system
• Includes user interface, security, performance, legal, social,
maintainability, portability, hardware, and more
What is a good requirement?
• Complete - the criteria must be set to deﬁne what’s complete
• Correct - accurate and represents fact or truth
• Feasible - can be done without any contradiction to the other
• Needed - absolutely required for the system to its job
• Prioritized - provides a blueprint for iteration plan
What is a good requirement?
• Clear - not prone to misinterpretations
• Testable - can be veriﬁed once implemented
• Unique - No dupes
• Traceable - can be linked to a person or a group, use case, model,
source code or other higher level requirement
• Approved - someone or a group must approve
Who and what do we need?
• Subject matter experts (SME) - people who know
• User - people who will use the system. Observe what they
do, like, or don’t like
• Existing systems - Manual or implemented , similar or
"The customer shall enter ﬁrst name, last name, email and mailing address in order to
get a free gift"
• Uses shall statement - expressing an order or instruction
• Deﬁnes who will do it - customers
• Deﬁnes data needed to perform - ﬁrst name, last name, email and mailing address
• Deﬁnes what needs to be done - in order to get a free gift
"We may need ﬁrst name to be able to send out gifts"
• May - no clear instruction
• Who will get the gift ? employees, customers or contractors
• Whose ﬁrst name is it?
• Who are we?
• How do we send? Don’t we need address of the recipient?
R we done yet? Voices from
• Look , I gotta start coding otherwise I will not be able make my deadline
• Should I ask this question to the client? She must be sick of hearing about
• Let’s come out with something then we will talk about it
• I hate documentation. I want a pizza party not another requirement collection session
• I swear to Tom Cruise I will quit immediately if I get another invitation to the req meeting
• It’s been sometime and still we do not have any code. Did I pay for this?
Not yet! Ladies and
The next destination:
• Create Use Cases - the text document and the UML
What is a Use Case? I
• A use case is a series of related interactions between a user (or more generally, an “actor”)
and a system that enables the user to achieve a goal.
• A use case describes the system's behavior as it responds to a series of related requests
from an actor
• A use case is a methodology used in system analysis to identify, clarify, and organize
• A use case is a list of actions or event steps, typically deﬁning the interactions between a
user role and a system, to achieve a goal.
• A use case is a software and system engineering term that describes how a user uses a
system to accomplish a particular goal.
A Use Case has:
• Overview - This scenario describes a Customer getting a free gift online
• Notes - All major modern browsers must be supported
• Actors - The user(Customer) who wants to get a free gift
• Preconditions - Customer has access to internet and navigated to our site and Free
Gift form page.
• Scenarios - Shows step by step interaction between an actor and the system
producing a software reaction
A scenario example
Customer ﬁlls out ﬁrst name, last
name, email, and mailing
The system veriﬁes email and
mailing addresses are correct
and not already exist
Gift Vendor get Customer
information and sends out the gift
The system send notiﬁcation to
Customer that her gift has been
What did we learn?
• Spend sometime producing quality requirements or pay the price
• Requirement collection is a process
• Software development is a team sport
• Think, ask questions, and document before jumping into code
• Practice and read more to do better the next time
• Ohh.. Use cases and all other stuff :-)