If you aren't a developer who is going to involved in the process. The first thing you need to realize is that the "(with no guarantee of success)" tag applies to both approaches. Unless what you are developing is simple, the risk will always be there regardless of the approach.
Most people prefer to develop their own for a few reasons:
- Less chance of IP conflicts/issues.
- An in house unit is always better equipped to deal with spec/design changes since it's more flexible.
- You have a chance to actually develop expertise that could be valuable down the road.
- Maintenance is more reliable because you won't be at the mercy of a third party.
- You have more control over the entire process.
- Lots of stuff but you get the drift :P
The bad parts are:
- If you don't have a strong background in development and or can't get someone good to direct operations, it can be a perpetual drain of resources with no result.
- Its an ongoing expense unless you have new stuff that needs the resources.
- Things are not as clear cut as with 3rd party developers.
- Its a LOT of work.
As for 3rd party developers, its not all bad:
- With most of them you pay on delivery after the initial deposit. As they deliver it step by step, you can verify progress. If progress doesn't meet your expectations. You can bail.
- If what you are asking for isn't unique or require special skills, they probably can deliver something that is BETTER than if you are starting from scratch without experience.
- If its something that has legal implications, late delivery penalties, etc, you might be able to piggy back it on to them.
- Your expenses are easier to estimate.
So in essence, if you need:
- Something simple
- Something done QUICK
- Something that has minimal maintenance/extension needs
- Something just to prove a business concept
Consider a 3rd party. Odds of them delivering on time with a USABLE product is better than with your own people if you don't have development experience. They get paid for delivery, your employees get paid by the hour :P
Else consider rolling your own.