Context
Do you have an understanding of where your component fits?
Who is it for?
If you are building something with the intention of it being used as a common component then consider the following:
Expand | ||
---|---|---|
| ||
While it is good to work in the open and be transparent, all too often it is left up to the team that is looking at a open sourced product to sift through the code to find the pieces that they can reuse. The effort to find the reusable code and repurpose it to fit with your product offsets the value obtained for developers who typically prefer to make it from scratch themselves anyways. Even a small barrier in this space will be enough to prevent success towards the goal of avoiding duplication and achieving the ecosystem approach. |
Expand | ||
---|---|---|
| ||
As you consider how users are wanting to consume your product to gain value from it, selecting the right delivery method will help you to maximize the value while limiting overhead. These delivery methods are built on the pillars of success for achieving reuse. |
title | Capability level |
---|
Understanding the capability level will help guide your work to identify user groups and help you determine the scope and boundary of the product you are building.
Core
Core capabilities are the ones that users will ask for by name.
Supporting
Supporting capabilities are the ones that service providers need to implement for the core ones to work.
Service Management
Service management capabilities are the ones that help you operate the administrative work back stage.
Service Quality
Service quality capabilities are the ones that help you have a good reputation because your software is reliable, secure, privacy preserving and high performing.Prioritization Criteria
Should we build it?
How do we decide?
The following questions may help Product Owners to guide the effort of their team. These questions are not meant to be a checklist, rather they are tools to help you think critically about your roadmap and backlog and about the individual stories. These question may also help team members to make certain technical decisions and determine how to handle technical debt.
Expand | ||
---|---|---|
| ||
|
Expand | ||
---|---|---|
| ||
|
This model looks at the logical breakdown of the capabilities of a software product. Each of these capability areas may contain many functions:
Capabilities
Enablement Type(s)
Service Delivery Step(s)
Expand | ||
---|---|---|
| ||
Form Builder Tool Form Versioning Form Publishing Form Submission Lists and Details Form Settings Management Form Permissions and Security Submission Status Data Export and API Access Event Triggered Service Extensions |
Foundational, Enabler
Submission
Payment and Reconciliation
Login, Identity and Digital Trust
Template and File Mgmt
Subscription/Notification
Additive
Discovery
Workflow and Event Streaming
Multiplicative
Processing
API Access Management
Visualization Dashboards
Password Management & Automation
Registry Aggregation (Backstage)
Prototyping Kits
DevOps and Hosting
When thinking about what the list of all common components are, it might be helpful to consider that there are multiple ways to group things to create this list.
Capability Categorization Models
Expand | ||
---|---|---|
| ||
This model looks at the journey of a user: A. discovering a service is available, Note that in the model one service may initiate the
|
Expand | ||
---|---|---|
| ||
FOUNDATIONAL: Starting with Foundational capabilities ensures there is demand and that you are solving problems for users.
ENABLERS: Factor out the enabler capabilities as new common components.
ADDITIVE: Looking at the user journey where there are system handoffs work to add connections to solutions for the next chunk of work in the user journey.
MULTIPLICATIVE: As it will not be possible to scale with just additive approaches, we will need to implement event triggered messaging and subscription services that can enable many systems to connect with each other without those services being tightly coupled.
|
title | 3. Product Model |
---|