For consulting, though, I've built up a pile of expertise over the last two years. I've developed very strong skills for identifying and fixing performance problems, and this tool is just a way to make my life easier.
One possible approach I've considered is to open-source the tool. This has a few benefits and a few disadvantages:
- Benefit: this type of tool enters the broader developer eco-system. People start to recognize that focusing on single components is a bad way to solve performance problems.
- Benefit: other people can contribute to make the tool better.
- Con: competition. If other people are using the tool, then I end up with a fair bit more competition for the consulting services.
I wouldn't consider open sourcing it a net negative at all. You will get it out there, and as more "advanced" users start to use it and sing its praises, you will have more than enough to keep yourself busy helping out those who are too pressed for time or just have money to burn, or just can't figure it out on their own.
By not releasing it open source, you will have a much harder time branding yourself as a "proven" performance expert.
Compare these two "resumes":
"Original author and lead developer of the PerfPlus open source project, used by thousands of developers worldwide to benchmark and improve their applications."
vs.
"I'm a new college graduate with a few references and a custom tool I wrote that's worked well in a handful of cases."
I can tell you which one I'd be more willing to hire (if I had money :-)
The download-build-use cycle is pretty brutal at the moment, but shouldn't take all that much work to get it in better shape.
There are free Java and C++ profiling tools, that doesn't stop Rational Quantify or JProfiler from selling.
- Benefit: Releasing as open source automatically brands you an expert.
- Benefit: Far increased exposure