Search code examples
architecturecomponentsbusiness-logiccode-reuse

Is a "Reusable Business Component" a Myth?


After Reading the discussion How to create generic/reusable code with Scrum? I thought about my experiences with reusable components.

I created several "technical components" that where succsesfully reused in other projects.

I also created several "business components" that were originally designed for reusability. But they where never reused as one library since solutions for different customers were to different. Of course ideas and codefragments were reused from the businesslibrary but not the library itself.

A big application like SAP/R3 is used by many customers. In my view this is a monolith and not an independant component.

So I asked myself: Is a "Reusable Busines Component" a Myth? If yes why is it so difficult to create one?


Solution

  • I's say it's not a myth - but certainly rare in my experience.

    It also depends what you call a component, and what level of grainularity you're looking at. Every user and business unit where I work uses Microsoft Office and Exchange - so they are highly reusable.

    Anyone will re-use something if they think they'll gain from it. the big trick is getting them to see that. You're also up against human nature - not trusting things they don't understand, and so on.

    I've certainly seen examples where a truly re-usable business component is identified as being needed / desirable: but then actually getting it built is a big problem: Who's going to own it? Who's going to pay for it?

    As part of an "all of government" drive, we have a technical component that allows us to integrate with a centrally provided Identity and Access Management service. This allows members of the public to have one account (username and password, etc) that they can use to log into any government provided online service (where they use the central IAM service).

    Because our system (combined with the centrally provided bit) offer business related functionality I think this is an example of your mythical re-useable component. The solution allows us to delegate management of users within an organisation to admins within that organisation - thus providing business value (less management overhead) across multiple business units.