{"id":3447,"date":"2013-08-30T07:37:28","date_gmt":"2013-08-30T14:37:28","guid":{"rendered":"https:\/\/www.jamasoftware.com\/?p=3447"},"modified":"2023-01-12T16:56:41","modified_gmt":"2023-01-13T00:56:41","slug":"the-customer-development-partnership-part-3","status":"publish","type":"post","link":"https:\/\/www.jamasoftware.com\/legacy\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/","title":{"rendered":"The Customer\u2013Development Partnership, Part 3"},"content":{"rendered":"<p>I conclude this three-part series on the customer\u2013development partnership by elaborating on the Requirements Bill of Responsibilities for Software Customers that I presented in part 1.<\/p>\n<h2>Responsibility #1: To educate analysts and developers about your business<\/h2>\n<p>BAs depend on you to educate them about your business concepts and terminology. The intent is not to transform BAs into domain experts, but to help them understand your problems and objectives. Don\u2019t expect BAs to grasp the nuances and implicit aspects of your business. BAs aren\u2019t likely to be aware of knowledge that you and your peers take for granted. Unstated assumptions about this knowledge can lead to problems later on.<\/p>\n<h2>Responsibility #2: To spend the time to provide and clarify requirements<\/h2>\n<p>Customers are busy people, and those who are involved in developing requirements are often among the busiest. Nonetheless, you have a responsibility to invest time in workshops, brainstorming sessions, interviews, and other requirements-elicitation activities. Sometimes the BA might think she understands a point you made, only to realize later that she needs further clarification. Please be patient with this iterative approach to developing and refining the requirements. It is the nature of complex human communication and a key to software success. Be tolerant of what might appear to you to be dumb questions, as a good BA asks questions that get you talking and thinking.<\/p>\n<h2>Responsibility #3: To be specific and precise about requirements<\/h2>\n<p>It is tempting to leave the requirements vague and fuzzy because pinning down details is tedious and time-consuming. At some point during development, though, someone must resolve the ambiguities and imprecisions. You are the best person to make those decisions. Otherwise, you\u2019re relying on the developers to guess correctly.<\/p>\n<p>It\u2019s fine to temporarily include TBD (to be determined) markers in the SRS to indicate that additional research, analysis, or information is needed. Sometimes, though, people use TBD because a specific requirement is difficult to resolve and no one wants to tackle it head-on. Try to clarify the intent of each requirement so the BA can express it accurately in the SRS.<\/p>\n<h2>Responsibility #4: To make timely decisions<\/h2>\n<p>Just as when a contractor builds a custom home, the BA will ask you to make many choices and decisions. These decisions include resolving inconsistent requests received from multiple customers, choosing between conflicting quality attributes, and evaluating the accuracy of information. Customers who are authorized to make such decisions must do so promptly when asked. The developers often can\u2019t proceed with confidence until you render your decision, so time spent waiting for an answer can delay progress.<\/p>\n<h2>Responsibility #5: To respect a developer\u2019s assessment of cost and<br \/>\nfeasibility<\/h2>\n<p>All software functions have a cost, and developers are in the best position to estimate those costs (although not all developers are skilled estimators). Some features that you want included might not be technically feasible or might be surprisingly expensive to implement. I learned long ago that there is little correlation between how difficult it seems like something ought to be to do in software and how hard it really is to implement. Certain requirements might demand unattainable performance in the operating environment, or they might require access to data that is simply not available to the system. The developer can be the bearer of bad news about feasibility or cost, and you should respect that judgment.<\/p>\n<p>Sometimes you can rewrite requirements in a way that makes them attainable or cheaper. For example, asking for an action to take place \u201cinstantaneously\u201d isn\u2019t feasible, but \u201cwithin 50 milliseconds\u201d might be achievable.<\/p>\n<h2>Responsibility #6: To set requirement priorities<\/h2>\n<p>Few projects have the time and resources to implement every desirable bit of functionality. Determining which capabilities are essential, which are useful, and which ones the customers can live without is an important part of requirements development. You have a lead role in setting those priorities, because developers can\u2019t determine how important every requirement is to the customers. Developers should provide information about the cost and technical risk of each requirement to help determine final priorities. When you establish priorities, you help ensure that developers deliver the maximum value at the lowest cost and at the right time.<\/p>\n<p>No one likes to hear that something he wants can\u2019t be completed within the project bounds, but that\u2019s just a reality. The project\u2019s decision-makers will have to elect whether to reduce project scope based on priorities or to extend the schedule, provide additional funds or people, or compromise on quality.<\/p>\n<h2>Responsibility #7: To review requirements documents and evaluate prototypes<\/h2>\n<p>Peer reviews of requirements are among the most valuable software quality activities. Having customers participate in reviews is the only way to evaluate whether the requirements demonstrate the desired characteristics of being complete, correct, necessary, and so on. A review is also an opportunity for customer representatives to give the BAs feedback about how well their work is meeting the project\u2019s needs. If you aren\u2019t confident that the documented requirements are accurate, tell the people responsible as early as possible and provide suggestions for improvement.<\/p>\n<h2>Responsibility #8: To promptly communicate changes to the requirements<\/h2>\n<p>Continually changing requirements pose a serious risk to the development team\u2019s ability to deliver a high-quality product on schedule. Change is inevitable and often beneficial, but the later in the development cycle a change is introduced, the greater its impact. Changes can cause expensive rework and schedules can slip if new functionality is demanded after construction is well under way. Notify the BA with whom you are working as soon as you become aware that you need to change the requirements. Incremental development approaches make it easier to incorporate changes during development than trying to perfect the requirements and cast them in concrete early on.<\/p>\n<h2>Responsibility #9: To follow the development organization\u2019s change process<\/h2>\n<p>To minimize the negative impact of change, follow the project\u2019s defined change control process. This ensures that requested changes are not lost, the impact of each requested change is analyzed, and all proposed changes are considered in a consistent way. As a result, the business stakeholders can make sound business decisions to incorporate certain changes at the right time.<\/p>\n<h2>Responsibility #10: To respect the requirements engineering processes the analysts use<\/h2>\n<p>Gathering and validating requirements are among the greatest challenges in software development. There is a rationale behind the approaches that the BAs use. Although you might become frustrated with the requirements activities, the time spent developing the requirements is an excellent investment. The process will be less painful if you understand and respect the techniques the BAs use for requirements development. Feel free to ask BAs to explain why they are requesting certain information or asking you to participate in some requirements-related activity.<\/p>\n<p>To apply the ideas I\u2019ve presented in this series of articles, I suggest that BAs and key customers discuss the Bill of Rights to learn whether the customers feel they are not receiving any of their rights. Discuss the Bill of Responsibilities to reach agreement as to which responsibilities the customers will accept. Modify the Bill of Rights and Bill of Responsibilities as appropriate so that all parties agree on how they will contribute to a collaborative working relationship. You\u2019ll be glad you did.<\/p>\n<p>Also read\u00a0<a title=\"The Customer-Development Partnership, Part 1\" href=\"https:\/\/www.jamasoftware.com\/blog\/the-customer-development-partnership-part-1\">The Customer-Development Partnership, Part 1<\/a><\/p>\n<p>Also read\u00a0<a title=\"The Customer-Development Partnership, Part 2\" href=\"https:\/\/www.jamasoftware.com\/blog\/the-customer-development-partnership-part-2\">The Customer-Development Partnership, Part 2<\/a><\/p>\n<p><i 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<\/i><i style=\"font-size: 13px; line-height: 19px;\"><a href=\"http:\/\/www.processimpact.com\">http:\/\/www.processimpact.com<\/a><\/i><i style=\"font-size: 13px; line-height: 19px;\">.\u00a0 Enjoy these free\u00a0<\/i><i style=\"font-size: 13px; line-height: 19px;\"><a href=\"https:\/\/www.jamasoftware.com\/resources\/\">requirements management resources<\/a><\/i><i style=\"font-size: 13px; line-height: 19px;\">.<\/i><\/p>\n<p>&nbsp;<\/p>\n<input class=\"fooboxshare_post_id\" type=\"hidden\" value=\"3447\"\/>","protected":false},"excerpt":{"rendered":"<p>I conclude this three-part series on the customer\u2013development partnership by elaborating on the Requirements Bill of Responsibilities for Software Customers that I presented in part 1. Responsibility #1: To educate analysts and developers about your business BAs depend on you to educate them about your business concepts and terminology. The intent is not to transform [&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":[72],"tags":[51],"industry":[],"class_list":["post-3447","post","type-post","status-publish","format-standard","hentry","category-product-development-and-management","tag-business-requirements"],"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>The Customer\u2013Development Partnership, 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\/08\/30\/the-customer-development-partnership-part-3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Customer\u2013Development Partnership, Part 3\" \/>\n<meta property=\"og:description\" content=\"I conclude this three-part series on the customer\u2013development partnership by elaborating on the Requirements Bill of Responsibilities for Software Customers that I presented in part 1. Responsibility #1: To educate analysts and developers about your business BAs depend on you to educate them about your business concepts and terminology. The intent is not to transform [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/\" \/>\n<meta property=\"og:site_name\" content=\"Jama Software\" \/>\n<meta property=\"article:published_time\" content=\"2013-08-30T14:37:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-13T00:56:41+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=\"6 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\\\/08\\\/30\\\/the-customer-development-partnership-part-3\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/08\\\/30\\\/the-customer-development-partnership-part-3\\\/\"},\"author\":{\"name\":\"Karl Wiegers\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#\\\/schema\\\/person\\\/e6a00f0ad439a5e1865476b36481aa47\"},\"headline\":\"The Customer\u2013Development Partnership, Part 3\",\"datePublished\":\"2013-08-30T14:37:28+00:00\",\"dateModified\":\"2023-01-13T00:56:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/08\\\/30\\\/the-customer-development-partnership-part-3\\\/\"},\"wordCount\":1277,\"keywords\":[\"business requirements\"],\"articleSection\":[\"Product Development &amp; Management\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/08\\\/30\\\/the-customer-development-partnership-part-3\\\/\",\"url\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/08\\\/30\\\/the-customer-development-partnership-part-3\\\/\",\"name\":\"The Customer\u2013Development Partnership, Part 3 - Jama Software\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#website\"},\"datePublished\":\"2013-08-30T14:37:28+00:00\",\"dateModified\":\"2023-01-13T00:56:41+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/#\\\/schema\\\/person\\\/e6a00f0ad439a5e1865476b36481aa47\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/08\\\/30\\\/the-customer-development-partnership-part-3\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/08\\\/30\\\/the-customer-development-partnership-part-3\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.jamasoftware.com\\\/blog\\\/2013\\\/08\\\/30\\\/the-customer-development-partnership-part-3\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.jamasoftware.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Customer\u2013Development Partnership, 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":"The Customer\u2013Development Partnership, 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\/08\/30\/the-customer-development-partnership-part-3\/","og_locale":"en_US","og_type":"article","og_title":"The Customer\u2013Development Partnership, Part 3","og_description":"I conclude this three-part series on the customer\u2013development partnership by elaborating on the Requirements Bill of Responsibilities for Software Customers that I presented in part 1. Responsibility #1: To educate analysts and developers about your business BAs depend on you to educate them about your business concepts and terminology. The intent is not to transform [&hellip;]","og_url":"https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/","og_site_name":"Jama Software","article_published_time":"2013-08-30T14:37:28+00:00","article_modified_time":"2023-01-13T00:56:41+00:00","author":"Karl Wiegers","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Karl Wiegers","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/#article","isPartOf":{"@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/"},"author":{"name":"Karl Wiegers","@id":"https:\/\/www.jamasoftware.com\/#\/schema\/person\/e6a00f0ad439a5e1865476b36481aa47"},"headline":"The Customer\u2013Development Partnership, Part 3","datePublished":"2013-08-30T14:37:28+00:00","dateModified":"2023-01-13T00:56:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/"},"wordCount":1277,"keywords":["business requirements"],"articleSection":["Product Development &amp; Management"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/","url":"https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/","name":"The Customer\u2013Development Partnership, Part 3 - Jama Software","isPartOf":{"@id":"https:\/\/www.jamasoftware.com\/#website"},"datePublished":"2013-08-30T14:37:28+00:00","dateModified":"2023-01-13T00:56:41+00:00","author":{"@id":"https:\/\/www.jamasoftware.com\/#\/schema\/person\/e6a00f0ad439a5e1865476b36481aa47"},"breadcrumb":{"@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.jamasoftware.com\/blog\/2013\/08\/30\/the-customer-development-partnership-part-3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.jamasoftware.com\/"},{"@type":"ListItem","position":2,"name":"The Customer\u2013Development Partnership, 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\/3447","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=3447"}],"version-history":[{"count":0,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/posts\/3447\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/media?parent=3447"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/categories?post=3447"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/tags?post=3447"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.jamasoftware.com\/legacy\/wp-json\/wp\/v2\/industry?post=3447"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}