Experts agree that best practice is a process known as open-sourcing – a form of crowd-sourcing that brings together software development leaders, external developers and stakeholders in an open and democratic process.
When managed well, open-sourcing results in a product everybody wants to use - perhaps more importantly, it results in a community that is able to constantly update the product as processes change and technologies advance.
But the open-sourcing process doesn't always work out. Sometimes the main software developer becomes too heavy-handed. Or the client company is overly protective. Sometimes there is simply too little interest in the project from the community. So how is this process best managed? What are its ingredients for success?
A recently published paper discusses these issues and is worth a read: http://journal.acs.org.au/index.php/ajis/article/view/1221/667