Ephraim Schwartz has a great article in InfoWorld today - Bringing software development back in-house. In hit he quotes someone who was reversing a decision to outsource:
Fields believes that software technology is a collaborative process among designers, architects, and programmers.
Agreed. This is one of the reasons I really like business rules. By removing the impedance between business experts and programmers, you can more truly collaborate. Business users can read even the technical rules that programmers write while other rules can be managed directly by business users using a range of template-driven rules and metaphors like decision tables and decision trees.
But even that wasn’t the major reason for Fields’ decision to “backshore.”
“Companies our size should not take their core IP [intellectual property] and have it essentially owned by individuals of another company,” Fields explains.
Now I think this is a key distinction. It seems to me that not all the code in a system is "core IP". But the code typically replaced by business rules is core IP. So one option for companies is to develop their core IP using business rules, focusing on ownership and reuse/exploitation of this IP while other code is developed using the cheapest, quickest resources or tools. That way you own the IP in a way that allows the business contributors to the IP to directly manage it while still, potentially, taking advantage of low costs of development for other elements.
Just a thought....