{"id":2945,"date":"2024-04-22T15:29:39","date_gmt":"2024-04-22T13:29:39","guid":{"rendered":"https:\/\/ict-improve.nl\/?post_type=knowledge_center&#038;p=2945"},"modified":"2024-04-22T15:33:32","modified_gmt":"2024-04-22T13:33:32","slug":"being-lean-in-regulated-development","status":"publish","type":"knowledge_center","link":"https:\/\/ict-improve.nl\/en\/knowledge_center\/being-lean-in-regulated-development\/","title":{"rendered":"Being LEAN in regulated development"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"2945\" class=\"elementor elementor-2945\" data-elementor-post-type=\"knowledge_center\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-1099b89a elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"1099b89a\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-62f5f578\" data-id=\"62f5f578\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-4d7f60fe elementor-widget elementor-widget-text-editor\" data-id=\"4d7f60fe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\n<h4><em>How requirements categorization can save effort during product development<\/em><\/h4>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-136a08e elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"136a08e\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c76a9cc\" data-id=\"c76a9cc\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e405f7a elementor-widget elementor-widget-image\" data-id=\"e405f7a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" src=\"https:\/\/ict-improve.nl\/wp-content\/uploads\/2024\/04\/4.png\" title=\"4\" alt=\"Categorization of Requirements\" loading=\"lazy\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-980bff5 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"980bff5\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-803c329\" data-id=\"803c329\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-0261794 elementor-widget elementor-widget-text-editor\" data-id=\"0261794\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p id=\"ember818\" class=\"ember-view reader-content-blocks__paragraph\"><em>Although iterative development has been well established as a valuable working method, organizations in regulated sectors (like automotive and healthcare), still struggle to reap their full benefits. With more than a decade&#8217;s worth of experience in applying iterative development in regulated environments, we want to share the most common issues we faced and the solutions that helped us overcome them. In order to help you to become more efficient and effective, the same way our clients did. The subject of today: eliminating waste caused by treating all requirements as equal.<\/em><\/p>\n<p id=\"ember819\" class=\"ember-view reader-content-blocks__paragraph\">Anyone who has ever worked in a heavily regulated environment will know the pain that comes with the level of scrutiny placed on every move, and how those rules can sometimes turn draconian &#8211; harming our ability to do our job, rather than helping us build safe and effective products. One area where we have seen organizations throw out the baby with the proverbial bathwater, is while writing requirements, and how to handle them.<\/p>\n<p id=\"ember820\" class=\"ember-view reader-content-blocks__paragraph\">To clarify what we mean, we will be visiting some examples that we have encountered in the real world. These examples might seem trivial but ended up leading to <strong>significant time wasted on verification (and documentation), <\/strong>because the organization didn&#8217;t properly consider the reason <em>why<\/em> these requirements got defined. Because as it turns out, not all requirements are created equal&#8230;<\/p>\n<h3 id=\"ember821\" class=\"ember-view\">\u201cThe software should be developed in compliance with ISO 62304\u201d<\/h3>\n<p id=\"ember822\" class=\"ember-view reader-content-blocks__paragraph\">Our first example is about an organization that included in their system requirements that the software should have been developed in compliance with ISO 62304. At face value nothing weird for the development of medical devices, as it describes a standard for the development of medical devices.<\/p>\n<p id=\"ember823\" class=\"ember-view reader-content-blocks__paragraph\">Until you realize that the requirement is defined in a <em>system <\/em>requirements document. While the standard applies to the <em>entire development process<\/em>. Verification of system requirements happens during the verification phase, but that phase <em>is not the end of that process<\/em>. Or to visualize it:<\/p>\n<div class=\"reader-image-block reader-image-block--resize\">\n<figure class=\"reader-image-block__figure\">\n<div class=\"ivm-image-view-model \">\n<div class=\"ivm-view-attr__img-wrapper display-flex\"><img decoding=\"async\" id=\"ember824\" class=\"ivm-view-attr__img--centered reader-image-block__img evi-image lazy-image ember-view\" src=\"https:\/\/media.licdn.com\/dms\/image\/D4E12AQGftuMqHhaSAQ\/article-inline_image-shrink_1500_2232\/0\/1713361835496?e=1719446400&amp;v=beta&amp;t=_FLbGaASGwqwhNN_dnl-GjxwzOyH4YyaZof19of8x44\" alt=\"\" \/><\/div>\n<\/div>\n<\/figure>\n<\/div>\n<p>\u00a0<\/p>\n<p id=\"ember825\" class=\"ember-view reader-content-blocks__paragraph\"><span style=\"font-size: 18px;\">The result of this mismatch was <\/span><em style=\"font-size: 18px;\">a lot of effort <\/em><span style=\"font-size: 18px;\">spent between QA and verification discussing how to create the evidence needed for its verification. At its worst, the idea was to create a defect that described the gap during system verification, leave that open with a formally documented explanation as to why its related failed test did not block transitioning to the next developmental phase, and \u201cfix\u201d the open defect at end of development by writing an addendum to the test report where we provide the remaining verification evidence required&#8230;<\/span><\/p>\n<h3 id=\"ember827\" class=\"ember-view\">\u201cThe color of the system should be green RAL 6019\u201d<\/h3>\n<p id=\"ember828\" class=\"ember-view reader-content-blocks__paragraph\">Another real-world example was a system requirement stating that the color of the system should be green RAL 6019.<\/p>\n<p id=\"ember829\" class=\"ember-view reader-content-blocks__paragraph\">Even though the requirement is SMART, it still managed to lead to a lot of discussion. Some people advocated for verifying the device&#8217;s BOM to see which paint was used. Others argued that this wouldn&#8217;t be enough to prove the system met the requirement, because <em>using <\/em>a certain color doesn&#8217;t necessarily mean that the system <em>has<\/em> that color. This cascaded into a discussion on precision, the impact of circumstances (conditional lighting) and whether we shouldn&#8217;t just hire a professional lab to measure it. Those are expensive and time-consuming though, and how would we handle logistics? At this point, some of us started to wonder: aren&#8217;t we making things <em>way harder than they need to be<\/em>? Which \u2013 you guessed it \u2013 led to even more discussion&#8230;<\/p>\n<h3 id=\"ember830\" class=\"ember-view\">\u201cServiceable part X should have a lifespan of X years\u201d<\/h3>\n<p id=\"ember831\" class=\"ember-view reader-content-blocks__paragraph\">Our final example refers to a serviceable part requiring a lifespan of a certain number of years. Again: a type of requirement that a lot of us with experience in hardware development expect to see \u2013 we all want hardware that requires limited maintenance, and to have maintenance be predictable. So it makes sense to write something about the reliability of those parts.<\/p>\n<p id=\"ember832\" class=\"ember-view reader-content-blocks__paragraph\">Even if we ignore the issue with phrasing (X years <em>with what probability<\/em>?), proving any kind of reliability numbers will take considerable effort. Even when we throw statistical significance out of the window and use a sample size of 1, the time needed to achieve the specified load (x years) eclipses the time available for formal design verification. So now what? Failed test, defect and additional documentation on why failing this requirement does not block progress? This one can&#8217;t be retroactively fixed when we reach the end of development, so should we then just accept a failed requirement in our formal submission? Sounds like a terrible plan, but what is the alternative?<\/p>\n<h3 id=\"ember833\" class=\"ember-view\">Not all requirements are created equal<\/h3>\n<p id=\"ember834\" class=\"ember-view reader-content-blocks__paragraph\">The given examples are practical demonstrations of what happens when creating requirements without properly considering context. Rather than tailoring the way we treat requirements based on their purpose and context, we treat all of them as equals: the same level of scrutiny, at the same development phase, verified by the same people.<\/p>\n<p id=\"ember835\" class=\"ember-view reader-content-blocks__paragraph\">In reality, the <strong>purpose of requirements can vary heavily<\/strong>, and with each purpose, a different approach and level of scrutiny is required. Based on our experiences, we suggest creating <strong>three explicit categorizations of requirements<\/strong>, each with its own distinct characteristics:<\/p>\n<p id=\"ember836\" class=\"ember-view reader-content-blocks__paragraph\"><strong>1.\u00a0\u00a0\u00a0\u00a0\u00a0 Product requirements<\/strong> Requirements that define the intended use of a product or support the evaluation of whether the product is safe and effective in its use. In other words, it describes aspects of the product that are relevant for formal documentation. Product requirements are part of the formal documentation and their verification and validation coverage is mandatory.<\/p>\n<p id=\"ember837\" class=\"ember-view reader-content-blocks__paragraph\">Product requirements are formally treated \u2018all the way\u2019 (full change control, full tracing, full verification and validation).<\/p>\n<p id=\"ember838\" class=\"ember-view reader-content-blocks__paragraph\"><strong>2.\u00a0\u00a0\u00a0\u00a0\u00a0 Process requirements<\/strong> Requirements that are enforced by regulatory guidelines and relate to processes that are applicable anywhere in the lifecycle of the product. In other words, it describes aspects of the process that are relevant to the creation and maintenance of formal documentation. Process requirements are part of the formal documentation but are verified and validated outside of the scope of design conformance (or testing). Instead, their compliance is proven by Quality Assurance and\/or the Regulatory Affairs Department.<\/p>\n<p id=\"ember839\" class=\"ember-view reader-content-blocks__paragraph\"><strong>3.\u00a0\u00a0\u00a0\u00a0\u00a0 Business requirements:<\/strong> Requirements that describe a characteristic or capability that does not meet the definition of a product requirement and \u2013 if omitted \u2013 could result in development creating an economically unviable product. Business requirements are optional for formal documentation, but available for review when requested. Verification and validation coverage is encouraged, but optional (thus formally not required).<\/p>\n<p id=\"ember840\" class=\"ember-view reader-content-blocks__paragraph\">With these categorizations in mind, let&#8217;s revisit our examples to see what would have changed if we had applied these categorizations from the start, and adjusted our approach accordingly:<\/p>\n<p id=\"ember842\" class=\"ember-view reader-content-blocks__paragraph\"><strong>The example of meeting a certain regulatory standard<\/strong> fits the category of a process requirement. Rather than trying to force a square peg in a round hole, the requirement should have been removed from the system requirements and moved to the appropriate QA &amp; regulatory document(s). This removes the need for additional documentation, and also ensures that verification is left to the QA &amp; regulatory experts.<\/p>\n<p id=\"ember844\" class=\"ember-view reader-content-blocks__paragraph\"><strong>The example of the device&#8217;s color<\/strong> requires answering an additional question: what needs are being met by making the device a certain color? In our example, it ended up being about branding: the color was important because it matched the color scheme of the company as a whole. As such, the requirement becomes a business requirement, rendering the entire basis on which things got complicated, moot. Since the safety and effectiveness of the device don&#8217;t rely on the color, a simple BOM check, or even a subjective, visual check by the business would be enough. Additionally, the test doesn&#8217;t need to be included in the (formal) verification evidence, thus requiring very minimal effort.<\/p>\n<p id=\"ember846\" class=\"ember-view reader-content-blocks__paragraph\"><strong>The lifespan of the serviceable part<\/strong> is also a business requirement for similar reasons. Sure, a device has to be reliable <em>enough<\/em> for it to be safe and effective, but that is implicitly covered during validation. It would be more fitting to see this requirement as a way to ensure economic viability. By classifying the requirement as a business requirement, the in-depth verification can occur after market introduction, making the requirement more of an intent that needs to be taken into account during development and which can be verified through more subjective means, outside of the scrutiny of regulatory bodies.<\/p>\n<h3 id=\"ember847\" class=\"ember-view\">Conclusion<\/h3>\n<p id=\"ember848\" class=\"ember-view reader-content-blocks__paragraph\">As you can see, applying the categorization of requirements could have easily reduced the effort spent on these requirements, meaning lower costs and faster delivery. As a bonus: you will have a better overview of your requirements and the submission process will go much smoother. As stated in the introduction, one <em>could<\/em> consider this all to be obvious and trivial, but in practice it isn&#8217;t.<\/p>\n<p id=\"ember849\" class=\"ember-view reader-content-blocks__paragraph\">As said: these examples are all real-world examples of challenges we&#8217;ve seen with customers. Regardless of your opinion on how the requirements were initially handled, it was the introduction of these categories that helped steer the conversations within those organizations in the right direction. And the amount of effort saved is also nothing to sneeze at. For example: at one customer, this categorization of requirements resulted in a reduction of requirements <em>in the scope of formal verification and submission<\/em> (i.e. the requirements that take up the most effort and are scrutinized the hardest) from ca. 200 to ca. 60. As it turns out, sometimes equality just isn&#8217;t the answer.<\/p>\n<p id=\"ember850\" class=\"ember-view reader-content-blocks__paragraph\"><strong>Would you like some help?<\/strong><\/p>\n<p id=\"ember851\" class=\"ember-view reader-content-blocks__paragraph\">Feel free to contact us:<\/p>\n<ul>\n<li id=\"ember852\" class=\"ember-view reader-content-blocks__paragraph\"><a id=\"ember853\" class=\"ember-view\" href=\"https:\/\/www.linkedin.com\/in\/patrickduisters\/\" target=\"_blank\" rel=\"noopener\">Patrick Duisters<\/a><\/li>\n<li id=\"ember854\" class=\"ember-view reader-content-blocks__paragraph\"><a id=\"ember855\" class=\"ember-view\" href=\"https:\/\/www.linkedin.com\/in\/johanvanberkel\/\" target=\"_blank\" rel=\"noopener\">Johan Van Berkel<\/a><\/li>\n<\/ul>\n<p id=\"ember856\" class=\"ember-view reader-content-blocks__paragraph\"><strong>Would you like to know more about how to create good requirements?<\/strong><\/p>\n<p id=\"ember857\" class=\"ember-view reader-content-blocks__paragraph\">We offer the training Capture Agile Requirements by Example (CARE) and a Masterclass to BDD Specialist. You can enroll via <a class=\"app-aware-link \" href=\"https:\/\/ict-improve.nl\/trainingen\/\" target=\"_self\" data-test-app-aware-link=\"\">our website<\/a>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>How requirements categorization can save effort during product development Although iterative development has been well established as a valuable working method, organizations in regulated sectors (like automotive and healthcare), still struggle to reap their full benefits. With more than a decade&#8217;s worth of experience in applying iterative development in regulated environments, we want to share [&hellip;]<\/p>\n","protected":false},"featured_media":0,"parent":0,"menu_order":0,"template":"","meta":{"_acf_changed":true,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}}},"class_list":["post-2945","knowledge_center","type-knowledge_center","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/ict-improve.nl\/en\/wp-json\/wp\/v2\/knowledge_center\/2945","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ict-improve.nl\/en\/wp-json\/wp\/v2\/knowledge_center"}],"about":[{"href":"https:\/\/ict-improve.nl\/en\/wp-json\/wp\/v2\/types\/knowledge_center"}],"version-history":[{"count":0,"href":"https:\/\/ict-improve.nl\/en\/wp-json\/wp\/v2\/knowledge_center\/2945\/revisions"}],"wp:attachment":[{"href":"https:\/\/ict-improve.nl\/en\/wp-json\/wp\/v2\/media?parent=2945"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}