Based on experience, especially with a platform such as ERP, that companies use to run their business, it is quick for Management to go for the COTS ERP platform rather than actually look at what is already working, currently in use or look at other open source platforms that have a large support structure and following.
I hate to name products here but if anyone who knows ERP platforms, knows which ERP product I am talking about.
I see top down implementations and decisions being made, where the users are told that the purchase was a management decision, that everyone will have to work with it and that the company already invested too much in it. Have you ever heard of Black Swans?
Big commercial ERP's are presented as flexible and modifiable to your business process. You are given the usual 6 month time frame for implementation and a year later you are still in deployment mode. Users are hating it, it recreates work flows and departments have to spend tons of time and money re-training users on the new work flows. When it is not in place within six months, more money is thrown at it and more contractors are hired to work on issues that should have been identified if they took the bottom up approach.
Listen to your users, adapt current work flows to your ERP modules instead of just saying that is how "ERP" works. Forbid any changes are required to be made on the module, it usually means more money and time. They always give you the same old answer.
I work in a support group and our focus is our customers. We have SLA's we have to meet and the last thing we need is a support platform that creates more problems than the actual support issue. Everything should be designed to ensure that we meet our SLA's but the shift then becomes that the company becomes internally focused as opposed to external, watching for our customers needs. Support staff spend way too much time making sure that each work order or ticket is filled out a specific way rather than actually having a tool for documenting how the issue of the client was received, troubleshot and resolved.
So, if asked whether I prefer COTS to in house? I would maybe select COTS products with good user feedback but really think about it if it were to run my whole business. Both have pros and cons like support, flexibility, system integration, upgrades and patches, and other system growth development.