The Future Of NCrunch - Part 2

by Remco 4. September 2012 07:58

Now 1 1/2 years since the NCrunch beta was first put on this site, not a week goes by that I don't get asked for details around what will happen with the product.  How long will the beta last?  Will it go commercial?  How much will it cost?

These are all fair questions, and my answers have always been very much along the lines of 'I don't know!', because the truth is, I haven't.  For the 3 1/2 years of its life, NCrunch has been an ever evolving product built to fill some very generic needs.  It can be hard to decide on a marketing strategy for a tool that exists in the grips of an identity crisis.  People often ask me why I decided on such an abstract, breakfasty name such as 'NCrunch'.  The name itself originated from the same strategy I've used in developing the product - that of trying to keep all options open.

Working on this project has been a fantastic learning experience for me.  Not just at a technical level, but also in that it has helped to open my eyes to how software development should really work and how for so many years we've had it so wrong.  I see the long term potential of what NCrunch can become and the way it can transform how we solve software problems.  This isn't the sort of thing that can be communicated in a written or spoken word, it's something that people need to experience for themselves.  With the product that it is now, NCrunch really isn't even halfway there yet.

Still, the amazing feedback I've had from people over the NCrunch beta and the viral spread of the tool give prove that the current version of NCrunch is a very valuable tool that many people enjoy using.

Unfortunately, over the course of this project, there are a few realities I've had to face.  NCrunch is an expensive product to support.  The manner in which it controls the build process and the running of tests has been challenging to align with the huge range of different frameworks and customisations that exist in many development environments.  At present, NCrunch integrates with 3 versions of Visual Studio, 5 testing frameworks, 2 mocking frameworks, and countless build tools and runtime frameworks.  Every integration point is a moving part that requires constant updates to keep the tool functioning.  A single release of Visual Studio in itself can create many months worth of work.  This isn't the sort of work most people would enjoy to do in their spare time either, as it most often involves working around the quirks of 3rd party code that was never designed with tools like NCrunch in mind.

As such, this is not the sort of project that can be left on a shelf with any expectation of having a user base 18 months after its final update.

... And with a free product, it's not something I can continue to afford to keep up the heavy lifting on.  Eventually I'll probably run out of food or water.  Or maybe the power company will cut me off before then.  My laptop's battery isn't what it used to be.

I've taken quite a bit of time over the last few months to consider the future of NCrunch.  It's great to also have a constant flow of ideas and suggestions from many people, and I've taken all of these onboard.  So that everyone can fully understand the situation, I'm going to try and articulate my own thoughts around the options that I considered available for the future of NCrunch, and explain the reasoning behind the decision I've made.


Option 1: Open source the project.

Since its first launch, I've had no shortage of offers from people that want to contribute to making NCrunch a better product.  There are many ways in which such a model could work, ranging from a carefully controlled product fed by pull-requests right through to just dumping the project on Github and letting everyone do what they want with it.  I think that this would be a very popular approach and in the short term, it would probably make many people very happy, as it would help to open the product up to a wider range of perspectives while allowing others to help with the heavy lifting.

However, something few people realise is just how complex the internals of NCrunch actually are.  The complexity of the core components that make NCrunch work efficiently massively dwarf any other project I've had any association with in over 10 years of working in the software industry.  I could accept that perhaps this means I've done my job badly (since a prime directive of any software developer is to keep complexity under control), but it doesn't change the fact that NCrunch would be a very difficult project for even an experienced developer to just pick up and work with.

Furthermore, I like to think that much of the success of NCrunch has been owed to having a single decision maker making the calls on what should and shouldn't go into the project.  Rejecting peoples ideas for product features is one thing, but shooting down work that they are prepared to contribute is something I find personally much harder to do.  Should the product be made open source, the decision making would need to be more consensus driven.  This might mean making compromises on my own vision for the product, which right now is something that I'm flatly not prepared to do.


Option 2: Sell the product

From the start of it's beta program, people have often speculated that NCrunch was built as a product to be sold to a bigger player.  I can see how this could be a logical conclusion (single founder, uncertain future, 'wow' product), but it was never an intention.  Although I have had offers from other players, I never found myself willing to let go of NCrunch.  There are no guarantees that such a transaction would be good for the product, and I doubt I could ever look back on a deal without some degree of regret for what I may have managed to do if I'd kept control over it.  Personally, I've also sold more than enough hours of my life as employee, contractor and consultant to actively want to exchange my baby for a regular paycheck.


Option 3: Seek investment

This is an option that has crossed my mind a few times, and while there could be some appeal to sharing the stakes of the project with someone else, it really isn't a logical choice at all.  v1.41b of NCrunch is (in my belief) already nearly market ready.  Taking on investment to push the project further would only mean more stakeholders in order to delay an inevitable commercial launch, at a price that I may have much less control over.  Three years ago this would have made more sense, but not now.


Option 4: Commercialise the product

This is the logical conclusion that I think many people will have been expecting.  The commercialisation of NCrunch will give me the resources I need to take the project to the next level, which is a level it will never reach under the current arrangement.  At this stage, I can make no firm estimates on how many people are prepared to pay for the tool or how many people will flame at me for taking my work off the 'free' shelf, but I do see this as being the most certain way to allow the product to reach its full potential.  In the long term, I also see this as being a better way to drive NCrunch's development, as in truth it can be hard to consider something as valuable without someone being prepared to pay for it.

So I'm sure that the questions that will follow a decision like this will be 'When?' and 'How much?'.  I'm still working out all of the details of how this model will work, but I can share the following:

  • It will be a tiered pricing model, with a cheaper tier for named users, and a more expensive tier for company seats.  The logic here is that named users are more likely to want to purchase a license for personal reasons (i.e. enjoyment of development) as opposed to calculated commercial reasons (i.e. cost/benefit).  Companies also are able to make use of certain tax advantages that just aren't available to Joe Bloggs on a salary.  Of course, this model is standard in our industry and I'm sure I would upset many people if I didn't follow it.
  • The pricing will be aligned with other developer productivity tools that exist in a similar space, with consideration to the cost/benefit comparisons between these tools.  Consider also that I actively want people to use NCrunch as much as possible, so don't expect any unpleasant surprises here.
  • The model will follow a standard upgrade scheme, with new minor revisions being free and new major revisions carrying a cost.  I'm not keen on people 'holding out for the next major revision' so there will be consideration for people that purchase close to a major upgrade.
  • There will be no 'evil' licensing constraints or tricky fine print.  I want people to enjoy the product, not spend time worrying about legal implications.
  • The commercial launch will take place at a time when I can be certain that the NCrunch software and support systems of this website are ready for it.  At the moment, it looks as though this will happen before the end of this year.

I'll try to share more specific details and dates over the next few weeks as the details are worked out.  I hope this helps to answer a few questions and that I'm not upsetting too many people with this approach.

Thanks for your support and understanding!




Comments (21) -

Steve Fenton
Steve Fenton United Kingdom
9/5/2012 7:50:57 PM #

I always expected NCrunch to be a commercial product so this is no major surprise.

NCrunch definitely fits into one of the few gaps ReSharper has left for developer productivity tools.

Russell Smallwood
Russell Smallwood United States
9/5/2012 10:19:18 PM #

Would gladly pay for this product.  Productivity benefits are as good if not better than any other VS add in I've ever used.  Well done.

Tom United States
9/6/2012 12:14:31 AM #

I think this could well be the right direction

Daniel Rose
Daniel Rose Germany
9/6/2012 12:21:00 AM #

Besides a "pay for major revisions" option, please also add a "pay per year" option. That is much easier to handle from a corporate perspective. Resharper is one of the bigger players I know which only has the former option (but is apparently considering moving to the latter) and it is a huge hassle. Once a new major version is release, I have to contact the purchasing department, make a case that buying the new version makes sense, ... A yearly subscription fee is much easier logistically.

Steve Brownett
Steve Brownett United Kingdom
10/11/2012 10:26:05 PM #

Completely agree with this. However, ideally I would prefer having to justify a larger lifetime fee for the product.

moswald United States
9/6/2012 4:32:26 AM #

I have to say, out of every developer tool I've paid for (outside of the Big ones like Visual Studio), NCrunch blows them all away. Let me put it another way: if I had to pick between paying for ReSharper or paying for NCrunch, I'd have a hard time with that decision, but I'd probably end up paying for NCrunch.

Remco New Zealand
9/6/2012 6:59:22 AM #

Thanks for all the great comments guys.  I had a feeling I would wake up this morning with this post plastered with abuse and the server DDOSed, but actually I'm really blown away by the support you've all been showing and the constructive feedback.  As a user base, developers that do TDD really are a privilege to develop for .. It's refreshing to know that people understand the problems faced by a Micro-ISV and want to do their part to make the product better.

I have really high hopes for what can be achieved with NCrunch over the next few years.  I won't let you down!

Mark Australia
9/6/2012 9:34:10 AM #

NCrunch has certainly helped me and others on my development team, primarily because as a tool providing quick feedback it encourages a more disciplined approach to the actual code writing. Certainly, I don't think anyone could be under any illusions as to what the possible range of futures were for it, you have been quite open about that.
I think moswald's comparison with ReSharper is a good way to think about it. ReSharper has been one of the tools providing significant gains in development, and I'd put NCrunch in the same league.

Greg Lose
Greg Lose United States
9/7/2012 6:50:55 AM #

Will be happy to pay for a tool that is this useful !

Anders Denmark
9/7/2012 7:14:07 PM #

I will use NCrunch no matter if I have to pay for it or not. Or at least I would convince my boss to pay for it.

Andrew Coats
Andrew Coats United States
9/7/2012 11:50:12 PM #

I found using NCrunch got me hooked. I would be willing to pay for it - just like I pay for ReSharper.

Qerim Shahini
Qerim Shahini Australia
9/8/2012 5:36:06 PM #

Good on you mate; it's by far the best decision for the product and you. I wish you much success with it; I'm sure you'll clean up.

This will be an automatic investment for me; alongside R# and Beyond Compare.


Gareth Evans
Gareth Evans United Kingdom
9/11/2012 7:54:47 PM #

A friend introduced me to NCrunch....awesome piece of kit. Would be happy to pay for it.
Thanks for your hard work.

Anthony Johnston
Anthony Johnston United Kingdom
9/11/2012 10:05:00 PM #

I would be glad to buy NCrunch, TDD is not as much fun without it

penguat United Kingdom
9/13/2012 7:30:15 PM #

I am entirely happy to pay: free beta - paid product makes sense to me.

I'd like to see your bus factor increase - until that happens I think you will struggle to get the corporate market on board.

Richard J Foster
Richard J Foster United States
9/14/2012 12:12:57 AM #

Just to echo what others have said... Assuming the cost is reasonable (and I have no doubt it will be), there is a 99% chance you'll be getting an order from me personally, if not an order for multiple copies from the company I work for.

The one concern I would raise, and it is no doubt one you have already considered, is that when the product goes commercial you will be under much greater pressure to fix any problems that do occur. For that reason, along with the advantage that more eyes on the code would reduce the risk of "hit by a bus" type problems and may help with the complexity concerns you mention, I would strongly recommend finding at least one other developer that you can comfortably share the load with.

Sedat Kapanoglu
Sedat Kapanoglu Turkey
9/16/2012 7:47:06 PM #

"shut up and take my money!"

I second your decision Remco. And I want to emphasize that NCrunch's success is not only in the introduction of continuous testing but also in its simplicity, its small footprint and its performance. Even if NCrunch didn't run tests automatically I would still buy it because it would still be a better test runner + coverage tool than ReSharper+dotCover combo.

Sedat (@esesci)

Rudi Larno
Rudi Larno Belgium
9/19/2012 9:37:43 PM #

I will no doubt by a copy. Yet let me vent some ideas:

Basic Free/Trial version.
In order to keep the adoption of NCrunch up/high, a free version would do great. I would like to see a basic version (just supporting MSTest framework, e.g.). It would provide an easy hook to get teams to learn/do TDD and appreciate the value NCrunch brings. I've personally promoted the tool to several people/teams, and the 'Ahaaa' moment only comes when you show/teach them the difference, and they experience it. A trial version could work, but often that just leaves the developers really linking the product but not able to use it because of company rules/restrictions about buying any software other than VS.

Open Souce/Commercial combo.
To alleviate the "Hit by the bus" issue and perhaps have more people look at the complexity of the code, why not opt to open the source, but not provide any binaries. Binaries and support only come with a commercial license.

KickStarter Project.
It's option 3, but without the hassle of needing to share the stakes. It could also provide you an insight in how many/much people are willing to spend on the tool. It could get you started setting up the company.

Good luck!

Jim United Kingdom
9/22/2012 6:56:42 AM #

Although you'll probably make a few dollars going commercial, the reality is that most people won't pay for NCrunch (despite it being brilliant). There are alternatives (that aren't as good) but people don't like parting with money for software, especially when it's only supported by one person. Going commercial without backing might cause your new company to implode. If you struggle to support the product now, when most people realise it's a freebie so support would be limited, imagine the problem when you HAVE TO support people who have handed over money for the right to that support.

Better to release it for free, make it clear that support is limited to forums and use it on your CV. Wither that or open-source it.

BTW, this is my view as someone who would happily give you a few dollars for the software but also as someone who has worked with small businesses that have crippled themselves with similar decisions.

Jim United Kingdom
9/28/2012 6:37:24 PM #

It's awfully quiet.

Any more news?

tc Poland
10/8/2012 8:14:22 PM #

I support your decision, you've earned the right do it and explained it well.
I have the same suggestion as Daniel Rose, consider going from pay per major version to pay for a year of upgrades.
This model should be easier for you to predict financials for the next 12 months as well easier for us to predict spendings on software and see if it earns us money plus easier for companies to put it on a yearly spendings schedule.
JetBrains is known to do exactly that (except with R#) and there must be a good reason for it - most probably steady income that makes it easier to schedule resources assigned to a given project/product.
Also you will avoid customers who fear "will there be a new major in 6 months or will there be no releases for the next 2 years"

Comments are closed

Month List

Trial NCrunch
Take NCrunch for a spin
Do your fingers a favour and supercharge your testing workflow
Free Download