1
00:00:00,400 --> 00:00:04,400
The Better Business Analysis 
Institute presence, the Better 

2
00:00:04,400 --> 00:00:07,760
Business Analysis podcast with 
Tinsman Walsh. 

3
00:00:11,920 --> 00:00:14,400
Welcome back to the BA bite 
session. 

4
00:00:14,400 --> 00:00:19,480
And this week we are going to be
talking about how to capture non

5
00:00:19,480 --> 00:00:22,440
functionals the right way. 
That's right. 

6
00:00:22,560 --> 00:00:26,400
Non functional requirements are 
a special type of requirement. 

7
00:00:26,640 --> 00:00:31,480
They focus on the non functional
elements of the solution or 

8
00:00:31,480 --> 00:00:35,200
process that you're going to be 
capturing requirements for. 

9
00:00:35,720 --> 00:00:39,760
But unlike other user story 
types, other requirement types, 

10
00:00:40,120 --> 00:00:45,200
non functional requirements are 
deeply coupled and deeply focus 

11
00:00:45,240 --> 00:00:50,200
on the solution components. 
OK, so one way of looking at 

12
00:00:50,200 --> 00:00:54,480
that or explaining that are the 
features or the solution behind 

13
00:00:54,480 --> 00:00:59,600
the features that ultimately is 
going to be built or bought or 

14
00:00:59,920 --> 00:01:02,560
considered as part of options 
analysis. 

15
00:01:02,800 --> 00:01:05,960
And So what you need to do when 
you do non functional 

16
00:01:05,960 --> 00:01:09,280
requirements is actually 
something that's not, I guess, 

17
00:01:09,280 --> 00:01:12,720
traditional in terms of BA. 
What you need to do is you 

18
00:01:12,720 --> 00:01:15,840
really need to work really 
closely with the architecture 

19
00:01:15,840 --> 00:01:19,280
team within your organization. 
And if you don't have one, then 

20
00:01:19,280 --> 00:01:22,320
you can look at external sources
to help you with this non 

21
00:01:22,320 --> 00:01:24,840
functional requirements. 
Talk about different elements of

22
00:01:24,840 --> 00:01:26,920
the system. 
There are categories for non 

23
00:01:26,920 --> 00:01:30,600
functional requirements and 
there actually is if you like a 

24
00:01:30,600 --> 00:01:33,720
pretty good finite list that you
can use. 

25
00:01:33,800 --> 00:01:36,520
Saying that another way, non 
functional requirements can 

26
00:01:36,520 --> 00:01:39,400
actually be used as a checklist 
exercise. 

27
00:01:40,080 --> 00:01:43,960
OK, so you can actually have a 
pre list of non functional 

28
00:01:43,960 --> 00:01:48,600
requirement areas and you can 
work through with your product 

29
00:01:48,600 --> 00:01:52,480
owner, business owner, whoever 
your your setup is for your 

30
00:01:52,480 --> 00:01:54,640
project. 
And you can go through them one 

31
00:01:54,640 --> 00:01:58,320
by one, ideally with the help of
a tick league or an architect to

32
00:01:58,320 --> 00:02:00,560
explain what those non 
functionals mean. 

33
00:02:00,720 --> 00:02:04,240
They are generally in technical 
language, but they should be 

34
00:02:04,240 --> 00:02:07,040
written as a requirement in more
business language. 

35
00:02:07,040 --> 00:02:10,039
And I'll and I'll give you an 
example in just a minute. 

36
00:02:10,240 --> 00:02:13,440
This is not how you do business 
analysis when capturing 

37
00:02:13,440 --> 00:02:16,360
requirements at the highest 
level or at the functional 

38
00:02:16,360 --> 00:02:20,840
level. 
And IIBA talk about solution 

39
00:02:20,840 --> 00:02:23,120
requirements or requirements 
that actually relate to the 

40
00:02:23,120 --> 00:02:25,480
solution. 
This is one of the areas, but 

41
00:02:25,480 --> 00:02:28,320
specifically non functional 
requirements is unique. 

42
00:02:28,680 --> 00:02:31,920
And so you use different 
techniques for this, right? 

43
00:02:32,120 --> 00:02:37,040
So how do you actually do this? 
So top tip, the top tip is you 

44
00:02:37,040 --> 00:02:38,960
load up an Excel spreadsheet, 
right? 

45
00:02:39,480 --> 00:02:44,280
You put in the different 
conceptual solution component. 

46
00:02:44,280 --> 00:02:47,400
Don't worry about what they that
you've got them, right? 

47
00:02:47,640 --> 00:02:53,680
So they might be simply back end
UI, just really, really high 

48
00:02:53,680 --> 00:02:57,640
level chunks of the solution. 
So these are the ones where 

49
00:02:57,640 --> 00:03:02,720
users are wanting to perform 
functions with or interact with.

50
00:03:02,720 --> 00:03:04,600
So they are actually your 
feature areas. 

51
00:03:05,080 --> 00:03:06,680
We'll go on to that on another 
day. 

52
00:03:07,160 --> 00:03:10,360
And they, they can just be 
conceptual, OK, enough that the 

53
00:03:10,360 --> 00:03:12,640
architect generally knows what 
you're talking about when 

54
00:03:12,640 --> 00:03:14,800
talking about them. 
The solution and how that's put 

55
00:03:14,800 --> 00:03:18,280
together, the Lego blocks that 
they use may be completely 

56
00:03:18,280 --> 00:03:20,320
different and that's OK. 
OK, It's just talking about 

57
00:03:20,320 --> 00:03:23,560
areas. 
So that's your that's your focus

58
00:03:23,600 --> 00:03:26,160
area. 
So I would say that it's good to

59
00:03:26,160 --> 00:03:30,280
use that as your actor. 
So what I say is as a new 

60
00:03:30,280 --> 00:03:33,320
education website, right? 
That's the feature or that's the

61
00:03:33,600 --> 00:03:35,840
feature group. 
So that's cool. 

62
00:03:35,840 --> 00:03:37,200
New website. 
So we've talked about the 

63
00:03:37,200 --> 00:03:41,480
general conceptual area. 
I want to write so that I can. 

64
00:03:41,560 --> 00:03:45,720
So you use the same language you
use as user stories and it's #1 

65
00:03:45,920 --> 00:03:49,560
same template. 
But some of our non functional 

66
00:03:49,560 --> 00:03:53,760
requirements have something that
I would refer to as metrics and 

67
00:03:53,760 --> 00:03:56,800
measures. 
All right, so you can actually 

68
00:03:56,800 --> 00:04:01,080
expand that user story pattern 
for those types. 

69
00:04:01,200 --> 00:04:04,560
OK, it doesn't. 
This applies to about 8090% of 

70
00:04:04,560 --> 00:04:06,640
the non functional requirements 
you might have. 

71
00:04:06,640 --> 00:04:10,240
You can probably use some 
someone can take the opportunity

72
00:04:10,240 --> 00:04:12,800
to read and write them all. 
So they have a metrics measure, 

73
00:04:14,080 --> 00:04:16,519
you know, and A and a pattern. 
So they have the ultimate non 

74
00:04:16,519 --> 00:04:18,680
functional list. 
But I'll give you an example. 

75
00:04:19,079 --> 00:04:24,760
So as a new education website, I
would like loading response 

76
00:04:24,760 --> 00:04:27,560
times. 
That's the non functional 

77
00:04:27,560 --> 00:04:30,040
element loading response times, 
right? 

78
00:04:30,480 --> 00:04:32,400
And yes, you could have a 
functional requirement that 

79
00:04:32,400 --> 00:04:35,840
talks about I want the I want to
be able to quickly, you know, 

80
00:04:35,840 --> 00:04:38,080
access or I want the page to 
load. 

81
00:04:38,320 --> 00:04:40,200
But this is really a non 
functional requirement. 

82
00:04:40,200 --> 00:04:42,640
So sometimes you don't pick 
these up as a functional area. 

83
00:04:42,640 --> 00:04:44,680
And that's why non functionals 
are so important. 

84
00:04:45,800 --> 00:04:48,320
They actually translate to non 
functional areas. 

85
00:04:48,520 --> 00:04:52,400
So you need to use this list, 
which is a finite list and 

86
00:04:52,400 --> 00:04:58,200
you'll say as a education 
website, I want to respond 

87
00:04:58,400 --> 00:05:00,440
right? 
Or load within. 

88
00:05:01,160 --> 00:05:05,600
And then you could have a metric
load within X seconds. 

89
00:05:06,000 --> 00:05:10,720
OK, So load within being the 
being the metrics and X seconds 

90
00:05:10,720 --> 00:05:14,720
being the measure so that I load
like the most common website 

91
00:05:14,720 --> 00:05:17,040
that users are used to 
experiencing, right? 

92
00:05:17,520 --> 00:05:23,280
So a user, for example, will get
the experience of what they 

93
00:05:23,280 --> 00:05:26,800
think fast load times are on a 
website based on the general 

94
00:05:26,800 --> 00:05:29,560
loading that's expected from a 
website, right? 

95
00:05:29,800 --> 00:05:35,080
So that metric is usually 
captured by eco programs or web 

96
00:05:35,560 --> 00:05:37,880
performance programs. 
And they generally say about two

97
00:05:37,880 --> 00:05:40,320
seconds. 
If if you're website takes 

98
00:05:40,320 --> 00:05:43,240
longer than two seconds, it's 
going to take a while to load. 

99
00:05:43,240 --> 00:05:45,120
OK. 
And there are so many technical 

100
00:05:45,120 --> 00:05:49,000
elements that go into making 
sure that that runs that way. 

101
00:05:49,120 --> 00:05:51,120
OK, It's not as easy as just 
running in two seconds. 

102
00:05:51,120 --> 00:05:53,880
It's actually easy to create a 
website and make it reload in 

103
00:05:53,880 --> 00:05:56,800
five seconds, right? 
But if your website is reading 

104
00:05:56,800 --> 00:05:59,840
information from other systems, 
is responding with content that 

105
00:05:59,840 --> 00:06:04,240
needs to be pulled from a back 
end, is running on CMS system, a

106
00:06:04,240 --> 00:06:06,560
content management system like 
WordPress, it will need to be 

107
00:06:06,600 --> 00:06:08,920
optimized to be able to run in 
two seconds. 

108
00:06:09,120 --> 00:06:12,000
It can't too much content. 
There are so many implications 

109
00:06:12,000 --> 00:06:14,200
of that requirement that it 
actually matters, right? 

110
00:06:14,320 --> 00:06:17,360
But let's just say our product 
owners saying, well, we need 

111
00:06:17,360 --> 00:06:19,680
this website to run like the 
standard website out on the 

112
00:06:19,680 --> 00:06:21,280
Internet that users are used to 
using. 

113
00:06:21,520 --> 00:06:22,920
So we have a non functional 
requirement. 

114
00:06:23,160 --> 00:06:25,760
That's one example. 
There will probably be about 50 

115
00:06:25,760 --> 00:06:29,400
non functional requirements if 
it was both a web and back end 

116
00:06:29,400 --> 00:06:31,440
project. 
OK, that gives you an idea of 

117
00:06:31,440 --> 00:06:33,680
the magnitude. 
And they're all written the same

118
00:06:33,680 --> 00:06:35,320
kind of format, the same 
pattern. 

119
00:06:35,960 --> 00:06:38,760
And I just want to be clear that
some of these are not just 

120
00:06:38,760 --> 00:06:41,040
metrics based. 
Some of them are binary based. 

121
00:06:41,080 --> 00:06:45,000
So if you have a piece of 
legislation that requires you to

122
00:06:45,040 --> 00:06:49,160
hear with, for example, native 
language, you're in a country 

123
00:06:49,160 --> 00:06:52,920
which has native speakers and 
your responsibility is to serve 

124
00:06:52,920 --> 00:06:57,320
them as well, then it could. 
It's just simply that as an 

125
00:06:57,560 --> 00:07:01,160
education website, I will be 
able to present content in both 

126
00:07:01,200 --> 00:07:05,920
English and in native language X
so that I can cater for both 

127
00:07:06,280 --> 00:07:09,520
English speakers and our native 
audience, right. 

128
00:07:09,520 --> 00:07:13,360
So you would replace that with 
whatever your native peoples are

129
00:07:13,360 --> 00:07:15,640
and in our case Maori in New 
Zealand, that's pretty common. 

130
00:07:15,960 --> 00:07:18,880
So you know, you would be able 
to do bilingual on the website. 

131
00:07:19,080 --> 00:07:21,120
Again, that has huge 
implications to how you build 

132
00:07:21,120 --> 00:07:23,280
the system, how you translate 
and all the rest of it and how 

133
00:07:23,280 --> 00:07:25,520
you capture content. 
But that's the non functional 

134
00:07:25,520 --> 00:07:28,640
requirement. 
So this is quite a a really good

135
00:07:28,640 --> 00:07:30,360
topic. 
You can spend hours on it, but I

136
00:07:30,360 --> 00:07:33,680
want this to be a bite. 
So you go through that list, 

137
00:07:33,840 --> 00:07:35,320
right? 
And you get that list from a 

138
00:07:35,320 --> 00:07:37,920
list of architects and there are
categories and there are sub 

139
00:07:37,920 --> 00:07:40,280
questions. 
So that list is finite. 

140
00:07:40,280 --> 00:07:41,920
If you don't have it, search on 
the Internet. 

141
00:07:42,360 --> 00:07:44,840
We have a great list at the 
Better Business Analysis 

142
00:07:44,840 --> 00:07:46,600
Institute. 
Once you get onto our courses, 

143
00:07:46,600 --> 00:07:49,120
it's part of our toolkit. 
But there is a finite list. 

144
00:07:49,120 --> 00:07:52,280
You can start building yours 
today and if you don't have any 

145
00:07:52,280 --> 00:07:55,200
for your project, just start 
right for that one project. 

146
00:07:55,200 --> 00:07:58,600
You'll start that 50 or whatever
you'll get close and then you 

147
00:07:58,600 --> 00:08:01,080
can take that and reuse that 
across any of your other 

148
00:08:01,080 --> 00:08:03,280
projects. 
So it's like a one off exercise.

149
00:08:03,480 --> 00:08:07,480
Yes, they evolve OK, and they 
get they they change as system 

150
00:08:07,480 --> 00:08:09,640
solutions change. 
And that's why non functional 

151
00:08:09,640 --> 00:08:11,880
requirements are so deeply 
coupled with solutions. 

152
00:08:12,440 --> 00:08:16,760
When we when single sign on was 
introduced, that now became a 

153
00:08:16,760 --> 00:08:20,200
feature that people wanted. 
They didn't know it and they 

154
00:08:20,200 --> 00:08:23,360
might not tell you as ABA in the
functional area and the 

155
00:08:23,360 --> 00:08:26,400
requirements captured that they 
want to not have to log in twice

156
00:08:27,080 --> 00:08:29,600
when they used a multiple 
systems across your 

157
00:08:29,600 --> 00:08:33,360
organization. 
But that's now a feature that's 

158
00:08:33,360 --> 00:08:34,960
there. 
So that would be included in 

159
00:08:34,960 --> 00:08:38,120
your non functionals and you'd 
be prompted as ABA to go, Oh, 

160
00:08:38,679 --> 00:08:42,280
would you like the system to 
allow users to just log in once 

161
00:08:42,280 --> 00:08:45,320
to the domain and then they can 
have access to this new 

162
00:08:45,320 --> 00:08:46,840
solution? 
And they're like, yes, yes, of 

163
00:08:46,840 --> 00:08:48,440
course. 
And they would have you would 

164
00:08:48,440 --> 00:08:51,040
have never come up with that if 
it wasn't in this checklist. 

165
00:08:51,160 --> 00:08:53,640
That's why it's so important. 
Obviously the non functional 

166
00:08:53,640 --> 00:08:57,000
requirement would say, you know,
or as a solution, I, I'm going 

167
00:08:57,000 --> 00:09:00,520
to implement single sign in so I
don't have to maintain my own 

168
00:09:01,240 --> 00:09:05,080
list of usernames and passwords,
which is a, which is causes the 

169
00:09:05,080 --> 00:09:08,200
potential for security risk. 
That's really why why we have 

170
00:09:08,200 --> 00:09:09,800
single sign on from technical 
point of view. 

171
00:09:10,000 --> 00:09:12,600
So you have your your Excel 
spreadsheet, you load in your 

172
00:09:12,600 --> 00:09:14,720
actor, which is your solution 
components. 

173
00:09:14,720 --> 00:09:19,200
You have what they want to do 
just in the user format. 

174
00:09:19,240 --> 00:09:20,760
And some of those will have 
metrics. 

175
00:09:21,080 --> 00:09:24,000
You have a checklist and you go 
through down with the product 

176
00:09:24,000 --> 00:09:27,000
owner, ideally with a technical 
person who can explain some of 

177
00:09:27,000 --> 00:09:29,400
those things. 
And those won't just have 

178
00:09:29,400 --> 00:09:32,320
technical things in them. 
Just to be clear, some of them 

179
00:09:32,320 --> 00:09:36,920
will have legislation and laws 
and company policies that need 

180
00:09:36,920 --> 00:09:41,880
to be applied to the solution. 
So if there is something around 

181
00:09:41,880 --> 00:09:45,720
you, you are building something 
that's extra secure as holding 

182
00:09:45,720 --> 00:09:47,760
personal information. 
There'll be non functional 

183
00:09:47,760 --> 00:09:51,600
requirements will most likely be
must have as in the product 

184
00:09:51,600 --> 00:09:54,600
owner doesn't really have much 
choice around how you store that

185
00:09:54,600 --> 00:09:57,480
information because there's 
legislation that's imposed on 

186
00:09:57,480 --> 00:09:58,960
you. 
They should all be in the non 

187
00:09:58,960 --> 00:10:02,080
functional requirements. 
OK, so the easy way is to do 

188
00:10:02,080 --> 00:10:05,160
that in Excel, have a 
standardized list, go around, do

189
00:10:05,160 --> 00:10:08,040
a bit of work on that, and then 
it's actually really easy. 

190
00:10:08,040 --> 00:10:10,600
You just take that list every 
single project and you just go 

191
00:10:10,600 --> 00:10:14,320
through it and you evolve it. 
And I believe that the ultimate 

192
00:10:14,320 --> 00:10:18,320
list of non functionals for your
organization, the matrices, and 

193
00:10:18,320 --> 00:10:20,480
it won't be written perfectly 
and it won't be written in your 

194
00:10:20,480 --> 00:10:23,720
Excel spreadsheet format, should
be owned by the architecture 

195
00:10:23,720 --> 00:10:25,400
team, right? 
That's my Bo bite. 

196
00:10:25,400 --> 00:10:27,400
I hope you learned something 
about non functionals and how 

197
00:10:27,400 --> 00:10:30,760
you can get started on those. 
Obviously not an in depth 

198
00:10:30,760 --> 00:10:34,160
secession, but I'll make sure I 
do one in the future.

