If a company has internal code that it wants to share with the outsiders, involving them requires preparation.
First, the goals and strategy must be worked out. What are you trying to accomplish?
Suppose you decide that you are tired of maintaining middleware all by yourself. Surely some other companies would like to have what you've developed and are using internally. If more people used it, then the maintenance burden could be shared. Since middleware does not usually provide a compelling competitive advantage, there is no reason why people in the same business (your competitors) could not use it too.
The most important step, however, is to talk to the people you think would be interested in the software. Don't proceed if you can't turn up outside interest. Simply putting the code up on the Internet and hoping people will come by and contribute is not very realisitic.
Assuming there is outside interest, then you need to consider all the items in the internal open source example given above. Everything must be done so that it is attractive to outsiders. What tools do they like to use? Is it easy to contribute?
You need to pick a license and decide who will have the right amount of drive and diplomacy to be the project leader. How will decisions be reached? What are the standards for granting code-commiting privileges? Will you require all contributors to sign a contributor's agreement before accepting their code?
Finally, what about a publicity plan to bring in even more outsiders beyond the initial group who have expressed an interest? At a minimum, consider announcing the project in the proper places and giving it its own Web site.
This was first published in September 2006