Requirement to Deploy Functions
Description
The Requirement to Deploy functions, informally referred to as “Build” enable the creation of high-value Product Releases for new and existing Digital Products that:
-
Are aligned with, and tested against, all new or modified requirements and features, including non-functional requirements such as security, risk, and regulatory requirements
-
Are deployable into standard catalogs, instantiated automatically for any kind of consumer
-
Are instrumented to support effective operational and financial measurement and management throughout the product lifecycle
-
Are packaged for immediate or future deployment through the Deploy value stream
-
Include all changes made to the Digital Product throughout its lifecycle
The Requirement to Deploy functions support the creation of automatable Release Packages for all types of market-facing, internal-facing and foundational products including custom-built software, cloud-native applications, configuration of vendor solutions such as package-based software (COTS), SaaS, infrastructure products, and platforms used to host or support other Digital Products.
The Requirement to Deploy functions support all product engineering activities including technical design, requirements management, backlog and implementation management, sourcing, solution development and configuration, software maintenance, testing, defect management, and release packaging.
The Requirement to Deploy functions are methodology-independent, supporting all approaches to creating Product Releases. The Product Backlog Items (e.g., feature, business requirement, non-functional) are abstractions of implementation tasks. They may originate as a Requirement, Portfolio Backlog Item, Policy, or Problem; or may arise directly within the implementation team during solution development work. Regardless of methodology, the Requirement to Deploy functional components and data objects remain constant.
The Requirement to Deploy functions contain the following functional components:
-
Develop functionality:
-
Product Backlog component
-
Requirement component
-
Product Design component
-
Source Control component
-
Pipeline component
-
Build Package component
-
Release Composition component
-
-
Test functionality:
-
Test component
-
Defect component
-
Related Value Streams
The following value streams use one or more functional components from the Requirement to Deploy functions:
-
Integrate
-
Release
-
Deploy
Business Benefits
The Requirement to Deploy functions describe a prescriptive framework of required functional components, integrations and data objects so organizations can deliver better value, sooner, and safer with lower costs while improving the productivity of the product teams.
The key benefits of using the Requirement to Deploy functions are:
-
Reduced lead time of delivering Product Backlog Items (e.g., new features or resolving Defects or Problems)
-
Increased deployment frequency of new Product Releases
By using the same automatable architecture across teams (and by implication, standardized tools for the most automatable parts of the development and release chains), release frequency can be made more predictable and manageable. By ensuring that the Product Release includes all the content needed for automated instantiation, the Requirement to Deploy functional and data models provide an architecture able to decrease the time from committed code to live systems to zero.
-
More complete and more traceable testing capability, which should result in higher change success rates and reduced security risks
-
End-to-end transparency and traceability from requirement and/or backlog item to Product Release
-
Reduced risk due to Security and Compliance by Design
The Requirement to Deploy functions maintain the association between Policy and Requirement data objects throughout the product lifecycle. This persistent traceability enables designers to ensure that all non-functional requirements are accounted for, so that products are designed in accordance with standards and policies from sources such as Security Management, Governance, Risk, & Compliance, Legal & Regulatory, Enterprise Architecture, and Financial Management.
-
Improved interoperability, communication, and collaboration among involved stakeholders and teams (including external vendors)
Applications and services may be sourced or developed in cooperation with many different parties, all of which work with their own processes and tooling. The Requirement to Deploy functional criteria define a standard for interoperability that enables digital organizations to enforce a consistent, standardized description of planned activities and interoperability of functions and data.
-
Standardized product development and delivery to the point where the reuse of service components is the norm
The Requirement to Deploy functions enable the creation of consistently defined libraries of reusable artifacts by prescribing how to manage Requirements, Source, documentation, test scripts, Service Monitors, and other artifacts of the service development lifecycle as standardized data objects. The explicitly defined interfaces of the Requirement to Deploy functions means that access to such libraries can be extended across multiple organizations and locations. When access to these libraries is integrated with implementation tools such as Integrated Development Environments (IDEs), and supported by management direction, a dramatic increase in reuse becomes a realistic goal.
-
Accelerate the sourcing and delivery of products and services through best practices such as:
-
Reuse – manage, maintain, and leverage reusable components and services
-
Automation – identify the core functional components and data required to streamline the Integrate value stream
-
Collaboration – use data to institutionalize collaboration of teams involved in the development lifecycle
-