{"id":3217,"date":"2022-05-30T06:00:40","date_gmt":"2022-05-30T13:00:40","guid":{"rendered":"https:\/\/www.jamasoftware.com\/?p=3217"},"modified":"2023-01-12T16:46:40","modified_gmt":"2023-01-13T00:46:40","slug":"characteristics-of-excellent-requirements","status":"publish","type":"post","link":"https:\/\/www.jamasoftware.com\/legacy\/blog\/2022\/05\/30\/characteristics-of-excellent-requirements\/","title":{"rendered":"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS)"},"content":{"rendered":"<p><img decoding=\"async\" class=\"size-full wp-image-33063 aligncenter\" src=\"https:\/\/www.jamasoftware.com\/media\/2013\/03\/Brand_Erosion_Product_Recall.jpg\" alt=\"\" width=\"1024\" height=\"512\" \/><\/p>\n<p>How can you distinguish excellent software requirements and software requirements specifications (SRS) from those that could cause problems? In this post, we\u2019ll start by discussing several different characteristics that individual requirements should exhibit. Then, we\u2019ll then look at the desirable traits a successful SRS should have as a whole.<\/p>\n<h2>Characteristics of Effective Requirements<\/h2>\n<p>In an ideal world, every individual user, business, and functional requirement would exhibit the qualities described in the following sections.<\/p>\n<h2>Complete<\/h2>\n<p>Each requirement must fully describe the functionality to be delivered. It must contain all the information necessary for the developer to design and implement that bit of functionality. If you know you\u2019re lacking certain information, use TBD (to be determined) as a standard flag to highlight these gaps. Resolve all TBDs in each portion of the requirements before you proceed with construction of that portion.<\/p>\n<p>Nothing says you need to make the entire requirements set complete before construction begins. In most cases, you\u2019ll never achieve that goal. However, projects using iterative or incremental development life cycles should have a complete set of requirements for each iteration.<\/p>\n<p>Using minimal requirements specifications runs the risk of having different people fill in the blanks in different ways, based on different assumptions and decisions. Keep requirements details verbal instead of written also makes it hard for business analysts, developers, and testers to share a common understanding of the requirements set.<\/p>\n<hr \/>\n<h4><span style=\"color: #ff6600;\"><strong>RELATED: <\/strong><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/resources.jamasoftware.com\/solution-overview\/jama-connect-a-modern-rm-alternative-to-ibm-doors\" target=\"_blank\" rel=\"\u201cnoopener noopener\">Move to Jama Connect\u00ae \u2014 A Modern Requirements Management Alternative to IBM\u00ae DOORS\u00ae<\/a><\/span><\/span><\/h4>\n<hr \/>\n<h2><strong>Correct<\/strong><\/h2>\n<p>Each requirement must accurately describe the functionality to be built.<\/p>\n<p>The reference for correctness is the source of the requirement, such as an actual user or a high-level system requirement. A software requirement that conflicts with its parent system requirement is not correct.<\/p>\n<p>Only user representatives can determine the correctness of user requirements (such as use cases), which is why users or their close surrogates must review the requirements.<\/p>\n<h2><strong>Feasible<\/strong><\/h2>\n<p>It must be possible to implement each requirement within the known capabilities and limitations of the system and its operating environment. To avoid specifying unattainable requirements, have a developer work with marketing or the BA throughout the elicitation process.<\/p>\n<p>The developer can provide a reality check on what can and cannot be done technically and what can be done only at excessive cost. Incremental development approaches and proof-of-concept prototypes are ways to evaluate requirement feasibility.<\/p>\n<h2><strong>Necessary<\/strong><\/h2>\n<p>Each requirement should document a capability that the stakeholders really need or one that\u2019s required for conformance to an external system requirement or a standard.<\/p>\n<p>Every requirement should originate from a source that has the authority to specify requirements. Trace each requirement back to specific voice-of-the-customer input, such as a use case, a business rule, or some other origin of value.<\/p>\n<hr \/>\n<h4><span style=\"color: #ff6600;\"><strong>RELATED: <\/strong><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/resources.jamasoftware.com\/blog\/carnegie-mellon-university-software-engineering-program-teaches-modern-software-engineering-using-jama-connect-2\" target=\"_blank\" rel=\"\u201cnoopener noopener\">Carnegie Mellon University Software Engineering Program Teaches Modern Software Engineering Using Jama Connect<\/a><\/span><\/span><\/h4>\n<hr \/>\n<h2><strong>Prioritized<\/strong><\/h2>\n<p>Assign an implementation priority to each functional requirement, feature, use case, or user story to indicate how essential it is to a particular product release.<\/p>\n<p>If all the requirements are considered equally important, it\u2019s hard for the project manager to respond to budget cuts, schedule overruns, personnel losses, or new requirements added during development. Prioritization is an essential key to successful iterative development.<\/p>\n<h2><strong>Unambiguous<\/strong><\/h2>\n<p>All readers of a requirement statement should arrive at a single, consistent interpretation of it, but natural language is highly prone to ambiguity. Write requirements in simple, concise, straightforward language appropriate to the user domain. \u201cComprehensible\u201d is a requirement quality goal related to \u201cunambiguous\u201d: readers must be able to understand what each requirement is saying. Define all specialized terms and those that might confuse readers in a glossary.<\/p>\n<h2><strong>Verifiable<\/strong><\/h2>\n<p>See whether you can devise a few tests or use other verification approaches, such as inspection or demonstration, to determine whether the product properly implements each requirement.<\/p>\n<p>If a requirement isn\u2019t verifiable, determining whether it was correctly implemented becomes a matter of opinion, not objective analysis. Requirements that are incomplete, inconsistent, infeasible, or ambiguous are also unverifiable.<\/p>\n<h2><strong>Characteristics of Effective Software Requirements Specifications (SRS)<\/strong><\/h2>\n<p>It\u2019s not enough to have excellent individual requirement statements. Sets of requirements that are collected into a software requirements specification (SRS) ought to exhibit the characteristics described in the following sections.<\/p>\n<h2><strong>Complete<\/strong><\/h2>\n<p>No requirements or necessary information should be absent. Missing requirements are hard to spot because they aren\u2019t there! Focusing on user tasks, rather than on system functions, can help you to prevent incompleteness. I don\u2019t know of any way to be absolutely certain that you haven\u2019t missed a requirement. There\u2019s a chapter of my book \u201c<em><a href=\"https:\/\/www.amazon.com\/Software-Requirements-Developer-Best-Practices\/dp\/0735679665\" target=\"_blank\" rel=\"noopener noreferrer\">Software Requirements, Third Edition<\/a>\u201d<\/em>\u00a0that offers some suggestions about how to see if you\u2019ve overlooked something important.<\/p>\n<hr \/>\n<h4><span style=\"color: #ff6600;\"><strong>WRITE BETTER REQUIREMENTS: <\/strong><span style=\"color: #0000ff;\"><a style=\"color: #0000ff;\" href=\"https:\/\/resources.jamasoftware.com\/blog\/jama-connect-features-in-five-jama-connect-advisor-2\" target=\"_blank\" rel=\"\u201cnoopener noopener\">Jama Connect\u00ae Features in Five: Jama Connect Advisor\u2122<\/a><\/span><\/span><\/h4>\n<hr \/>\n<h2><strong>Consistent<\/strong><\/h2>\n<p>Consistent software requirements don\u2019t conflict with other requirements of the same type or with higher-level business, system, or user requirements. Disagreements between requirements must be resolved before development can proceed. If you spot a pair of conflicting requirements, you might not know which one (if either) is correct until you do some research. Recording the originator of each requirement lets you know who to talk to if you discover conflicts in your software requirements specification.<\/p>\n<h2><strong>Modifiable<\/strong><\/h2>\n<p>You must be able to revise the SRS when necessary and maintain a history of changes made to each requirement. This dictates that each requirement be uniquely labeled and expressed separately from other requirements so that you can refer to it unambiguously.<\/p>\n<p>Each requirement should appear only once in the SRS. It\u2019s easy to generate inconsistencies by changing only one instance of a duplicated requirement. Consider cross-referencing subsequent instances back to the original statement instead of duplicating the requirement. A table of contents and an index will make the SRS easier to modify. Storing requirements in a database or a commercial <a href=\"https:\/\/www.jamasoftware.com\/solutions\/requirements-management\/\" target=\"_blank\" rel=\"noopener noreferrer\">requirements management solution<\/a> makes them into reusable objects.<\/p>\n<h2><strong>Traceable<\/strong><\/h2>\n<p>A <a href=\"https:\/\/www.jamasoftware.com\/platform\/jama-connect\/features\/\" target=\"_blank\" rel=\"noopener noreferrer\">traceable requirement<\/a> can be linked backwards to its origin and forward to the design elements and source code that implement it and to the test cases that verify the implementation as correct. Traceable requirements are uniquely labeled with persistent identifiers. They are written in a structured, fine-grained way as opposed to crafting long narrative paragraphs. Avoid lumping multiple requirements together into a single statement; the individual requirements might trace to different design and code elements.<\/p>\n<h2>How Do You Know If Your Requirements and SRS Exhibit These Attributes?<\/h2>\n<p>The best way to tell whether your requirements have these desired attributes is to have several project stakeholders carefully review the SRS. Different stakeholders will spot different kinds of problems. For example, analysts and developers can\u2019t accurately judge completeness or correctness, whereas users can\u2019t assess technical feasibility.<\/p>\n<p>You\u2019ll never create an SRS in which all requirements demonstrate all these ideal attributes. However, if you keep these characteristics in mind while you write and review the requirements, you will produce better requirements documents and you will build better products.<\/p>\n<hr \/>\n<h6 style=\"text-align: center;\">To learn more about how to write requirements in a way that all stakeholders have a clear understanding of development needs,<br \/>\nvisit <a href=\"https:\/\/www.jamasoftware.com\/requirements-management-guide\" target=\"_blank\" rel=\"noopener\"><u>The Essential Guide to Requirements Management and Traceability<\/u><\/a><\/h6>\n<hr \/>\n<p><em>Jama Software has partnered with Karl Wiegers to share licensed content from his books and articles. Karl Wiegers is an independent consultant and not an employee of Jama Software. He can be reached at <a href=\"http:\/\/www.processimpact.com\">ProcessImpact.com<\/a>.\u00a0<\/em><\/p>\n<hr \/>\n<p><!-- Uberflip Embedded Hub Widget --><\/p>\n<div id=\"UfEmbeddedHub1668102907729\"><\/div>\n<p><script>\n  window._ufHubConfig = window._ufHubConfig || [];\n  window._ufHubConfig.push({\n    'containers':{'app':'#UfEmbeddedHub1668102907729'},\n    'collection': '4006819',\n    'openLink':function(url){\n      window.open(url);\n    },\n    'lazyloader':{\n      'itemDisplayLimit':20,\n      'maxTilesPerRow':3,\n      'maxItemsTotal': 3\n    },\n    'tileSize': 'small',\n    'enablePageTracking':false,\n    'baseUrl': 'https:\/\/resources.jamasoftware.com\/',\n    'filesUrl': 'https:\/\/resources.jamasoftware.com\/',\n    'generatedAtUTC': '2022-11-10 17:54:42',\n  });\n  <\/script><\/p>\n<p><script>(function(d,t,u) {\n    function load(){\n      var s=d.createElement(t);s.src=u;d.body.appendChild(s);\n    }\n    if (window.addEventListener) {\n      window.addEventListener('load',load,false);\n    }\n    else if (window.attachEvent) {\n      window.attachEvent('onload',load);\n    }\n    else{\n      window.onload=load;\n    }\n  }(document,'script','https:\/\/resources.jamasoftware.com\/hubsFront\/embed_collection'));\n  <\/script><br \/>\n<!-- \/End Uberflip Embedded Hub Widget --><\/p>\n<input class=\"fooboxshare_post_id\" type=\"hidden\" value=\"3217\"\/>","protected":false},"excerpt":{"rendered":"<p>How can you distinguish excellent software requirements and software requirements specifications (SRS) from those with problems?<\/p>\n","protected":false},"author":68,"featured_media":44199,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[50],"tags":[49,16],"industry":[],"class_list":["post-3217","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-requirements-management","tag-best-practices","tag-software-development"],"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>Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS) - Jama Software<\/title>\n<meta name=\"description\" content=\"Learn how can you distinguish excellent software requirements and a software requirements specification (SRS) from those that could cause problems.\" \/>\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\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS)\" \/>\n<meta property=\"og:description\" content=\"Learn how can you distinguish excellent software requirements and a software requirements specification (SRS) from those that could cause problems.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements\" \/>\n<meta property=\"og:site_name\" content=\"Jama Software\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-30T13:00:40+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-13T00:46:40+00:00\" \/>\n<meta name=\"author\" content=\"Karl Wiegers\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS)\" \/>\n<meta name=\"twitter:description\" content=\"Learn how can you distinguish excellent software requirements and a software requirements specification (SRS) from those that could cause problems.\" \/>\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=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/requirements-management-guide\\\/writing-requirements\\\/the-characteristics-of-excellent-requirements#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2022\\\/05\\\/30\\\/characteristics-of-excellent-requirements\\\/\"},\"author\":{\"name\":\"Karl Wiegers\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#\\\/schema\\\/person\\\/e6a00f0ad439a5e1865476b36481aa47\"},\"headline\":\"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS)\",\"datePublished\":\"2022-05-30T13:00:40+00:00\",\"dateModified\":\"2023-01-13T00:46:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2022\\\/05\\\/30\\\/characteristics-of-excellent-requirements\\\/\"},\"wordCount\":1235,\"image\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/requirements-management-guide\\\/writing-requirements\\\/the-characteristics-of-excellent-requirements#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.jamasoftware.com\\\/media\\\/2013\\\/03\\\/Brand_Erosion_Product_Recall.jpg\",\"keywords\":[\"best practices\",\"software development\"],\"articleSection\":[\"Requirements &amp; Requirements Management\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2022\\\/05\\\/30\\\/characteristics-of-excellent-requirements\\\/\",\"url\":\"https:\\\/\\\/www.jamasoftware.com\\\/requirements-management-guide\\\/writing-requirements\\\/the-characteristics-of-excellent-requirements\",\"name\":\"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS) - Jama Software\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/requirements-management-guide\\\/writing-requirements\\\/the-characteristics-of-excellent-requirements#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/requirements-management-guide\\\/writing-requirements\\\/the-characteristics-of-excellent-requirements#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.jamasoftware.com\\\/media\\\/2013\\\/03\\\/Brand_Erosion_Product_Recall.jpg\",\"datePublished\":\"2022-05-30T13:00:40+00:00\",\"dateModified\":\"2023-01-13T00:46:40+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#\\\/schema\\\/person\\\/e6a00f0ad439a5e1865476b36481aa47\"},\"description\":\"Learn how can you distinguish excellent software requirements and a software requirements specification (SRS) from those that could cause problems.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/requirements-management-guide\\\/writing-requirements\\\/the-characteristics-of-excellent-requirements#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.jamasoftware.com\\\/requirements-management-guide\\\/writing-requirements\\\/the-characteristics-of-excellent-requirements\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/requirements-management-guide\\\/writing-requirements\\\/the-characteristics-of-excellent-requirements#primaryimage\",\"url\":\"https:\\\/\\\/www.jamasoftware.com\\\/media\\\/2013\\\/03\\\/Brand_Erosion_Product_Recall.jpg\",\"contentUrl\":\"https:\\\/\\\/www.jamasoftware.com\\\/media\\\/2013\\\/03\\\/Brand_Erosion_Product_Recall.jpg\",\"width\":1024,\"height\":512},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/requirements-management-guide\\\/writing-requirements\\\/the-characteristics-of-excellent-requirements#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.jamasoftware.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS)\"}]},{\"@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":"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS) - Jama Software","description":"Learn how can you distinguish excellent software requirements and a software requirements specification (SRS) from those that could cause problems.","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\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements","og_locale":"en_US","og_type":"article","og_title":"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS)","og_description":"Learn how can you distinguish excellent software requirements and a software requirements specification (SRS) from those that could cause problems.","og_url":"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements","og_site_name":"Jama Software","article_published_time":"2022-05-30T13:00:40+00:00","article_modified_time":"2023-01-13T00:46:40+00:00","author":"Karl Wiegers","twitter_card":"summary_large_image","twitter_title":"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS)","twitter_description":"Learn how can you distinguish excellent software requirements and a software requirements specification (SRS) from those that could cause problems.","twitter_misc":{"Written by":"Karl Wiegers","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements#article","isPartOf":{"@id":"https:\/\/www.jamasoftware.com\/blog\/2022\/05\/30\/characteristics-of-excellent-requirements\/"},"author":{"name":"Karl Wiegers","@id":"https:\/\/www.jamasoftware.com\/#\/schema\/person\/e6a00f0ad439a5e1865476b36481aa47"},"headline":"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS)","datePublished":"2022-05-30T13:00:40+00:00","dateModified":"2023-01-13T00:46:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.jamasoftware.com\/blog\/2022\/05\/30\/characteristics-of-excellent-requirements\/"},"wordCount":1235,"image":{"@id":"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements#primaryimage"},"thumbnailUrl":"https:\/\/www.jamasoftware.com\/media\/2013\/03\/Brand_Erosion_Product_Recall.jpg","keywords":["best practices","software development"],"articleSection":["Requirements &amp; Requirements Management"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.jamasoftware.com\/blog\/2022\/05\/30\/characteristics-of-excellent-requirements\/","url":"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements","name":"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS) - Jama Software","isPartOf":{"@id":"https:\/\/www.jamasoftware.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements#primaryimage"},"image":{"@id":"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements#primaryimage"},"thumbnailUrl":"https:\/\/www.jamasoftware.com\/media\/2013\/03\/Brand_Erosion_Product_Recall.jpg","datePublished":"2022-05-30T13:00:40+00:00","dateModified":"2023-01-13T00:46:40+00:00","author":{"@id":"https:\/\/www.jamasoftware.com\/#\/schema\/person\/e6a00f0ad439a5e1865476b36481aa47"},"description":"Learn how can you distinguish excellent software requirements and a software requirements specification (SRS) from those that could cause problems.","breadcrumb":{"@id":"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements#primaryimage","url":"https:\/\/www.jamasoftware.com\/media\/2013\/03\/Brand_Erosion_Product_Recall.jpg","contentUrl":"https:\/\/www.jamasoftware.com\/media\/2013\/03\/Brand_Erosion_Product_Recall.jpg","width":1024,"height":512},{"@type":"BreadcrumbList","@id":"https:\/\/www.jamasoftware.com\/requirements-management-guide\/writing-requirements\/the-characteristics-of-excellent-requirements#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.jamasoftware.com\/"},{"@type":"ListItem","position":2,"name":"Characteristics of Effective Software Requirements and Software Requirements Specifications (SRS)"}]},{"@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\/3217","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=3217"}],"version-history":[{"count":0,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/posts\/3217\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/media\/44199"}],"wp:attachment":[{"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/media?parent=3217"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/categories?post=3217"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/tags?post=3217"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/industry?post=3217"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}