(1) Reusability
Reusability is achieved by having a single implementation base of
common functionality, whether it is at the platform layer, or at the
business process layer.
Common tasks like Encryption, Transport, Logging, Database Access,
Security, etc need to be uniform across the enterprise in order to be
useful. The right place for these components is an Enterprise Class
Library that is available to all developers. The use of an Enterprise Class Library (ECL) that
incorporates these features should be made Mandatory, so every
developer does not have to come up with his own implementation and
strategy for these. Explore and identify the existence of an Enterprise
Class Library. If there isn’t one, inform your manager and
collaborate with other developers to come up with one. If there is an
ECL that already exists then get a copy of it on your computer and
explore it. If you find functionality that is inadequate or missing,
you should incorporate this into the ECL so not only you, but the
entire team can use it.
Cross Platform ECL will require some extra work and wrapping if you
work across a multitude of platforms, but that is where Service
Oriented Architecture (SOA) steps in. The goal is to drive Business
Process Productivity instead of spending time in Platform Engineering,
or re-engineering the same functionality on multiple platforms. For
example, an Asynchronous logging routine written in C# can be
encapsulated in a fire and forget Web Service, which uses the Logging
ECL. Now we could implement downloadable stubs for C, C++ and Java
applications that could then implement logging without having to
re-invent the wheel. Another benefit of this approach is that logging
becomes centralized.