Would you want to buy a new hammer every time you need to drive a nail? You would soon end up with hundreds of hammers of all colors and sizes, when all you need is one!
Similarly, when creating architecture (or solution) building blocks, a clear headed focus is needed to develop and promote its reuse. It is important to agree upfront that the reason for creating a building block is to promote reuse, and not just solve the problem at hand.
For example – Lets assume that you have created a building block that brokers messages between applications and allows for easy application integration, while maintaining loose coupling. You (and your team) went all the way and evaluated various message brokers in the market, deciding to use RMB – Rajeev Message Broker! 🙂 It supports publish-subscribe, request-reply and a lot of other message patterns. The project team loves it as it makes their life easy. You are a hero and they throw you a party!
If you are an Enterprise Architect, the fun has barely just started. You are already thinking of proliferating the adoption of this reusable asset, this solution building block that has been created. Any other project needing similar capability does not need to buy its own hammer, err.. application integration tool. Reusing an established building block will result in faster time-to-market, lower implementation cost, lower implementation risk and higher reliability.
Remember, don’t just USE…. REUSE!