Figure 1 overviews the internal workflow performed by an asset management team. Much, but not all, of their work is focused on working with and supporting teams.
Let’s work through the primary activities performed by an asset management team:
- Guide teams in application of asset. An important activity for asset engineers is to provide guidance to teams regarding what assets are available for (re)use, how to go about accessing and applying the assets, and educating teams in why doing so is important to both the team and to your organization. In the case of a solution delivery team, their architecture owner will collaborate with the asset management team to bring an asset engineer into the team at the right time to help.
- Obtain assets. Asset engineers will obtain potential assets from a variety of sources, including from the marketplace and from internal teams. Based on the various organizational roadmaps, and the needs of the teams that they’re working with, the asset management team will often work with teams to identify and obtain the appropriate assets from the marketplace via your vendor management team. The goal is to find assets that fit the needs of individual teams in a way that aligns with the direction of the organization. Furthermore, asset engineers tend to monitor what teams are doing, often by working closely with your organization’s enterprise architecture team and the architecture owners on delivery teams, to help them identify potentially reusable assets. When a team believes it has built something that is potentially reusable by others, or when the asset engineers believe they have done so, then the asset engineers work with the team to understand and harvest that asset.
- Publish assets. An asset is potentially reusable when it is of high quality, it is appropriately documented, one or more examples exist of how to use it, and it is findable by others. The publishing process ensures that all of these criteria are true. The asset engineers will do the work to publish the asset, refactoring and documenting it as needed and harvesting any usage examples if available (and creating some when not). After doing so, they will save the asset and its related supporting artifacts into your organization’s asset repository, announcing the availability of the new asset after doing so.
- Configure asset for specific use. Asset engineers will often work with a team to help them to configure an asset for specific use. The goal is to make it as easy as possible for others to (re)use existing assets.
- Integrate asset(s) into a solution. Asset engineers will often work with delivery teams to integrate a reusable asset into their solution, once again to make it as easy as possible for teams to reuse existing assets. Interestingly, an important aspect of harvesting an asset for reuse is to help the source team to integrate the improved version of the asset back into their solution. This helps to increase the likelihood that teams will offer up potential assets for harvesting and publishing.
- Evolve assets. Assets need to evolve over time to reflect changing requirements and implementation technologies. The implication is that the owners of the assets, often the asset management team, will need to evolve their assets, publish new versions, and deprecate old versions. This is work that must be funded and supported properly.