I too have to convince my boss to release code soon. I shall argue that:
- Anything that implements our business should not be released;
- Anything that doesn't care whether we make spacecraft or whether we schedule street sweepers should be released.
Not releasing what makes our product unique makes sense, partly for financial/competition reasons, but also because no-one else would be interested in it anyway and we'd not gain the benefits of ...
Releasing stuff that does not make our product unique, such as a Class::DBI plugin, means that someone else will find and maybe fix our bugs for us, thus saving us money. So what if our competitors can use it? It's not like it would be hard for them to re-implement it from scratch in a few hours, and the benefits we gain by being a Good Citizen (which helps with recruitment) and getting bug fixes from other people would outweigh that.