Educational presentation used in facilitation training to a group of 20+ analysts and product owners. The audience was a mix of clients and peer-consultants of various backgrounds and experience.
2. 2
WHAT ARE THE COMPONENTS OF A BUSINESS
SOFTWARE REQUIREMENT?
BUSINESS NEED, STATED SIMPLY
3. 3
THE COMPONENTS OF A REQUIREMENT
WHAT DOES MY SOFTWARE NEED TO DO AND HOW WELL DOES IT NEED TO DO
IT?
FUNCTIONAL
REQUIREMENT
1 OR MORE NON-
FUNCTIONAL
REQUIREMENTS
DESIGN
• Fulfills a business
process requirement
• Is typically something
that the business is
already doing
• Describes how well a
function is performed
by the design
• States the business
value in the software
• Offers business value
by fulfilling the non-
functional
requirements of the
function
Sometimes
called “the
what“
Sometimes
called “the how“
Often forgotten,
it’s “how well to
do the what”
4. 4
BUSINESS VALUE EXISTS IN THE
NON-FUNCTIONAL
REQUIREMENTS
NOT THE FUNCTIONAL
REQUIREMENTS
Yes. Really.
I Promise.
5. 5
THE IMPORTANCE OF BEING NON-FUNCTIONAL
WHY WERE WE INTRODUCING NEW SOFTWARE, ANYWAY?
If your business exists today, you already have the functionality you need. You’re doing “the what”
with a “how”. What you’re looking for with new software is to do the same things better.
Three big drivers for
business driven
software projects are:
Good
Software
Better Software
Office
Tools
OK Software
ProjectReceive
Goods
Sell
Goods
•It takes too much time to get the job done
•The job is done inaccurately too often
•It takes too long to learn the job
All of these things are non-functions
6. 6
HOW DO YOU DETERMINE THE NON-
FUNCTIONS?
FINDING BUSINESS NEED
7. 7
WHAT DO STAKEHOLDERS THINK OF AS REQUIREMENTS?
I KNOW WHAT I WANT TO DO AND HOW I WANT TO DO IT!
THE FUNCTION THE NON-FUNCTION THE DESIGN
I want… By…
to select a supplier for
each product order
? using a drop down list
to notify the inventory
planner the forecast is
ready
?
having the system
send them an alert
email
It’s common for stakeholders to express their non-functional requirements through
allegory. Unsure of how to quantify the qualities that we’re seeking, we share examples
of designs that sufficiently demonstrate those qualities.
8. 8
GETTING TO THE NON-FUNCTIONS
REQUIREMENTS GATHERING SESSIONS
Non-functional requirements are like the buried treasure of software design. Stakeholders will not
give them up easily. You have to dig for them in requirements gathering conversations.
Q: Why do you
want a drop down
list?
A: Because that's
what we like using.
They're easy.
Q: What about just
keying the supplier
into a text box?
A: hah! that would
take too long. And, the
entries wouldn't be
right half the time
Easy… that sounds like
learnability & usability
interactions – We need
to make the solution
quick to pick up and run
with
Woot! Two more non-
functional requirements
found, usability time
boundary and accuracy
9. 9
NON-FUNCTIONS ACQUIRED!
BUILDING UP YOUR REQUIREMENT
THE FUNCTION THE NON-FUNCTION THE DESIGN
I want… In a way that is good at … By…
to select a supplier for
each product order
Learnability
something that is kind
of like using a drop
down list
Usability {interactions}
Usability {time boundary}
Accuracy
10. 10
JUST KNOWING WHAT THE NON-
FUNCTIONAL REQUIREMENTS
ARE ISN’T ENOUGH
THEY HAVE TO BE MEASUREABLE
11. 11
MEASURING NON-FUNCTIONS
QUANTIFYING QUALITY
I want… In a way that
has…
And is measureable
as…
By…
to select a
supplier for each
product order
Accuracy
X% of transactions need
rework
Some design
that passes
these tests
Usability interactions Y clicks per selection
Usability time
boundary
Z seconds to select a
supplier
Learnability
It takes new users A days to
meet usability measures
Value Mapping
Metrics, Metrics,
& More Metrics!
Process
Auditing
Behavior
Tracking
Benchmarking
There are a variety of business
analysis tools to assess non-
functional requirement targets
12. 12
LIVING WITHOUT NON-FUNCTIONAL REQUIREMENTS
DO WE NEED TO DO ALL THIS EXTRA WORK?
This phenomenon is really common; especially in enterprise solutions for companies that
don’t primarily sell software. The answer is simple:
But, we've never measured non-functional
requirements like this and our software has
always worked great!
YOUR DEV TEAM ROCKS
Every bit of functionality that isn't business pre-designed
(I want a drop down list) is instead solved by your
developers with assumed non-functional requirements.
Meh...this works, but it's
really hard to figure it
out. I don't think they'll
like it. I'll try something
else.
It might take a little
longer to learn and
use, but this software
does everything you
could ever need!
The catch is, developers are not typically psychic.
They may not always guess right problem to solve.
14. 14
DEMONSTRATING THE BUSINESS VALUE
FILTERING OUT THE NOISE
Software projects cost money. The business case for enterprise software is commonly based on
savings that will be realized in the future in exchange for a capitol investment now.
CONCEPT
With so many competing environmental factors, how do you know if the software actually
delivered business value?
REALITY
How did your
new software
workout?
How did your
new software
workout?
I had to
double my
headcount.
Great! I haven't
hard to hire
anyone in 6
months!
This new
software means I
have to hire less
people!
But how do you
know if your
investment pays off?
new accounts,
new business, a
massive
reorganization…
1 year
later…
15. 15
BUSINESS VALUE THROUGH NON-FUNCTIONS
PROVING THE RETURN ON INVESTMENT
I spend 30
million a year
on labor
It takes people 4
weeks to learn our
current tools, and then
they produce 100
transactions per day
If we can get the
learning curve down
to 2 weeks and up
transactions by 25%,
that will save me 4
million per year.
If we know what a
department cost right now
to run
and we can analyze the
software components of
that cost
then we can quantify the
qualitative value of the new
software
I want… In a way that has… And is measureable as… By…
To complete
transactions
Usability
{time boundary}
1 transaction per 2.88 minutes who cares?
Show me the
money!Learnability
It takes new users 10 days to meet
usability measures
Congrats! Two core and critical non-functional requirements are already in hand..
When you build your business case, you’re probably already building some foundational non-
functional requirements.
16. 16
QUANTIFYING BUSINESS VALUE SOFTWARE
GETTING BUSINESS CASE INTO REQUIREMENTS
Opportunity
Statement
Business
Case
Functions Sub-functions
Sub-sub-
functions
Sub-sub-sub-
functions
Based on the net capabilities of
your development team, you’ll
need to break down your business
requirements into smaller and
smaller pieces of specificity
the engineer team all stars
can get working off this level
of detail
veterans devs with a keen
business eye might be
ready to start here
capable, business savvy
devs will use probably use
this level of detail
some teams and
efforts might need
even finer detail
Business
Requirements
Order Products
•Time Use 2.88 min
•Learn Time 10 days
Choose Product Details
•Time Use 2 min
•Learn Time 10 days
Send Order to Supplier
•Time Use: .88 min
•Learn Time: 10 days
Choose Supplier
•Time Use 2 sec
•Learn Time 5 min
Choose Quantity
•Time Use 20 sec
•Learn Time 1 days
Choose Name
•Time Use inherited
•Learn Time inherited
Choose Address
•Time Use inherited
•Learn Time inherited)
Decomposition (breaking it down)
With each step,
be sure to
preserve the
non-functions!
17. 17
DEMONSTRATING VALUE THROUGH TEST
PROVING THE SOFTWARE DELIVERED
FunctionsSub-functions
Sub-sub-
functions
Sub-sub-sub-
functions
Time Use not tested at
this level
Order Products
•Time Use 2.88 min
Choose Product Details
•Time Use 2 min
Send Order to Supplier
•Time Use: .88 min
Choose Supplier
•Time Use 2 sec
Choose Quantity
•Time Use 20 sec
Choose Name
•Time Use inherited
Find Address
•Time Use inherited
2 sec
19 sec
Test Passed
Test Failed
2.3 min
.5 min
2.8 min
You might minimize or
skip this level of test for
your non-function
One test at this level
failed, but you might
accept the outcome if
the higher level
requirement passes
The core test passed.
Hurray! You’re well on
your way to proving
your business case.
Traceability (rolling it back up)
Opportunity
Met $$$
Business
Case
Proved
Business
Requirements
Satisfied
Once you’ve got a product, testing
the non-functions will prove your
business case
18. 18
WHAT ELSE DO NON-FUNCTIONS DO FOR YOU?
ARE NON-FUNCTIONAL REQUIREMENTS MAGICAL?
The greater the ratio of… I want a drop
down list.
It takes us too
long to select
suppliers.
hum...tough one.
Maybe if I write logic
that takes a guess at
the supplier based
upon previous
selections.
Then, offers a DDL for
those instances where
the logic guesses
incorrectly. It'll cost more
to dev, but it sounds like
it meets with your ROI
…the more opportunity there is for your
design and develop team to creatively and
elegantly produce value.
Non-
Functions
Functions
Functions
Business
Design
Specs
We need a way
to pick a supplier
in under a
second to save
on labor costs
and
erm...OK. One
DDL coming
right up! Hope
it helps!