Often times, developers and technical leads don’t know what reusable assets are already available. In the same vein, they may not be aware of what is already being planned – either refactorings on an existing asset or an entirely new one in keeping with your overall vision. Recognition is much easier than recall and one tool that I have successfully used in the past is the AssetMap. It is a concise artifact that is made up of two pages – one page with technical assets and another with business ones.
Where do you use this artifact? Fill it up and customize per your team’s needs and distribute it to your teams. Make sure every developer, technical lead, and designer has it. Print out and give it to your new hires as well! More importantly, ensure that they are aware the purpose behind the artifact and use it to implement user stories/business requirements. You can also place it as a document on the Intranet with links to individual asset details. The intent is to have the AssetMap as the summary artifact and not contain every bit of detail about every asset.
- Data Assets (core data entities such as customer, account, product, etc. as well as reference data such as currencies/country codes/zip codes etc.)
- Business Assets (business orchestration services, task services,
- Decision Assets (including rulesets, eligibility criteria, policies)
- Legacy Assets (capabilities in legacy systems that are reusable or have reuse potential)
- Business Workflows (approval chains, human/system workflow that can be reused in more complex flows)
and some candidate technical assets:
- legacy integration (e.g. service adapters when invoking CICS modules)
- reliable messaging
- event processing
- testing utilities
- data transformation
- notification (to send email messages for example)
- error handling
- data binding
The above list isn’t exhaustive and is meant to be a starting point for your teams. Here is a candidate AssetMap template that I have used in the past – feel free to customize it to suit your needs. For instance, you could add notations to indicate asset type (whether it is a service, library, component, UML diagram etc.) and readiness (deployed, being developed, needs bug fixes, etc.).