Archive for June, 2008

28
Jun

Build, Buy or Retrofit

   Posted by: admin    in Software Development

Build vs. Buy is an old dilemma. I find the answer to be rather simple. If you find a product that:

  1. Meets all of your criteria
  2. Will not require modification to meet the criteria
  3. Is within your budget

Then the choice is clear. Get that product and feel good about it.

The obvious time to build is even more simple. If you can’t find anything that comes close to what you need, put your construction hat on.

The 3rd option is more complicated.  You will often not find any exact matches for your requirements, but you’ll find a few that are close. Then it will take some evaluation into how deep the changes will go into the original product. In general I advise AGAINST getting a product that you cannot use right away as intended. For many commercial products, you have much more leverage as a potential customer than a supported one. Present your issues to a sales engineer and make them come up with how their product will support your requirements, in writing.

If you decide to get a product and retrofit it to your needs, you are running some pretty high risks. The risks are:

  1. You will no longer be supported by the owners of that product.
  2. You won’t be able to take advantage of future releases without retrofitting them as well.
  3. Any published user extensions will not be compatible with your version with some added effort.
  4. Over time you version is cannot be recognized or reconciled with the original.

This can be an option if you want to jump start your development and have an appropriately sized full time development staff to maintain it for the rest of the products lifespan.

If you have a development team and a little more lead time to get your product ready, I suggest another approach.  Build your product from components that you don’t need to change. Evaluate several lower level applications and development frameworks to assemble exactly what you nee. This will allow you to still take advantage of upgrades and extensions for the various components while still meeting your very specific needs.

This advice comes from analyzing a lot of past experiences, I hope that it can be beneficail to someone else.