Here is a list of questions I use:
- Is the module a strong part of my whole system? In other words, is it the module, or one of the modules, that generates the income? If so, it’s clear this MUST NOT go open source
- Does it work without the main module that is proprietary? If not, it’s clearly not useful for anyone else
- Is it a clear solution to a problem? This is not a definite show stopper, but if my module tries to be jack of all trades, it will die pretty soon
- Is it useful for anyone else? If the module solves a problem that is only mine, that usually means I do something wrong, and I don’t even need the module (nor does anyone else)
- Is it one of a kind, or at least close to be? Again, if not, I may be doing something wrong. Reinventing the wheel is usually a bad idea, and it’s much better to contribute to an already existing library than writing a new one.