{"id":37276,"date":"2016-09-08T09:52:00","date_gmt":"2016-09-08T14:52:00","guid":{"rendered":"https:\/\/kenscourses.com\/tc1019fall2016\/?guid=c6faa20b3d196b926baf8d6588c4517d"},"modified":"2016-09-08T13:15:28","modified_gmt":"2016-09-08T18:15:28","slug":"nonfunctional-is-worthy-too","status":"publish","type":"post","link":"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/nonfunctional-is-worthy-too\/","title":{"rendered":"Nonfunctional is worthy, too."},"content":{"rendered":"<div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\">Okay, so you\u2019ve most certainly heard about requirements before. At least you\u2019ve read about it on my blog (please? ?). And probably you don\u2019t have the full mental image of actual requirements, because most requirements definitions only focus on functional requirements, actually. <\/span><\/div><b id=\"docs-internal-guid-b9ab8d60-0a44-2c87-310e-9e76c3aafecb\" style=\"font-weight: normal;\"><br \/><\/b><br \/><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\">These so called functional requirements are based on the expected functioning of the product\/service. This is typically represented in features such as menus or buttons. Here is where you want to think about potential use scenarios. For most cases, though, if you fail to identify some nonfunctional requirements, you\u2019ll have some trouble later. Trust me.<\/span><\/div><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\"><img height=\"343\" src=\"https:\/\/lh4.googleusercontent.com\/LzAFItT12WaTjqQk_2kNrGdZAVwic8RBcmcDK3kgYkFacaTh-vYKY0d6uYFHrnMoLmbfM9W27n8TWmRdLlG2-MNYFzsdEM4OS-8ahWSaau3YDlZDlqCoFxXYVQWpLJ1hJYaze79R\" style=\"-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);\" width=\"259\" \/><\/span><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\">A milk container has the functional requirement of being capable to contain fluid without leaking. Of course, milk containers can also be used for other things:<\/span><\/div><div class=\"separator\" style=\"clear: both; text-align: center;\"><iframe allowfullscreen=\"\" class=\"YOUTUBE-iframe-video\" data-thumbnail-src=\"https:\/\/i.ytimg.com\/vi\/bT9sL3swSck\/0.jpg\" frameborder=\"0\" height=\"266\" src=\"https:\/\/www.youtube.com\/embed\/bT9sL3swSck?feature=player_embedded\" width=\"320\"><\/iframe><\/div><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\"><br \/><\/span><\/div><b style=\"font-weight: normal;\"><br \/><\/b><br \/><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\">Now, nonfunctional requirements are those regarding attributes such as performance levels, security, usability, reliability and availability. Here is where you you want to think about user narrative statements, acceptance criteria. When these factors are not taken into account, not even your perfectly well functional requirements will save you from some very unsatisfied resulting customers. This highly increases the chances of abandonment. <\/span><\/div><b style=\"font-weight: normal;\"><br \/><\/b><br \/><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\"><img height=\"218\" src=\"https:\/\/lh5.googleusercontent.com\/CAPGDL7w8FbCuOXNlt3Il0UhYL_nt0cGo6ZWsvgWsACM5t9GQOaUBZcqqGgVGyGVc_7ql6vga7xG89yR4fW-7tiqlvBrfgPfeboA2KafsHQ2wsxLon083nTXfGImtFqxkTHhNhoD\" style=\"-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);\" width=\"300\" \/><\/span><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\">A hard hat has the non-functional requirement of not breaking under pressure of less than 10,000 PSI. Now, let me just say there are some pretty cool things you can do with hard hats: <\/span><\/div><div class=\"separator\" style=\"clear: both; text-align: center;\"><iframe allowfullscreen=\"\" class=\"YOUTUBE-iframe-video\" data-thumbnail-src=\"https:\/\/i.ytimg.com\/vi\/TnB6KR2uZRk\/0.jpg\" frameborder=\"0\" height=\"266\" src=\"https:\/\/www.youtube.com\/embed\/TnB6KR2uZRk?feature=player_embedded\" width=\"320\"><\/iframe><\/div><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\"><br \/><\/span><\/div><b style=\"font-weight: normal;\"><br \/><\/b><br \/><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\">And I don\u2019t blame you, the fact that they\u2019re called NONFUNCTIONAL requirements already makes you think it\u2019s not worth of your time, as if nonfunctional meant pointless, secondary, negligible. I hope you\u2019ve learned here otherwise. It might help to make a mental image of them more as \u201cquality requirements\u201d. That rings more the bell for most of us.<\/span><\/div><br \/><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\">Functionality and quality don\u2019t cancel each other out, in fact, they live as one in all successful software. Both functional and nonfunctional requirements are <!--more--> considered part of high-level design, as the two serve the purpose of product specification. Now you know the difference between functional and nonfunctional requirements, as well as some awesome things you can do with milk containers and hard hats ;)<\/span><\/div><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\"><br \/><\/span><\/div><div dir=\"ltr\" style=\"line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;\"><span style=\"background-color: transparent; color: black; font-family: &quot;arial&quot;; font-size: 14.666666666666666px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;\">If you want to take your reading any further, these were my sources: http:\/\/searchsoftwarequality.techtarget.com\/answer\/Functional-requirements-and-nonfunctional-requirements-in-software-engineering-explained<\/span><\/div>","protected":false},"excerpt":{"rendered":"<p>Okay, so you\u2019ve most certainly heard about requirements before. At least you\u2019ve read about it on my blog (please? ?). And probably you don\u2019t have the full mental image of actual requirements, because most requirements definitions only focus on functional requirements, actually. These so called functional requirements are based on the expected functioning of the &hellip; <a href=\"https:\/\/kenscourses.com\/tc1019fall2016\/syndicated\/nonfunctional-is-worthy-too\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Nonfunctional is worthy, too.<\/span><\/a><\/p>\n","protected":false},"author":19,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,4],"tags":[60,25],"class_list":["post-37276","post","type-post","status-publish","format-standard","hentry","category-blogs","category-syndicated","tag-software-engineering","tag-tc1019"],"_links":{"self":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/37276","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/users\/19"}],"replies":[{"embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/comments?post=37276"}],"version-history":[{"count":4,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/37276\/revisions"}],"predecessor-version":[{"id":37563,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/posts\/37276\/revisions\/37563"}],"wp:attachment":[{"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/media?parent=37276"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/categories?post=37276"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kenscourses.com\/tc1019fall2016\/wp-json\/wp\/v2\/tags?post=37276"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}