{"id":3340,"date":"2013-06-21T09:00:57","date_gmt":"2013-06-21T16:00:57","guid":{"rendered":"https:\/\/www.jamasoftware.com\/?p=3340"},"modified":"2023-01-12T16:56:53","modified_gmt":"2023-01-13T00:56:53","slug":"how-detailed-should-requirements-be-part-3","status":"publish","type":"post","link":"https:\/\/www.jamasoftware.com\/legacy\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/","title":{"rendered":"How Detailed Should Requirements Be? (Part 3)"},"content":{"rendered":"<p>In the previous article in this series, I described several conditions in which writing less detailed requirements is appropriate. However, there are several situations in which recording only high-level requirements information increases the project\u2019s risk. When you encounter situations such as the ones described in this article (adapted from my book\u00a0<em>More about Software Requirements<\/em>), expect to spend more time than average developing detailed requirements specifications.<\/p>\n<p><strong>Development will be outsourced<\/strong><\/p>\n<p>Anytime you outsource software construction rather than performing it in house, your project will benefit from comprehensive requirements documentation. When the developers are a continent or an ocean away, you don\u2019t have the opportunity for the day-to-day interactions needed to flesh out the details, answer questions, and resolve ambiguities. In certain cultures, software developers will implement precisely what the client specified, even if it\u2019s not complete or sensible. Without having many opportunities for clarification, you have no choice but to supply all the necessary information in the form of written specifications and acceptance tests. Do your best to remove uncertainties before sending the specification out for implementation.<\/p>\n<p><strong>Project team members are geographically dispersed<\/strong><\/p>\n<p>It takes surprisingly little separation between project participants to inhibit communication. I learned this long ago when I was writing programs for a research scientist who sat just a few feet from my desk. One day John moved to a new office about a hundred feet away. My productivity dropped immediately. It now took longer to get my questions answered. I had to set up a meeting with John, phone him, or walk down the hall and hope to catch him, whereas previously I just had to call out my question to get an immediate response. It was an eye-opener for me to see the impact that even a small distance between developer and customer had on my productivity. If you\u2019re concerned about having customer representatives available to supply the missing details during design and construction, you\u2019d better produce that information during requirements development.<\/p>\n<p>On another project, the three of us collaborating on a project worked in two different buildings. We didn\u2019t have a written requirements specification. Instead, we held a weekly meeting to focus our efforts for the next week, and then we went off and did our own parts of the work with limited interaction. On at least two occasions, one developer wasted a full week of effort because we all walked out of our meeting with different understandings of what we were supposed to do that week. Even a limited SRS will reduce this sort of waste, as will closer and more frequent collaboration among the project participants.<\/p>\n<p><strong>Testing will be based on requirements<\/strong><\/p>\n<p>If testers will be writing comprehensive system tests or user acceptance tests from the requirements, they must know just how the system is supposed to behave under various circumstances. In fact, the concept of \u201ctestable requirements\u201d has been proposed as a measure of software size.<br \/>\nTests should cover not only the expected behavior, but also the known exception or error conditions that can arise. Therefore, the requirements specifications need to describe these exceptions well enough so that testers can determine whether the software is functioning correctly. You likely won\u2019t think of all the possible exceptions, but identifying potential problems and specifying how to handle them leads to a more robust product.<\/p>\n<p><strong>Accurate estimates are needed<\/strong><\/p>\n<p>Project managers or developers who must generate effort and schedule estimates from requirements need enough detail to understand what they\u2019re getting into. I once saw an innocent-looking \u201cfunctional requirement\u201d that stated: \u201cThe XML editor shall respond to editing directives entered by voice.\u201d The way the SRS was written gave no hint that this one item was profoundly more complex than the other 700 functional requirements in the document. That simple statement implied the need for an entire speech-recognition engine and interface! It\u2019s difficult to estimate the cost of implementation without decomposing that high-level statement into enough detail to get a good handle on its size, complexity, and difficulty.<\/p>\n<p><strong>Requirements traceability is needed<\/strong><\/p>\n<p>Requirements tracing is the act of creating logical links between individual functional requirements, their origins (such as use cases, stories, product features, or business rules), and the work products the team creates to satisfy each requirement. Such downstream work products include design elements, source code, test cases, and help screens. If requirements tracing is important to your project, you need to specify the requirements in detail.<\/p>\n<p>Evidence of requirements traceability is needed for certain safety-critical products, such as those that require U.S. Food and Drug Administration or Federal Aviation Administration (FAA) certification. For instance, the FAA\u2019s safety standard DO-178B specifies that \u201cevery line of code be directly traceable to a requirement and a test routine, and that no extraneous code outside of this process be included in the build.\u201d Traceability information ensures that your system has no orphan code and no overlooked requirements. Requirements traceability confirms that following conditions are met:<\/p>\n<ul>\n<li>All requirements trace forward to elements of the software design.<\/li>\n<li>Each design element can be traced back to specific requirements.<\/li>\n<li>All code written traces back to a design element and hence to a requirement.<\/li>\n<li>All requirements are implemented in the code.<\/li>\n<li>Test cases exist for each requirement.<\/li>\n<li>All test cases trace to at least one requirement.<\/li>\n<\/ul>\n<p>If you\u2019re in a regulated industry, you already know if you need to implement traceability as part of your requirements management activities. Otherwise, the choice is yours. Successful requirements tracing requires some time, discipline, a process to make it happen, and a tool in which to store the data. You might conclude that it\u2019s a waste of time for your project. Before you do, though, consider an insightful comment made by the CEO of a major corporation when I discussed traceability while teaching a requirements course at his company. He asked, \u201cWhy\u00a0<em>wouldn\u2019t<\/em>\u00a0you do this for all of your mission-critical systems?\u201d He got it.<\/p>\n<p>Also read\u00a0<a title=\"How Detailed Should Requirements Be? Part 1\" href=\"https:\/\/www.jamasoftware.com\/blog\/how-detailed-should-requirements-be-part-1\">How Detailed Should Requirements Be? Part 1<\/a><\/p>\n<p>Also read\u00a0<a title=\"How Detailed Should Requirements Be? Part 2\" href=\"https:\/\/www.jamasoftware.com\/blog\/how-detailed-should-requirements-be-part-2\">How Detailed Should Requirements Be? Part 2<\/a><\/p>\n<p><em style=\"font-size: 13px; line-height: 19px;\">Jama Software has partnered with Karl Wiegers to share licensed content from his books and articles on our web site via a series of blog posts, whitepapers and webinars.\u00a0 Karl Wiegers is an independent consultant and not an employee of Jama. \u00a0He can be reached at\u00a0<a href=\"http:\/\/www.processimpact.com\">http:\/\/www.processimpact.com<\/a>.\u00a0 Enjoy these free\u00a0<a href=\"https:\/\/www.jamasoftware.com\/resources\/\">requirements management resources<\/a>.<\/em><\/p>\n<input class=\"fooboxshare_post_id\" type=\"hidden\" value=\"3340\"\/>","protected":false},"excerpt":{"rendered":"<p>In the previous article in this series, I described several conditions in which writing less detailed requirements is appropriate. However, there are several situations in which recording only high-level requirements information increases the project\u2019s risk. When you encounter situations such as the ones described in this article (adapted from my book\u00a0More about Software Requirements), expect [&hellip;]<\/p>\n","protected":false},"author":68,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[50],"tags":[49,51,38],"industry":[],"class_list":["post-3340","post","type-post","status-publish","format-standard","hentry","category-requirements-management","tag-best-practices","tag-business-requirements","tag-karl-wiegers"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.1 (Yoast SEO v28.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How Detailed Should Requirements Be? (Part 3) - Jama Software<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Detailed Should Requirements Be? (Part 3)\" \/>\n<meta property=\"og:description\" content=\"In the previous article in this series, I described several conditions in which writing less detailed requirements is appropriate. However, there are several situations in which recording only high-level requirements information increases the project\u2019s risk. When you encounter situations such as the ones described in this article (adapted from my book\u00a0More about Software Requirements), expect [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Jama Software\" \/>\n<meta property=\"article:published_time\" content=\"2013-06-21T16:00:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-13T00:56:53+00:00\" \/>\n<meta name=\"author\" content=\"Karl Wiegers\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Karl Wiegers\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/06\\\/21\\\/how-detailed-should-requirements-be-part-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/06\\\/21\\\/how-detailed-should-requirements-be-part-3\\\/\"},\"author\":{\"name\":\"Karl Wiegers\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#\\\/schema\\\/person\\\/e6a00f0ad439a5e1865476b36481aa47\"},\"headline\":\"How Detailed Should Requirements Be? (Part 3)\",\"datePublished\":\"2013-06-21T16:00:57+00:00\",\"dateModified\":\"2023-01-13T00:56:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/06\\\/21\\\/how-detailed-should-requirements-be-part-3\\\/\"},\"wordCount\":1071,\"keywords\":[\"best practices\",\"business requirements\",\"karl wiegers\"],\"articleSection\":[\"Requirements &amp; Requirements Management\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/06\\\/21\\\/how-detailed-should-requirements-be-part-3\\\/\",\"url\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/06\\\/21\\\/how-detailed-should-requirements-be-part-3\\\/\",\"name\":\"How Detailed Should Requirements Be? (Part 3) - Jama Software\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#website\"},\"datePublished\":\"2013-06-21T16:00:57+00:00\",\"dateModified\":\"2023-01-13T00:56:53+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#\\\/schema\\\/person\\\/e6a00f0ad439a5e1865476b36481aa47\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/06\\\/21\\\/how-detailed-should-requirements-be-part-3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/06\\\/21\\\/how-detailed-should-requirements-be-part-3\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/06\\\/21\\\/how-detailed-should-requirements-be-part-3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.jamasoftware.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How Detailed Should Requirements Be? (Part 3)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#website\",\"url\":\"https:\\\/\\\/www.jamasoftware.com\\\/\",\"name\":\"Jama Software\",\"description\":\"Jama Connect\u00ae #1 in Requirements Management\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.jamasoftware.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#\\\/schema\\\/person\\\/e6a00f0ad439a5e1865476b36481aa47\",\"name\":\"Karl Wiegers\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6d4992a28dda9ae47cf239c04be9a0bc554586672cba38949c070d2fed228aef?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6d4992a28dda9ae47cf239c04be9a0bc554586672cba38949c070d2fed228aef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/6d4992a28dda9ae47cf239c04be9a0bc554586672cba38949c070d2fed228aef?s=96&d=mm&r=g\",\"caption\":\"Karl Wiegers\"},\"description\":\"Subject matter expert Karl Wiegers writes on best practices for writing requirements, requirements management, and requirements traceability.\",\"sameAs\":[\"alison@makes-magic.com\"],\"url\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/author\\\/kwiegers\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How Detailed Should Requirements Be? (Part 3) - Jama Software","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/","og_locale":"en_US","og_type":"article","og_title":"How Detailed Should Requirements Be? (Part 3)","og_description":"In the previous article in this series, I described several conditions in which writing less detailed requirements is appropriate. However, there are several situations in which recording only high-level requirements information increases the project\u2019s risk. When you encounter situations such as the ones described in this article (adapted from my book\u00a0More about Software Requirements), expect [&hellip;]","og_url":"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/","og_site_name":"Jama Software","article_published_time":"2013-06-21T16:00:57+00:00","article_modified_time":"2023-01-13T00:56:53+00:00","author":"Karl Wiegers","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Karl Wiegers","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/#article","isPartOf":{"@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/"},"author":{"name":"Karl Wiegers","@id":"https:\/\/www.jamasoftware.com\/#\/schema\/person\/e6a00f0ad439a5e1865476b36481aa47"},"headline":"How Detailed Should Requirements Be? (Part 3)","datePublished":"2013-06-21T16:00:57+00:00","dateModified":"2023-01-13T00:56:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/"},"wordCount":1071,"keywords":["best practices","business requirements","karl wiegers"],"articleSection":["Requirements &amp; Requirements Management"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/","url":"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/","name":"How Detailed Should Requirements Be? (Part 3) - Jama Software","isPartOf":{"@id":"https:\/\/www.jamasoftware.com\/#website"},"datePublished":"2013-06-21T16:00:57+00:00","dateModified":"2023-01-13T00:56:53+00:00","author":{"@id":"https:\/\/www.jamasoftware.com\/#\/schema\/person\/e6a00f0ad439a5e1865476b36481aa47"},"breadcrumb":{"@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/06\/21\/how-detailed-should-requirements-be-part-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.jamasoftware.com\/"},{"@type":"ListItem","position":2,"name":"How Detailed Should Requirements Be? (Part 3)"}]},{"@type":"WebSite","@id":"https:\/\/www.jamasoftware.com\/#website","url":"https:\/\/www.jamasoftware.com\/","name":"Jama Software","description":"Jama Connect\u00ae #1 in Requirements Management","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.jamasoftware.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.jamasoftware.com\/#\/schema\/person\/e6a00f0ad439a5e1865476b36481aa47","name":"Karl Wiegers","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/6d4992a28dda9ae47cf239c04be9a0bc554586672cba38949c070d2fed228aef?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/6d4992a28dda9ae47cf239c04be9a0bc554586672cba38949c070d2fed228aef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6d4992a28dda9ae47cf239c04be9a0bc554586672cba38949c070d2fed228aef?s=96&d=mm&r=g","caption":"Karl Wiegers"},"description":"Subject matter expert Karl Wiegers writes on best practices for writing requirements, requirements management, and requirements traceability.","sameAs":["alison@makes-magic.com"],"url":"https:\/\/www.jamasoftware.com\/blog\/author\/kwiegers\/"}]}},"_links":{"self":[{"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/posts\/3340","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/users\/68"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/comments?post=3340"}],"version-history":[{"count":0,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/posts\/3340\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/media?parent=3340"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/categories?post=3340"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/tags?post=3340"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/industry?post=3340"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}