Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

By supporting tools, I mean:

  • reference data manager, like virus definition for anti-virus software
  • test data generator
  • level builders for games
  • simulators or advanced mocking systems

Does the team building the core product (in the case above, the game or the anti-virus) should be part of the development of the supporting tools significantly, or this is a task you would outsourced out of the team to help it focus on the product?

I don't have enough experience to evaluate the pros & cons of each, so I'm hopping you would come up with personal experiences to share, or even studies or papers you read on the subject.

share|improve this question
up vote 6 down vote accepted

This is a very tricky question because in one respect these types of tool are something that can be outsourced quite easily, much more so than central elements of your product, but conversely you might find that it adds understanding of potential core elements of your product if you create them yourselves - for example the test data generator can tell you a lot about your own data integrity rules that might not otherwise come up until you tried to use your outsourced tool, although of course defining the rules is also likely to help.

I guess my core guiding principle is simply this: Is it economical?

  • Will it take longer to define the problem, convey the definition to an outsource company and manage the process with them than it would to build the tool?
  • Would developing the tool in-house add useful expertise on the behaviour of the existing software?
  • Is there a third-party tool that could be used, perhaps with some customisations, to do the job rather than having anything bespoke made at all?
  • How are we looking in terms of manpower and deadlines?

Where I work we have successfully outsourced some QA work, but we tend to develop supporting tools in-house ( in fact that is largely my job ) and doing that with the developers of the main product on hand for guidance is very useful.

share|improve this answer
Yes my company is a "for very large profit" organization, and we do not plan to change it to "for non-profit" organization anytime soon ;) Please note that any positive impact on the team can reduce its cost too. So yes, it's probably a very difficult question to answer. I don't have the answer myself. – user2567 Jan 5 '11 at 15:19
+1 , beat me with almost the same answer by a few seconds :) – Tim Post Jan 5 '11 at 15:19

Best rule of thumb is this:

  • Is the tool relevant to the core business. If something is relevant to the core business, build it in house own it. If it's not then outsource. So game builders should probably keep the simulator and mocking systems in house, but make use of libraries etc. for the core. You don't need to re-invent wheel there, but also don't buy something and then find it doesn't fit the business well so you end up either patching your process (bad) or patching the product (even worse).
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.