00:14i'm tom hathaway i'm wearing my ba hat
00:16so let's talk business analysis
00:18non-functional requirements are one of
00:21the biggest issues we face in the world
00:22of business analysis
00:24they are the most commonly missed
00:25misunderstood or misrepresented types of
00:29in the next few minutes i'd like to chat
00:31about what non-functional requirements
00:34how you best express them and how they
00:36add tremendous value
00:38to your user stories or conventional
00:42i'd like to preface this knowledge
00:46that has nothing to do with information
00:49it is however extremely relevant to the
00:51process of expressing user stories
00:57i was out to dinner a while back with a
00:59couple of my friends at a restaurant
01:01that one friend in particular brad
01:05brad was a huge fan of buffalo wings but
01:08he only enjoyed them when they were
01:10extremely well done in his opinion
01:13i would consider them totally ruined he
01:16often ate at this particular restaurant
01:18and expected that they would know how he
01:21he ordered them very well done and added
01:24you know how i like them
01:26when his order arrived the wings were of
01:28course not even close to well done by
01:32he sent them back and instructed the
01:34server to tell the chef to
01:36make them really really crispy to make
01:38sure that they would be done well enough
01:41the delivered wings were slightly darker
01:43but still not to his liking
01:45brad sent his wings back three more
01:48politely requesting that they overcook
01:52and burned the suckers in attempts to
01:55get the meal he wanted
01:57after the fifth time the wings although
02:00still not entirely to brad's
02:02were at least edible when the restaurant
02:06manager showed up to ask if everything
02:08all right he got the full story
02:10irritated he went back to the kitchen to
02:14when he returned he explained to brad
02:16that they had deep fried the wings
02:1812 minutes at the prescribed temperature
02:20of 375 degrees fahrenheit
02:23which was excessive by the chef's
02:26and that if he wanted them even more
02:28done in the future he should order his
02:31deep fried for 17 minutes
02:34on his next visit to the restaurant my
02:38after assuring the server three times
02:40that he knew exactly what he wanted
02:42finally enjoyed his wings deep fried to
02:46right away the moral of this story
02:49of course is that it's not enough to
02:53you need to be able to specify in
02:57how a third party in this case the chef
03:00in the world of i.t the developers can
03:03deliver what you want
03:05the latest possible time when you have
03:07to define the measurable dimensions
03:09is immediately before the developers
03:12you should prepare yourself however by
03:15thinking of this in advance
03:17if your non-functional requirements are
03:20not objectively measurable
03:22you need to revise rewrite or expand
03:27user stories take a dramatically
03:29different approach to solving the
03:30age-old problem of communication
03:32between developers and the user
03:35and that difference has a significant
03:37impact on measurability
03:41if you follow the user story paradigm
03:43faithfully you captured your user story
03:46on the front of a 3x5 index card
03:49if you use any other tool to capture it
03:52you should still attempt to constrain
03:53the length of the user story
03:55to one or two brief sentences following
03:59widely recognized molds as a
04:02role i can do or have something with
04:06measurable qualities
04:08to achieve a business goal eg
04:12as a call center operator i can complete
04:14at least 12 reservations per hour during
04:17to minimize wait times for customers
04:20or 2 achieve a business goal
04:28or have something with measurable
04:32eg to minimize wait time for customers
04:35each call center operator can complete
04:37at least 12 reservations per hour
04:44following the user story paradigm
04:46developers are not concerned with any
04:48about the user story until they initiate
04:51the development process for the selected
04:55at that time they should schedule some
04:57time with you as the author of the user
05:00to delve into the nitty-gritty details
05:04during this discussion the developer
05:06will jot down on the back of the index
05:08or in the appropriate tool how they can
05:11prove that their solution
05:12meets your needs once they deliver it if
05:15the measurable quality of the user story
05:18is expressed in specific numbers the
05:20discussion can focus on why that
05:22particular number is important
05:24how much leeway if any is there in the
05:28and possibly how exactly the quality
05:31counted some legitimate questions for
05:35our example might be what defines a
05:39completed reservation how will we treat
05:42reservations that are incomplete
05:44as in the caller decides not to accept
05:48what constitutes peak traffic what are
05:50the expectations during non-peak traffic
05:53what makes the number 12 so important
05:56obviously developers could simply accept
05:59the statement as expressed
06:00or more correctly as they interpret it
06:04implement it with impunity but if they
06:06challenge the statement before
06:09it might change and there's no cheaper
06:12time to change than right now
06:14prior to coding to return to our example
06:19he could use the user story format to
06:22as a diner i want my buffalo wings deep
06:25at the standard temperature for 17
06:29which i consider to be well done
06:31assuming the chef followed his
06:34could if need be proved to brad that he
06:36deep fried the wings at the 375 degree
06:40the standard temperature for deep-frying
06:42chicken wings for exactly 17 minutes
06:45there could no longer be a debate about
06:46whether the meal met brad's
06:50even if the wings came out black as
06:52charcoal the way brad really loved them
06:55that would not be the chef's problem if
06:58thought these instructions could pose a
07:01he should rightfully challenge the
07:03request but if brad accepted
07:05responsibility for the outcome
07:07the request should be honored
07:10measurable qualities define acceptable
07:13behavior for the system
07:14from the user perspective the challenge
07:17is that there are two categories of
07:19quote measurable qualities objective
07:23and subjective measures measurable
07:26qualities containing numbers
07:28as in 10 000 transactions per hour
07:31or one second response time or as our
07:36simply a six-pack can be objectively
07:39measured and validated by a third party
07:42subjective qualities like easy to
07:46high quality or if you're a beer drinker
07:50by definition cannot be objectively
07:54these qualities are valid performance
07:56needs from the business perspective
07:58but to be usable in a user story you
08:00need to clarify them
08:03to deliver a solution that meets your
08:06needs developers need qualities
08:07expressed in measurable terms
08:09what are some of the qualities that you
08:11as the author of a user story need to
08:14frequency how often do people playing
08:18need this user story urgency
08:21how quickly does the application have to
08:23respond to a user's needs
08:26volume how much business data will the
08:28application maintain for this user story
08:31accuracy how precise and timely does the
08:34data have to be from a business
08:37usability what features make the
08:41easily usable by the role learnability
08:45how quickly can new users in this role
08:47learn how to use the application
08:49flexibility or scalability how fast do
08:54frequency and volume to change
08:57reliability how critical is it that the
08:59application does not fail
09:03these are examples of non-functional
09:06that you might need to define whether
09:10or any other form to express your
09:13the key point is that the business
09:15community needs to define these
09:17from the business perspective before the
09:19project moves into the development or
09:23the technology exists to achieve almost
09:25any goal you can think of
09:27assuming that you can afford it only if
09:30the business community defines the goal
09:31in measurable terms in advance
09:33do they have a legitimate right to
09:35expect that the delivered solution
09:37will meet their needs
09:40the question is not whether you need to
09:42specify measurable qualities in your
09:45but rather who is responsible for them
09:47the business community
09:48the business analyst or the developer
09:52the correct answer is all three
09:54developers are obviously involved in
09:56getting the technology to work fast
09:58to meet the highest expected traffic but
10:01it is the business community's job to
10:04just how high that is the one wearing
10:06the business analysis hat
10:08is responsible for capturing clarifying
10:11and confirming user stories
10:13that individual has to make the business
10:15community aware of the issues and ask
10:18questions assuming that non-functional
10:21requirements will take care of
10:22themselves has proven to be a high-risk
10:24endeavor for many organizations