There are three sources of Componentware:
♦ Third-party vendors
♦ Components already written in-house
♦ Components that you already have a license to use
There is now considerable Componentware available from third parties. But where the software you are writing is specialized and no one has made the routines publicly available, you need not just write them as a one-off, but write them in such a way that they can be easily embodied in other projects.
The key difference here is that you are packaging the code as a separate module so that it can be reused instead of as an exclusive solution to current projects.
In-house Componentware still leaves you with the initial development, testing, and maintenance overheads, but there are no licensing or purchase complications.
Another source that is often overlooked is Componentware that has been legally purchased for some previous project and which you still have the right to use. The larger your outfit, the more likely it is that various goodies are sculling around.
The trick with all outside purchasing is to make sure you get what you want at a price you can afford. Take care when sourcing, especially if you are using new, relatively untested, and what you suspect might be immature components. Consider this checklist:
♦ Does the component match your project's requirements?
♦ Can you see it being used in other future projects?
♦ Does the producer have a laudable track record?
♦ Does it have the scope to cope with program developments?
♦ Can you try it before you have to commit yourself?
♦ Does it pass the prototype test? Choose something complex that will really challenge the component.
• How do you rate the performance?
♦ Is the product well supported?
♦ Do upgrades/bug fixes appear regularly?
♦ Is the licensing agreement acceptable?
♦ In extreme circumstances, will you legally be able to get access to the source code? This shouldn't be necessary but what happens if they don't fix a bug in an acceptable period of time or they go bust (the source code should be held under ESCROW)?
♦ Does the business case for this component stack up?
♦ How ahead is the supplier of future developments?
Was this article helpful?