Continuously Explore and Execute on Project Synergies
By Vijay Narayanan
Managing delivery risk is one of the key risks with pursuing systematic reuse. How can your teams mitigate that risk yet make progress on the reuse front? The trick is to keep moving – pro-actively, continuously explore synergies across projects and align project delivery.
Here are some common areas to explore areas of synergy across projects:
- Requirements – this is the most overlooked part of systematic reuse – if multiple projects exhibit common/similar/overlapping requirements – this is the most rewarding and domain-aligned minefield of reuse candidates. Focus not only on technical / infrastructure requirements but also domain specific ones including logic specific to a region/country – internationalization and locale-specific components are examples.
Integration across systems – common message formats, alerting, exception handling, monitoring – several projects will need to address these areas.
Providing data that is used again and again – whether it is static table code sets or common repository of customer information – data services and access interfaces can be leveraged across projects quite easily.
Binding components that act as the bridge or “glue” between open-source/proprietary software with your internal enterprise are invaluable reuse candidates.
Organizing and accessing test data – many projects have bespoke approaches for sourcing, organizing, and integrating test data into unit and regression tests. Synergies will save valuable time during testing but also is quite often necessary as functionality starts to span across multiple areas within the domain.
Alignment on delivery may not always be possible – business priorities do and need to take precedence – but that shouldn’t stop your teams from exploring these routes.
Vijay Narayanan is a software professional building reusable data services and business process automation components. He has worked on several software projects ranging from single user systems to large, distributed, multi-user platforms with several services. He’s a speaker on software reuse, agile development, and Service Oriented Architecture (SOA), as well as a contributing author on Agile. Vijay runs a professional blog: agile and software reuse at http://artofsoftwarereuse.com/.