Putting Max on the Back Burner

This note is to inform JUnit Max subscribers that I will not be actively developing Max further (extraordinary events notwithstanding). Customers wishing to cancel their subscriptions are welcome to do so, as long as they stop using Max. Anyone wanting a refund will be granted one, no questions asked. Subscribers are welcome to continue using Max for the duration of their subscription, but no further subscriptions or renewals will be accepted.

Reasons

Max addresses a genuine need: dedicated TDDers really do need better, faster feedback. Max’s approach of risk-first test execution and an embedded UI modeled on syntax error reporting successfully deliver that feedback. There is an audience who can effectively use what Max delivers.

The business problem with Max is that there just aren’t enough of us who rely on tests minute-by-minute. Even allowing for my marketing and sales mistakes, the data suggests that there are at most a few thousand Java programmers actively practicing TDD. That’s not a large enough market to sustain a business, especially as the market turned out to be price sensitive. Even if every Max subscriber successfully convinced 100 of their friends to sign up, there wouldn’t have been enough revenue.

And so, much as I love the concept of better, faster test feedback and extending the benefits of developer testing, I will henceforth be investing my time in other products and in my consulting clients. I am not closing the door to future business–if someone comes along with a 10,000 seat order or offers to buy Max in order to donate it to the Eclipse foundation, I’ll be glad to discuss the possibilities.

Lessons

I learned a lot developing, marketing, and selling Max. One thing I learned is that I love being involved in the entire business. There were days in the middle where I felt fully engaged, fully alive. I’d like more of that in my life.

Here are some more specific lessons I learned:

  • Release early and often. The phrase, “If you aren’t embarrassed, you waited too long to release,” was very helpful to me. My first release was the tiniest sliver of what I imagined, but it gave me market validation (even if Erik and Saff were the only two people to buy it) and, more importantly, energy. The rapid release cycle let me experiment with features that I hoped would drive sales (none did) and fix blocking defects.
  • Ship it and fix it. The product needs to provide value from the first, but it doesn’t need to provide everyone with value all the time. Early sales answer questions about the market size. Early users accept some rough edges if they get to be first and you fix the problems. Not reflexively fixing every defect was a hard transition for me, but, often, answering the next business question was tmy highest priority. I would recommend installing real-time remote error reporting for anyone bringing client software to market. It was nerve-wracking at first to see all the errors, but in the end the feedback was invaluable.
  • End-to-end. I wish I had implemented a tiny sliver of the server functionality earlier. My ambition for Max was always larger than what I delivered, but implementing something of the service offering, however small, would have communicated that vision more clearly. Given the market size problem, it wouldn’t have made a difference in the end, though.
  • Cut your losses. The exponential revenue growth turned down in May (negative second derivative). June was worse. It was six weeks from the first signals that the market was saturated to today.
  • Lean startup. The most helpful advice I got came from Eric Ries and his Lean Startup ideas. Balancing time between the problem team and the solution team is a challenge for me, as I like making things.

Until We Meet Again

This is a sad kind of post to write. I had a vision of programming for my living, making tools to help make the work of other programmers go more smoothly. That’s not going to happen, not now with this product.

I’d like to thank all the Max subscribers for their feedback and forebearance with a young and rapidly evolving product. Ilja Preuss, David Gageot, and Eric Lefevre-Ardant were particularly generous with their time. Most of all I’d like to thank David Saff for telling me exactly what he thought of Max and for giving up some of his precious JUnit programming time listening to me vent.

It’s never easy to give up one dream and move to the next. My problem monitoring the behavior of Max in the field turns out to be common, and there are few good general solutions available. I’ll soon be launching a new product for developers of Eclipse-based products to deliver real-time feedback about errors. We’ll see if I get enough revenue to get the wheels off the ground of this one. If you have an Eclipse-based application deployed and want to find out what’s going on “out there”, drop me a line.

57 Comments

Mark MenardJuly 16th, 2009 at 5:22 pm

Ken,

I’m sorry your idea did not work out. I’ve just moth balled a product I thought would be a real winner myself. Someone in my office called it my first “million dollar” idea at one point. Well, it’s not working out and we’ve basically done what you did, let people use it who signed up, but otherwise we’ve pulled the plug.

It’s hard, but with lean practices at least we get to move on to other ventures. Thank you for your lessons learned. You’ve inspired me to do a write up about what I’ve learned.

KentBeckJuly 16th, 2009 at 5:33 pm

Please to write it up, for your own benefit as well as others. That was by far the hardest blog post I’ve written but I learned a lot. In particular, there are needs out there I can’t meet, and not because of any failing of mine, but because of the structure of the market. It doesn’t make sense, but if that’s the way the wind is blowing I can’t fight it. That said, there’s a lot I will do better next time. The good news in this market is that we can go from fiery idea to deadpool faster and more cheaply than ever before :-)

Michael HungerJuly 16th, 2009 at 5:54 pm

I bought the yearly subscription in March. Back then it was $24. I’ve just seen that the last subscription amount was 110 per year? When did you increase that and why and which effect did it have on the revenue?

Thanks for all the insights you shared during the Max development. This was for me as non eclipse user more useful than max itself.

As I already wrote on twitter, perhaps writing a book that details the technical and business aspects of the Max development as well as the things you’ve learned (together with a copy of JUnitMax itself) would generate more revenue than the software itself? Some time ago bookware (software as supplement to a book was quite common).

Wishing you all the best for your next product. Perhaps a general solution for java error reporting (not only eclipse based would be interesting for all of us).

Johannes BrodwallJuly 16th, 2009 at 5:59 pm

Too bad Max didn’t take off. I just wanted to say I’ve had fun using it and that I’ll continue to use, pay for and promote it. It makes me a better developer.

Thiago BorgesJuly 16th, 2009 at 6:16 pm

I’m surprised with that. I knew Max only some weeks ago, and it already has gone. I think it is a stable product (no?) and don’t need much effort to stay alive. Why close the doors? Of course is not a million dollars product, but it is a very good product in my opinion.

For me, Max has appeared with a new concept. People needs to digest the idea, articles in magazines, etc. So they can convince the Enterprise guys it is a extreme good tool.

KentBeckJuly 16th, 2009 at 6:18 pm

It would have required at least another six months of development to get to stable, full-featured product. I just didn’t see the revenue upside to justify that.

KentBeckJuly 16th, 2009 at 6:19 pm

I raised the price about 5 weeks ago. Subscriptions had slowed down and the price increase stopped them entirely.

KentBeckJuly 16th, 2009 at 6:20 pm

Thanks for that. I’m glad you found it useful.

Alby ManglesJuly 16th, 2009 at 6:42 pm

Hey Kent that’s a real pitty. Good luck with your other efforts.

If people out there want test optimization in eclipse, there is always Clover atlassian.com/clover. They wouldn’t want to be ‘price sensitive’ though ;)

Andrew BinstockJuly 16th, 2009 at 7:25 pm

I think you’re wrong about in your conclusions re causes.

As far as I can tell, you did no promotion. To wit, the only place JUnit Max appears in the four widely read publications that discuss or review dev tools (SD Times, DDJ, InfoWorld, and eWeek) is in my one column on continuous testing. And, as you recall, that’s because I reached out to you on an unrelated different topic.

Did you send out a press release when JUnit Max shipped? SD Times will cover just about any new dev product, and surely one with your name attached to it. So, I’m guessing you didn’t contact them or any of the other pubs. Nor websites: There’s not a single hit for JUnit Max on Slashdot.

I am further guessing that if you didn’t do even the barest level of PR, you probably did equally little marketing, except perhaps for a few Google ads or the like.

So, how are potential users supposed to know about the product? I agree if all you count on is people who happen to stumble upon JUnit Max or who have other connections to you, you’ll never be able to support yourself with *any* tool. This has nothing to do with whether JUnit Max is a viable, whether it’s valued, or anything else.

I don’t mean to be tough on you, but the only lesson that can be drawn from your experience is that technology with no marketing rarely succeeds—which is a principle, you’ll agree, that is pretty well established.

That said, I am sorry to see JUnit Max shelved.

NilanjanJuly 16th, 2009 at 8:41 pm

Sorry to hear that. I always found it useful. I hope you get back to it again

Liam McLennanJuly 16th, 2009 at 8:59 pm

I find that it helps to think about product development as being like writing novels. You do your best with every one but if it’s not a winner just move on and do a better one until you succeed. It sounds like that is what you are doing.

Your comments on market size are interesting. It is usually recommended that startups should pursue small markets because they are easier to target and there is less competition.

Good luck with your next product.

KentBeckJuly 16th, 2009 at 10:02 pm

Andrew,

I think my marketing and PR campaign was just different than the kind you outline above. I’ve been doing marketing and PR for enough years to know how to play the press game. However, my campaign wasn’t intended to generate maximum sales. That would have been a disaster. Engineering a Eclipse application to be performant and reliable is a LOT of work. Instead, my campaign was intended to let me accurately gauge the market size with a minimum of elapsed time and effort. I stuck to community marketing and watched how word-of-mouth spread. That gave me a good estimate of the total market size without expending a lot of effort and without attracting the kind of demand I couldn’t fulfill with an immature product.

ClareJuly 16th, 2009 at 10:41 pm

Perhaps your product is coming too soon. I believe many developers and development managers do not yet fully understand the power that is TDD. Thanks for the blog

Johannes LinkJuly 16th, 2009 at 10:50 pm

That’s really a pity considering that I just wrote an article featuring JUnitMax for a German software magazine which is currently being printed.

Kent, you fixed us on, why not provide the drug by open sourcing JUniMax?

cheers, Johannes

Ilja PreußJuly 16th, 2009 at 11:12 pm

Mhh, what a pity. Frankly, I was waiting for the moment when JUnitMax would be usable with big workspaces. I’m missing the feedback it provides.

I’m sorry that it didn’t work out for you. I’m optimistic that the idea will get some traction again in the future.

Louis RoseJuly 16th, 2009 at 11:28 pm

Hey Kent,

Sorry to hear about JUnit Max no longer being developer. It’s a great shame there’s not the community to support the product.

I’ll be interested to read about your new endeavour. It might be useful to us (as committers on an Eclipse EMF sub-project) or our users.

[...] in Business, Management, XP, software development I‘ve just read a post by Kent Back called Putting Max on the Back Burner in whish he announces the end of the development of his recent project JUnit [...]

David SantoroJuly 17th, 2009 at 12:39 am

It would be really interesting to know how many companies practice TDD daily. I hope that programmers practicing TDD at work are more than a few thousands.
Maybe Mr. Beck you have to evangelize TDD more :)

Bernhard PieberJuly 17th, 2009 at 1:44 am

That is really a pity because I only learned about Max last week. We have several teams doing TDD and I had discussed with a colleague how to get started with it.

Perhaps it just needs more time?

Kerry JonesJuly 17th, 2009 at 2:52 am

Kent, it’s a shame you have to mothball this product, at least for now. I hope you can find the company you’re looking for who can purchase it and donate it to the Eclipse foundation. It’s a really important new concept that should be developed more.

I was following the JUnitMax developments along with many others and it looks like a very useful and interesting product.

I agree there aren’t enough developers in the industry who properly understand TDD but that is something that we should work to change. The reason we hadn’t purchased JUnitMax yet is that we’re still in the process of teaching TDD to our development team.

Have you thought about joining the conference circuits for a while to promote and teach the benefits of TDD as well as JUnitMax. Even if you were to give away JUnitMax in its current form it would be a great way to generate interest in subscription or purchase of a full version if that ever becomes a possibility.

2badJuly 17th, 2009 at 4:41 am

condolences on your loss(es)

as for your next project, one company already did this for .NET applications and after 1 year of “community marketing” have achieved exactly ZERO sales.

so don’t give up your consulting clients just yet!

and try some “real” marketing before you give up entirely! educating the market takes time and money. If I didn’t subscribe to your blog I’d never know about JUnitMax – and since I’m not a Java developer any more, I have no need for it.

JUnit Max did not surviveJuly 17th, 2009 at 4:53 am

[...] I wrote about JUnit Max in a previous post. In that post I commented that I was not sure if people were willing to pay $2/month for it. It turned out that I was right. Kent Beck just announced that he has deadpooled JUnit Max. [...]

Ivar GrimstadJuly 17th, 2009 at 4:57 am

Too bad! Was hoping for a NetBeans version…
I think it could have been easier to sell a one-time license than a $2/month subscription. Kind of a hassle to file expense reports for such small amounts every month…

KentBeckJuly 17th, 2009 at 5:20 am

Thank you for the support. I don’t plan on open sourcing Max, but my reasoning requires more than just a short reply. I’ll try to write it in the next couple of weeks.

KentBeckJuly 17th, 2009 at 5:21 am

I’m sorry it never worked with big workspaces. It would have taken some substantial engineering effort to make it work–not rocket science but a week or so of grinding. Without the market size behind it, though, there was no payoff for the work.

KentBeckJuly 17th, 2009 at 5:24 am

David,

That was one of my conclusions, that before a tool like Max would make commercial sense I would need to create demand for it by encouraging TDD. For example, I have been thinking about doing a series of screencasts on TDD. Actually, I did a prototype of the first one but it was such a disaster I got discouraged. It’s easier to program than to work on one’s communication skills.

KentBeckJuly 17th, 2009 at 5:26 am

I’m sorry you didn’t get a chance to use Max. It really is a pleasure to do TDD with immediate feedback.

I have no doubt I could have had 5x the sales I did by doing a better job of marketing and sales. However, that still wouldn’t expand the size of the entire available market. Eventually I couldn’t see a scenario where I would ever have enough subscribers to make a business.

KentBeckJuly 17th, 2009 at 5:29 am

Kerry,

Thank you for the suggestion. I burned out on travel about 6-7 years ago and I travel with my family when I travel on business now. That puts a natural limit on how much I can travel, as they insist on having lives too :-)

I’ll write soon about my decision not to open source Max. I think the software world could use more thoughtful debate about distribution channels. I’m a bit nervous, though, as I’d rather not be a target. Oh well…

KentBeckJuly 17th, 2009 at 5:30 am

As I mentioned to Andrew Binstock earlier, my marketing campaign was designed to quickly and cheaply gauge the size of the market, not maximize sales. When it became clear that the best case scenario, selling Max to everyone who could possibly need it, was still not a business, then it made sense to shut it down.

DavidJuly 17th, 2009 at 7:24 am

Kent,

May you jump quickly to your next ideas. I’m sure you’ll learn from this great experience. Not sure the developers community will, though.

Just a question: if you had to restart JunitMax from the beginning, would you develop on the eclipse platform? It seems to much of an impediment to me…

David.

Elliotte Rusty HaroldJuly 17th, 2009 at 7:33 am

Smart move recognizing that the market wasn’t going to support this. Fail fast is as important a principle in business as in programming. Much better to push an idea out quickly, try it out, and then kill it if it doesn’t work than to let it bleed you for years. The last startup I worked for blew through over $100,000,000 and several hundred person-years before pulling the plug.

I do think you’re overly pessimistic about “at most a few thousand Java programmers actively practicing TDD”. I know of that many at just one company. I suspect the biggest problem with JUnitMax was that it didn’t merge well with purchasing bureaucracy. It costs more than $2 just to process a purchase order at most companies. Furthermore, auto-renewing subscriptions are hard to manage. Prices that make sense for consumer games on mobile phones probably don’t work for B2B.

goodlessonJuly 17th, 2009 at 7:59 am

Kent,

Congratulations on learning a hard lesson – that the size of the market is more important than the coolness of the product.

Perhaps next time you can do the market research BEFORE you create the product!

KentBeckJuly 17th, 2009 at 8:19 am

Dear Goodlesson,

I did the market research I could before creating the product. I correctly identified a need. That’s all you can really do in advance of selling a real product. Then I spent close to the minimum in time and money sizing the market. Are there specific activities you would recommend for me next time?

KentBeckJuly 17th, 2009 at 8:22 am

Elarho,

Thank you for the comments. I would like to see data from the company with thousands of TDDers. My experience is that there is a lot more talk than walk when it comes to developer testing in general and TDD specifically.

I was certainly willing to be flexible about sales and billing for large orders. I never took a serious shot at a professional sales force which might have uncovered bigger sales. However, I didn’t even hear any faintest echoes of large-scale interest, which led me to conclude that such sales for a product the scale of Max were unlikely.

Jonathan RasmussonJuly 17th, 2009 at 8:46 am

Good on ya for trying Kent.

Making money from selling developer tools is tough.
It’s a small market, and the folks you were targeting even smaller.

Still, I am sure the world is better for your efforts.
As I know you are for the journey.

Don’t give up. The world needs you.

David HunterJuly 17th, 2009 at 9:05 am

>I don’t plan on open sourcing Max, but my reasoning requires more than just a short reply. I’ll try to write it in the next couple of weeks.

Kent , you may have read it already – but just in case:
Why I (A/L)GPL
http://zedshaw.com/blog/2009-07-13.html

OswenJuly 17th, 2009 at 12:51 pm

I wonder the JunitMax project would be viewed if it were submitted as a student project. I believe that parts of it (Reasons/Conclusions) are flawed.

I myself accidentally stumbled across it only very recently. I saw a price of $2/mo which seemed ok, went to subscribe and found that it was $10/mo. This is not a huge amount of money, but given that I am in academia and would have no interest other than doing an evaluation, it does seem a bit pricey (furthermore, I try to avoid tools etc that my students can’t afford) . Neither, I am keen on any form of roll-over subscriptions.

From a marketing perspective I would guess that your pricing strategy may have killed off the ‘early adopters’ many of whom are probably from the oss community. I also think that while you were technically selling a tool, you were in reality selling a methodology or providing a long-awaited killer/enabling tool for that methodology.

I agree with Andrew Binstock’s comment above. It’s hard to believe that any product, no matter how good, will simply fly off the shelves without serious marketing effort. The fact that it is only integrated with Eclipse is another disadvantage.

Worst case this tool should/could have been a nice little earner

KentBeckJuly 17th, 2009 at 11:21 pm

Owen,

I understand the barriers to signing up for some people. The $2 price was intended as a way to figure out the size of the market. The $10 price was a more realistic price if I was going to have a business.

I explained above a bit about my marketing strategy and I’ll follow up with a whole post next week. While it’s comforting to believe that Max could have been “a nice little earner”, the data says otherwise. At $2/month * the maximum potential market, there just isn’t enough revenue to support a business. Porting to IntelliJ and NetBeans might increase the market by a factor of 2 or 3, still falling far short of the necessary revenue required to pay for the engineering necessary.

Simple lesson–don’t try to make money from programmers one at a time. I knew that. I was warned about it. I just thought I had a product so useful it would be the exception. Nope. If the wind is blowing east to west, don’t count on your fire burning west to east.

Phil KursaweJuly 18th, 2009 at 3:17 pm

You see, I just found out about your tool when you blogged about terminating it. Isn’t that interesting? And I am good informed in the Eclipse world usually. And I practice TDD not only in Java but in other languages too. I think in times with low subscriptions you should not rise the subscription fee. I don’t understand your reasoning. You try to figure out the size of the market with what kind of marketing again? Good luck on your next projects!

KentBeckJuly 19th, 2009 at 4:42 am

Marketing is stochastic, so if you are a potential Max user and you just heard about Max that doesn’t invalidate the marketing I did. If 1000 people had responded to say, “I just heard about it…”, then I would have to reconsider. So far three people have reported as you did. More about my marketing/PR campaign in a future post.

KentBeckJuly 19th, 2009 at 4:43 am

Owen,

P.S. Please do assign a continuous testing plugin as a student project. I learned a tremendous amount writing it and I would recommend the experience to anyone who is interested in developer tools.

[...] Last week, I’ve written about the Lessons Learned by Kent Beck in his post: Putting Max on the Back Burner. [...]

Adrian MouatJuly 20th, 2009 at 6:27 am

I have to agree with Elliotte Rusty Harold and Andrew Binstock; I think you’ve probably under-estimated the market. This is pretty much the first I’ve heard of JUnit Max.

Of course, the factor by which you’ve underestimated may still not be enough for a decent business (I have to admit that I dislike the subscription model and probably wouldn’t have purchased).

Good luck with the next project.

Alan FrancisJuly 20th, 2009 at 6:55 am

Kent,

With Eclipse being free (as in beer, as well as speech) I suspect a significant portion of it’s userbase use it for just that reason. I suspect trying to make money from Eclipse users is never going to fly.

People pay money for IntelliJ, for example. People also happily spend money (typically 20-40 bucks a time) on Mac software. Perhaps focussing some of the max ideas on IntelliJ (if it’s Java-specific) or iPhone/Cocoa development would be a lucrative option. TDDing for Cocoa sucks large.

Alan

KentBeckJuly 20th, 2009 at 7:35 am

I’m sure that I could have sold 3x or 5x or 10x as many copies by going to IntelliJ. However, I would need 100-1000x the subscribers to build a real business. I proved to my own satisfaction that the market was never going to be that size.

Riding the iPhone wave makes more sense, in a Studabaker/Levi Strauss/Wells-Fargo way (those were the people who actually made money on the gold rush, not the schlub miners).

KentBeckJuly 20th, 2009 at 7:37 am

Adrian,

I still don’t see how I underestimated the market. I didn’t say I’d sold all I ever could sell. I’m sure there were more sales out there. There just weren’t enough to justify the cost and time of getting them.

[...] stesso si puo’ dire dell’analisi di Kent Beck sulla sua scelta di smettere lo sviluppo di JUnit Max che io personalmente non condivido, ma lui ha sicuramente il punto di vista piu’ completo [...]

Mik KerstenJuly 21st, 2009 at 6:36 pm

> I’ll soon be launching a new product for developers of Eclipse-based products to
> deliver real-time feedback about errors. We’ll see if I get enough revenue to get
> the wheels off the ground of this one. If you have an Eclipse-based application
> deployed and want to find out what’s going on “out there”, drop me a line.

We have some Eclipse-based API in Mylyn that you might be interested in building on for this effort. Check out: http://eclipse.org/mylyn/new/#general (see Integrated Bug Reporting and Report from Help Menu). This gets more interesting when you consider how it can be hooked up to the Eclipse-based usage tracking technology: http://wiki.eclipse.org/index.php/Mylyn/Integrator_Reference#Monitor_API (see the two Resources listed).

Mik Kersten
CEO of Tasktop
Lead of Eclipse Mylyn

BenJuly 23rd, 2009 at 6:04 am

Wow, I can’t believe you are stopping this early.
One way of looking at market size is to look at your competitors at dnb.com, e.g for businesses targeting java testing tools. There are some out there. I know for a fact it’s got a few players making collectively around 50M (or at least it was when we investigated it for a test generator product we were building).

Have you talked to people like atlassian, instantiations etc about the market? Usually people are more than willing to discuss, even if you are competitive.

I pride myself in keeping up with technology. I use every method I can get to find new things and I never even came across junit max until it was featured on hackernews.

E.g.
http://javablogs.com/Search.action?query=beck&sortOption=Relevant&dateOption=Last+Month
http://www.dzone.com/links/search.html?query=kent+beck&x=0&y=0
http://blogs.atlassian.com/news/2009/02/from_startup_to.html
http://blogs.atlassian.com/news/2009/04/5_days_x_thousa.html

Your blog isn’t even mentioned on javablogs! By all means do what you wish, but please don’t claim you know the market.

KentBeckJuly 23rd, 2009 at 6:34 am

Ben,

Thank you for the feedback. My claim to understand the market for test tools well enough to make a business decision comes from my experience with JUnit for the past 12 years, my experience with Agitar for 3 years, and my recent experience actually selling into the market. I also talked to the people you mentioned. I might have missed a big opportunity, but I need to weigh that against the opportunity cost of not doing something else that seems to me to have more potential.

It would have been great to let Max bump along quietly for a while and see if it caught fire later, but I had six months or so of work before it would have been solid enough to drive the support costs down. As it was I had high support costs, low revenue, and shrinking capital. That’s not a sustainable situation. My decision was to move on.

Asim JalisAugust 7th, 2009 at 5:25 pm

Here are some thoughts on this.

1. What if you sold the project to companies directly instead of to individual programmers?

2. Was the lack of revenues a failure of JUnitMax or a failure of the subscription model?

3. What if you sell JUnitMax for $79, or $49, a one time price?

4. I noticed when I was selling my iPhone app that whenever I announced future features my sales dropped — people postpone buying if they think a nicer version is coming out soon.

5. JUnitMax’s subscription model might suffer from the same psychological effect: People might prefer something which is declared done (even if it is just a snapshot of an evolving app). If it is in the process of evolving they might postpone buying.

6. Selling JUnitMax as a product instead of as a subscription should be a cheap experiment to try out. Put the bits on a website. Use PayPal for payment processing. And then watch the Apache log with tail -f to see anyone bites.

7. The marketing for this might not necessarily need to focus on tangible engineering-oriented factors like fast response time. It could appeal to the emotions of developers and their managers. Do you want the free JUnit which is okay, or do you want to develop your code with JUnitMax which is like JUnit on steriods and possibly the best test framework that money can buy? Even if developers are not sold on the value of quick feedback they might just like the assurance of using something high-quality to develop their code.

8. You could try different types of messaging by playing with the headlines of your Google ad campaign to see which generates traffic. Or you could try them on friends. Sometimes one headline or appeal just works a lot better than others.

KentBeckAugust 10th, 2009 at 5:59 am

Asim,

Thank you for the suggestions. As you point out there were a number of marketing techniques I didn’t try with JUnit Max. The lack of an “enterprise” story was a big problem. Selling programs to programmers is like selling buns to a baker.

While I might have increased revenues 5-10x with the measures you suggest, the fundamental problem remains: there just aren’t that many programmers testing minute-by-minute. Without the market, marketing won’t help.

To be fair, the product needed to be better–faster, more complete interface, more scalable. However, I still think it was good enough to let me measure the market (this could just be rationalization). I didn’t see any path in the future that would have generated 200-500x the revenue, which is what I would have needed for a sustainable business.

BillNovember 6th, 2009 at 2:42 pm

OK. So add me to the list of just found out about it and am disappointed too. I found one of your presentations on QCon and decided to check it out. I mentioned it to my supervisor before I noticed the cancellation – doh. I really like the idea of making the errors like compilation errors in the editor – it would be nice to dial that feature on/off/medium, etc.

Jumping from testing as a separate activity to integrating it as a part of the programmer’s editing session is also something that I think would help AOP. I like the idea of AOP (I’ve used AspectJ) where you can focus on the cross cutting concern. Yet it is ‘separate’ from the code itself. This bothers IT managers (code generation, etc), and is less ‘integrated’ to the programmer.

I just don’t like the ‘flatness’ of code, or the ‘greyness’ of code: When I first walk into some product and have to ‘learn’ it, I can’t tell which class is important or how it fits into the overal picture. Basically, that’s because I don’t have a picture to put it in yet. I have to paint that entire picture to find out what things are and where they belong, and their place in the scheme of things. Then I know which classes and parts of them are hills, valleys, trees, sky, and mountains – I have a landscape, I know where to look for things, how they fit together, etc. But in the beginning, everything is flat – the same shade of gray. As I understand things, classes and such take on shape or color if you will.

Aspects help to color things in a cross cutting way – logging, error handling, etc. Other things besides the happy path. Brakes and seat belts – oh, that’s part of the safety system, engine and transmission – part of the locomotive system, etc. Yet the code has them all weaved together and you can’t see one from the other without filtering it in your head – noisy. I’d love to see a way to turn on or delineate these aspects – IN THE CODE. Annotations sort of help to do this. You see them in the code, yet they’re short little snippets instead of blocks of code. Sometimes you can collapse a comment block or method to cut down on the noise – so something like that capability for aspects would be useful I think. It would be cool if you could click on an aspect, and the code would kind of move out towards you, while the rest recessed. “ah, now I can see how this aspect is being done throughout the code.” Its important to have all the code in there, but it would be nice if the editor simply helped me to view the aspect I want to concentrate on.

Your thoughts?

Lawrence TierneyJuly 12th, 2010 at 12:02 am

Oh dear, I just found out about JUnit Max on Sunday to discover (on Monday) that it had been mothballed – shame.

adminJuly 12th, 2010 at 5:32 am

Lawrence,

We have just re-launched JUnit Max. See http://www.junitmax.com for details.