Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

For past 2 years, I have been writing a tool in C++, meant for C++ as my hobby project. Slowly, I realized that it can be made commercialized, as it can compete with other memory leak detectors. This tool finds:

  • all kind of memory leaks
  • null pointer exception
  • corrupt heap
  • static/dynamic array out of range
  • multiple or invalid deallocations
  • It also gives real time code flow, i.e. what functions are called (without any debug statements)

I have written a parser (which also parses the complex syntax of template also) which replaces all the pointers in the code with my custom made smart pointers and new/delete with my wrappers. With making some primary tests, this tool seems to work fine. I still continue to work on it to complete the remaining 20%.

However, I am just wondering whether will it be a good idea to work on it ? Now a days, so many programming techniques have been developed to overcome such errors. People simply don't use raw pointers (while most of the errors occur due to pointers). This kind of thoughts, sort of demoralize me. Would highly appreciate some expert opinions.

share|improve this question
    
There's a great deal of commercial C++ static analysis tools out there, so a market for sure exists. If you will be able to compete and win some market share is more a business question than a programming one. –  Vitor Jul 2 '11 at 17:03
    
@Vitor, sorry I forgot to mention that this is a dynamic analysis tool. –  iammilind Jul 2 '11 at 17:04
1  
@ammilind I know (because of your description). I cited static analysis tools because I know it exists as a viable market. Look at companies like Klockwork. There's also a couple companies selling MISRA compliance tools (if you got a parser that good, you can sell this too). –  Vitor Jul 2 '11 at 17:08
    
@Vitor, yes, I have the parser which is limited to deal with pointers and declaration of function etc. It doesn't do the grammar check (as it assumes that it's supplied a valid compilable code). It does some smart editions to replace allocations and pointers. –  iammilind Jul 2 '11 at 17:19
1  
I usually use deleaker for debugging and I'm happy. –  MastAvalons Mar 1 '12 at 19:58

5 Answers 5

up vote 6 down vote accepted

I think the big question you need to answer for your self from a 'can I commercialize it' perspective is 'how does the tool compare to what's available in the market right now'.

There are at least three tools for Windows that offer this sort of functionality (HeapAgent, Purify and Boundschecker) plus on Linux you have Valgrind. The latter is going to be hard to compete with (because it's free). If you do have a unique selling point (preferably not 'my tool does what X does, but it's cheaper) then I think you might have chance to find your niche.

I'm currently evaluating memory debuggers for use in the team I'm working in and I'd love to have another choice for a simple memory debugger that just does memory checking at a reasonable price point. Especially if it would offer better performance than most of the existing tools.

That said, it's is a limited market these days as a lot of the bigger shops are either of the opinion that "if developers needed these tools, they'd be part of Visual Studio" or are simply not willing to pay for these anymore because they're for supposed legacy languages. Nevertheless I think with the right product you should be able to at least sustain a Micro-ISV.

share|improve this answer
    
Parasoft also has a tool with this kind of functionality. Purify in my experience chokes on large code bases (and it's just a pain to use, too much false positives also). –  Vitor Jul 2 '11 at 18:47
    
I can throw a rock and hit one of the former BoundsChecker developers from my desk at work. Former because with the shrinking market they're slashing staff. C++ tools just don't sell like they used to. –  Christopher Bibbs Jul 2 '11 at 22:19
    
I keep forgetting Insure++, must be because I've never used it. @Christopher, that's why I suggested that there might be enough money in there for a small company/ISV, but there certainly isn't enough money in there for big companies anymore. –  Timo Geusch Jul 8 '11 at 0:54
    
@Timo Last I checked, the entire DevStudio team could fit in a minivan. You'd need a really small company. –  Christopher Bibbs Jul 8 '11 at 12:01
    
@Christopher, I would think that a company with 2-3 people in total should be able to make it work. Don't forget that Boundschecker is owned by a company much bigger than that, so the overheads are still quite large even if the team is fairly small. –  Timo Geusch Jul 8 '11 at 15:07

There's definitely room for good resource leak detectors out there, and room for heap corruption detectors as well.

The way you describe it though as being something you run over the code and it modifies things is not something I'd personally use. I already use smart pointers, etc... What I need are detectors that watch from the outside, and you'd be competing with a good many of decent ones out there.

share|improve this answer

New code might be written that way, but there's plenty of legacy code and bad C++ programmers (and just every C programmer) who still write bad code that might need your tool. I don't see those going away any time soon, as legacy code is too expensive to upgrade and C programmers won't upgrade, else they would have done by now. I wouldn't be too worried about the market disappearing.

The thing is, if you wrote it for yourself, then if it hardly sells, what are you complaining about? The reward for the time you put in is for a hobby or whatever- not to sell. Any money on top of that is just icing on the cake.

share|improve this answer
1  
Memory management isn't always trivial, and even good programmers write code that leaks from time to time, they simply fix it. I don't think you can write off all code as "bad" that has a leak, it simply needs to be fixed. –  Ed S. Jul 2 '11 at 21:30
    
The thing is, if you wrote it for yourself .... Well, within 2-3 months of time frame, I realized that it can be used for general memory error detector. After that for 2 years, I am working on that as my side project. So intention was to make it commercialized. –  iammilind Jul 3 '11 at 3:08

While your specific tool might find a niche market, the overall strategy is backwards. Expert opinions may differ, but mostly from what I've observed in real life, one must start with market demand. Find out what trouble people have with existing products, or trouble due to a lack of any product. Solve someone's excruciating pain (meaning that metaphorically, as we are not medical doctors) - which first means finding out some common "pain" whose solution is at least halfway within your skill set and resources. Then design and create a product.

Some people have gotten rich by starting with a product first, perhaps initially created to improve their own personal workflow or bug hunting, but overall your business plan will would be on a better foundation by starting with marketing first and then making products/services to fit.

Recommended inspiring reading: Micro-ISV: From Vision to Reality by Joel Spolsky http://www.joelonsoftware.com/articles/Micro-ISV.html

share|improve this answer
    
initially created to improve their own personal workflow or bug hunting, ... same situation. I was a simple developer 2 years back. Not capable of doing market research (still can't do); now since the tool is 80% finished, my mind has started raising such questions. Yes, my tool does provide some features, which other tools don't. One of them is high performance. It can be used as a Garbage Collector also. –  iammilind Jul 3 '11 at 5:18

If you commercialise it, you're going to have to spend a lot of money on marketing, sales, orders, support, etc etc. It might be quite a money-pit that returns very little (as people have said, there's plenty of well-established analysis tools out there).

So there's another alternative: open-source it. Firstly, you can sell support to enhance or setup the product - you won't make as much as if you were selling shrink-wrap, licenced products, but then you won't need to spend anything to get going. If the premise that the shrink-wrap version wouldn't sell, then this route will provide you with at least some income.

Secondly, you get all the fame and glory that open-source project creators get. Sometimes, if the open-source product is good enough and professionally presented, then that can lead to quite decent job offers, which is a reward in itself.

And don't forget, if its OSS, then you'll get several contributors making it better for you, for free.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.