Archive for March, 2007

March’07 Status Update & Interesting Lesson

Saturday, March 31st, 2007

As a first interesting point, ViEmu sales are very strong now. At the level of sales I had reached in the second half of 2006, I could live off of ViEmu exclusively, even if a bit tightly. I’ve definitely lived with quite a lot less than that. In February, I released ViEmu for Word & Outlook and updated the web site design to present the three products and to get a more professional look. I was expecting a lot of existing ViEmu/VS customers to buy the Word & Outlook version - I offered a 15% discount as an incentive and to show my appreciation for their support. Quite a few bought the new product, but nowhere near a significant fraction (surprise). Anyway, February sales were about 30% higher than in January. I was also expecting lower sales in March, as the existing-customer-conversion factor would disappear, but nope. March sales have been over 30% higher than in February. Surprise again, this time a happy one.

This means that I can currently work full time in ViEmu and the text editor. Which, by the way, I’m already doing. I still have some ties to my previous day job, helping out now and then with areas which have not been covered by anyone else, but it’s a small part of my time. Hopefully, this will diminish further over the next weeks and months, until my involvement there is virtually non-existent. In any case, this is the moment sales allow fulltime dedication with ample room for slack – about 2 years since I first started, and 1.5 years since the release of ViEmu/VS 1.0. I’m single and have no major financial obligations, and I can live on quite little, so someone with a family and a morgage to pay would probably need more than that, but I hope this can be an interesting data point for others starting up out there – development takes time, marketing and building up awareness takes time, taking the product to a mature stage takes time, reaching the point where hundreds of people will talk about your product and support in such a favorable way that others will easily decide to buy, also takes time. Definitely wall-clock effort time, but calendar time is also necessary.

As a subjective summary, it’s taken longer than I expected, but the sales level achieved by ViEmu is way higher than I ever expected. I never thought it could pay a full-time salary for someone to maintain it. In the future, as the text editor becomes the main source of revenue, ViEmu sales will support having one person full- or part-time maintaining the product.

This month I’ve been less active than usually. Several things have confabulated to result in this. For one, I was planning to move to a new town after I finished the Word & Outlook version, and I have just done so. A lot of time this month has gone into finding an apartment to rent, buying all the necessary stuff, sorting out all the bureaucracy, multiple visits to the closest Ikea, and just generally getting installed in the new place. Now I’m starting to feel at home at the new apartment and able to concentrate in work somewhat again. I’ve kept taking care of support all the time, of course, as it’s the key point to keep customers happy and the business working, but I haven’t been able to do anything major.

But as a second important factor, I started reducing the stress I was submitting myself to – I was working way too many hours a day, and the last part, implementing ViEmu for Word and Outlook, had been as close to a nightmare as possible. I will give you some stats on lines-of-code counts which will show it, but the main point is that dealing with Word has been a huge effort. Difficult to do, so much that at certain points I had doubts that I’d be able to pull it off, and with that kind of difficulty that erodes you as you fight and overcome it: poorly thought interfaces, undocumented behavior, tests that require three days to implement only to find out that it’s not workable and you have to find another way around… If I was tired for two years of excessive work, this was the cherry on top. Once I got to release it and fix the most important flaws, I needed to take some rest. And my body has decided that I need an intense rest to compensate. For the past few days, I’ve been almost without energy, sleeping a lot, and not able to put a lot of effort or concentration into anything. It was probably something to expect. Anyway, I’m going to take everything in a more relaxed way for the next few weeks and see how I feel. “One task a day”, or something similar, should be doable and I will certainly enjoy the much needed recovery. This morning I implemented support for the “Orcas” version of Visual Studio (which is available as a preview), and this afternoon I’m writing this blog post, enough for a Saturday. I will also start exercising regularly, which should help in feeling better - and losing the 10kg (20 pounds) or so I’ve gained courtesy of ViEmu.

Even amidst all of this, I have been able to start slowly pounding away at the text editor. I’ve already forgone the possibility of releasing 1.0 by the summer, as that would require a level of work I cannot put in right now, but I will be working in it during the next few weeks and months, and hopefully having something working soon enough. I’m still agonizing over the name, fortunately I have some time before I have to make a final decision.

I was talking about lines of code. This is a breakdown of my current codebase (all in C++):

Core library (including regular expression engine): 15,500 lines
Vi/vim emulator: 15,000 lines
Visual Studio and SQL Server integration: 21,450 lines
Word & Outlook integration: 21,300 lines
Text editor: 38,150 lines

The last chunk (the text editor) is, as of yet, unreleased code, and still contains quite a few known problems. All the rest is released and quite solid, production quality code.

Over 100k lines of code, a single person over a period of two years, initially while holding a full-time day job – you can understand while I need some rest now. You can see how the integration in the environment can be pretty hefty, quite a lot larger than the actual vi/vim emulation core. I don’t repeat myself too much, as much as possible is reused by isolating as common templates or libraries (the whole vi/vim emulator is a bunch of templates that can hook into any of the supported environments).

The good thing of this? It’s some pretty solid technology that can’t be replicated easily. And there are some things there that I can and plan to use in additional products.

I promised an interesting lesson – where has the sales increase come from? On one hand, the number of orders has increased: increased popularity, better and more products, a more professional-looking web site, a more professional image given by the wider line-up of available products… I guess all of them are meaningful factors. But there is an additional factor: market segmentation, in an unusual way. Some time ago, I considered the idea of having “standard” and “professional” versions, at different price points. This allows you to charge a bit higher to those that can afford it like companies or professionals – or to charge less to those who can pay less, however you want to see it. But I ended up thinking that it didn’t make sense for a vi emulator. The goal for an emulator is clear, the features are already defined by the emulated product, and when the goal has been so clearly set for so many years, and one can’t make a meaningful standard/professional feature distinction, it would just look lame to arbitrarily cut functionality. So I put the idea aside.

But when I released the Word & Outlook version, I also added very interesting discounts for packs of the different ViEmu products. If you buy two ViEmu versions, you get about 35% off in the second one. And if you buy the three of them, you get the three for the price of two. Since the target market, although not exactly the same, is very similar for the products, this indeed acts as a segmentation tool. Those who can’t spend too much buy just one of them, but those for whom $100 or $150 isn’t too much (that is, companies and professionals) often buy a two-pack or the full three-pack. And this makes the average order quite a bit higher than it used to be. Together with increased number of orders, this makes for a nice increase in dollar-sales.

Give it some thought, as it’s another segmentation strategy that can work for your own products!

PS: Post written using vi emulation in Word :)