There is a current trend of using closed micro-architectures, they can be of great help but sometimes they can be your worst nightmare... read on.
In most cases company X develops a small micro architecture (generally based on cairngorm or similar) to accelerate the work. They sell this idea to the client, which generally agrees to it (Although I have seen cases were the client does not even know about it).
The problem is that in some cases the company X becomes really comfortable with their framework and in an attempt to keep an edge over the competition they close it, essentially the client is not given the source code or the code is simply obfuscated or hidden.
This carries a lot of potential negative consequences, for as long the two parties continue in good business terms or the business relationship is mutually beneficial and cost effective things might go real well. However once this is no longer the case, then the client becomes hostage of company X.
Retaking ownership of the project is a huge problem because company X owns the code and reserve the right to keep it closed.
This effectively block new developers to quickly take control of the code and continue extending the application.
Most of the time I get developers coming to me saying:
"I think is better if we just re-do the entire thing".
For some companies this could be extremely expensive and potentially hurting them financially so bad, they might just abandon the whole project or just take them out of business.
Here is a few things I always advice my clients starting a project:
- Make sure you do indeed need a framework, not all projects need one.
- Enforce open frameworks (like cairngorm or gaia) and make sure they stay true to the architecture.
- Make sure you retain ownership of source files and code.
When you use an open framework, you have a better chance the code is well documented, tested by the community and have tons of resources to solve any potential issues that may occur.
If Company X wants to use a custom architecture, make sure is for good reason, ask questions about where has it been implemented before, I would ask a reference from a previous client endorsing if the framework indeed was useful.
If you are outsourcing a critical project and have no in-house technical resources, hire a consultant or resource outside of company X to overlook the project progress, make to sure proper documentation and guidelines are followed and your interests are well represented.
If you had issues with a close frameworks, I would like to know how some people deal with theses issues, feel free leave a comment.
Labels: Flex, The SWF Files