Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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
add comment

2 Answers 2

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
add comment

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
add comment

Your Answer

 
discard

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