Versions Compared
Version | Old Version 19 | New Version Current |
---|---|---|
Changes made by | ||
Saved on |
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Page Tree | ||||
---|---|---|---|---|
|
On this page:
Table of Contents |
---|

What makes a good common component?
Introduction
What general characteristics or ingredients does each component need to have for it to be considered “good”?
The big three are to
reduces costs
accelerates development
promotes consistency and supportability
If you think you have a "good" one and would like it added to the catalogue so that others can find it easier, you can request to add your common component on the common components page of digital.gov.bc.ca/common-components.
Reducing Costs
Cost Avoidance
The following are a few examples of how a components can create cost avoidance savings:
Built by one team, but used by more than one team
Deployed and hosted by one team
Enterprise licenses versus many individuals licences
A generic capability built that eliminates the need for reimplementing that function in all applications
Adding a self-self onboarding process to a Common Service that didn’t have one previously
Cost Savings
An innovation solution that allows for discontinuing an existing common business process or function entirely
Providing a free and open-source alternative to switch to from existing more expensive options
Openly accept contributions from other digital service teams
Accelerate Development
tbdComplete privacy and security compliance documentation that can simplify or eliminate the requirement for each person who uses the component
Eliminate approval processes and funding requests by providing the service for free
Create quickstart wizards and implementation examples
Promote Consistency and Supportability
tbdUse well documented APIs and allow access to them
Share data in supported formats that are interoperable with other components
Be aggressive in addressing technical debt
Monitor the value of everything you’ve built and are paying to maintain
Policy
Core Policy, Chapter [12.1.1] Lists the Digital Principles.
Principles 5 and 6 (Work in the open, Take and ecosystem approach) specifically relate to Common Components, but they are all useful for any software teams to be very familiar with.
Definition
In a software context, common components are among the list of building blocks that used to create digital services. Components specifically enable core capabilities within services. A single definition is not the goal because it can be many different things.
A core capability or service that can be utilized by public and private service delivery teams
A common component is platform should be the following
technology agnostic for the user
well documented
regularly updated by a dedicated team
quick to onboard to in a self-serve
manner
Self service is achieved when components are cataloged in a central repository with an interactive dashboard that provides information on active users and teams (maybe a GitHub repo link) and abides by well-defined standards of software maturity, where a service delivery team can easily see which components are best suited to solve their use case. This can be aided by sharing information on success stories, metrics, and data that can be used to evaluate product health.
Common components are built with the goal of providing one more tool that can be used in combination with other tools to solve any problem that may arise.
The objective of a common component is team should be to solve a significantly complex and frequently occurring problem faced by multiple teams for once and for all.
A component requires reliable data sources and must strive to provide consistent outputs
Ecosystems and Value Streams
Identifying Commonality
What are the other products or services that may be doing what I’m doing? Who can I collaborate with?
Your product or service may operate within many categories of software capabilities. Start with looking at just one of those categories that you think might benefit most from using common components.
Find out what ecosystems you may be contributing to or consuming from.
When you think about the service that your product delivers also consider what the larger value stream your service is a part of. Once you identify your value stream, take steps to connect with others who are there as well, and start examining the various points along the way where there are hand offs, and make plans to address them.
Agile Approaches
Where does the need for your Digital Service exist? Understand
Understanding who the user is not well understood, but I want to point out can be hard to understood. Let’s look at two distinct groups that occur commonly with Common Components. These two groups are not easy to focus on at the same time.
The Have’s and the Have Not’s:
Staff who are non-technical and have no funding to acquire technical people to help them
Product/Project Teams with technical resources who need to integrate their system with common components
How do we build Solutions to help both groups? (more to come in this section)
Start with the simplest user journey
Add new capabilities that have only a minimal increase in complexity
Hide and protect it as the product matures
When adding new capabilities, hide the complexity from those who don’t need it or want to see it
Market Awareness
Analytical Iterative Feedback, measuring the pulse on the three pillars and adjusting as necessary
Are customers satisfied that their problems are solved by the product you offer?
Regular evaluation and monitor of the problem you are solving for will give you the information necessary for doing internal adjustments based on user centric feedback
What threats and opportunities are presenting themselves from the industry?
Analytical Iterative Feedback, measuring the pulse on the three pillars and adjusting as necessary
internal adjustment based on user centric feedback
Trends and new technologies may arise that introduce new ways to solve the problem you are solving. Conducting analysis of these external factors and making adjustments is just as important as listening to users.