Hi James,
Thanks for sharing your thoughts on this. As the subject of your post sits quite close to home for me (i.e. the future of NCrunch), it's naturally not a very easy thing for me to comment on without opening such a topic up for public discussion, but I'll do my best.
NCrunch itself was originally formulated to solve a very specific set of problems within quite a specific context. It was not intended to be the product of a start-up that would push for the first chance to be acquired by a bigger player. In truth, it was not even originally intended as any kind of serious business pursuit. You won't find a business plan in the top drawer of my desk, nor will you find a clear commitment on the content of future releases or on any kind of upcoming commercial structure for when NCrunch eventually leaves its beta state.
There are some very strong reasons for this. I'll try to lay them out as best as I can:
- Agility: NCrunch is pushing the envelope in some new areas of development that are largely unexplored. Sure, we've had code coverage tools for years, and even the ability to kick off test runs automatically is nothing new. But what NCrunch provides is the ability to extract runtime information from code in real-time, while the code is actually being written. This changes the way that people look at solving problems, and from a product management standpoint this can also make it very hard to pin down a clear direction on the product that is sure to add value. Were I to try and plan much of the product in advance, or to make strong commitments about its future, I would only be locking down the freedom needed to properly explore this new area of development and discover its potential.
- Psychology: On more of a personal basis, I find I am far more creative when I'm NOT thinking about the best ways to sell my company to bigger fish. NCrunch is in itself a project of discovery, and the process of discovery works much better when treated as the goal and not the by-product of a planned result.
- Market: The simple truth is that no one can tell you how many developers in this world would be interested in continuous testing. I don't think it's even really possible to find reliable information on how many developers practice TDD. We all have our theories, but this is still an evolving market and right now I doubt anyone can really tell you how much its worth or how much it will be worth 5 years from now.
- Lifecycle: Tools operating within the same space of NCrunch can have a market life of a decade or more. To this date, NCrunch has been publicly available for just over 12 months. So relatively speaking, this project is still in its infancy. Much can change over the next 2-3 years, to the benefit or detriment of NCrunch. I always looked at this as being a long term project and a learning experience. So far I've had much of the latter with the former yet to be realised.
So what does anything of the above mean in the context of an NCrunch acquisition? Well, it means that I think it would be hard for me to find an arrangement right now that would respect the reasons I have above while still giving an acquirer a deal they would be happy with. I'm not saying I wouldn't be open to the suggestion, but I'm not naive enough to expect that such a deal would be easy to strike right now. Later down the line? Who knows.
As for what this means for NCrunch's user base, consider that the benefits behind acquisitions are not exactly clear cut. As amazing as it would be to be able to have more resources to throw at NCrunch, it's worth remembering that the internal politics of an organisation are not always in alignment with the desires of those that use its products. I can't promise I'll implement every requested feature into NCrunch, but you can bet that every line of code I write is written to make a better and more desirable tool.
Sorry if it seems as though I'm babbling. It's hard not to think about these things often :)
Cheers,
Remco