Archive | microISV RSS feed for this section

How To Successfully Compete With Open Source Software

(This post recently got linked on Japanese blogs.  英語より日本語の方が楽な方:これを和訳しようとしています。日本語版はこちらです。)

Every once in a while, somebody on the Business of Software forums asks whether there is any point to trying to compete with open source software (OSS — essentially, software anyone can use and modify without needing to pay money or receive permission).  This is very possible, as folks such as Joel Spolsky pointed out in the ensuing discussion.    I particularly liked one comment on Hacker News about how to compete as Enterprise software.  However, relatively few people in the discussion mentioned B2C (Business To Consumer — you know, the stuff that isn’t paid for by an expense account) software, which people often tell me is doomed, doomed, doomed.  Seeing as how I run a small B2C software business, and am experiencing a crushing shortage of doom, I thought I would explain why this is possible.

My bona fides: I run Bingo Card Creator, which makes educational bingo cards for teachers and parents.  It is about as B2C as you can get.  Sales last year were in the $20,000 range, sales this year are up substantially, and I expect profits will exceed my day job salary/benefits/etc by the end of April.  I started the business in July 2006, when there were already at least two OSS projects which did roughly the same thing: BingoCardMaker and bingo-cards.  (You can tell we really spend a lot of time thinking about naming in my niche, can’t you.)

Thus, my comments are about the other 99% of OSS projects, the low-profile projects which a) do useful things for people and b) you have never heard of.  All OSS is not Firefox in the same way that all proprietary software is not Microsoft Office.

I like OSS, too: I make extensive use of OSS in my business and at my day job.  I routinely contribute code to projects, OSS my own software when it makes competitive sense (you can download my shopping cart), and generally love the stuff.  I don’t see OSS and proprietary software as existential threats to each other.

Thus, when I give developers advice on how to compete with OSS, its not in the sense that I want to trample over the movement’s corpse, burn their homes, and hear the lamentations of their women.  I just believe in getting people to the right tools for the right problems, and often, that tool is going to cost money.  (Nothing wrong with that!)

Places Where Software Developers Can Outdo OSS:

1)  Marketing

Software solves problems.  Customers have problems.  Customers do not know that their problems are sometimes solvable with software.

Less than 1% of customers perceive their problem as a software problem: Whether your software makes bingo cards or drafts table plans or helps people improve their poker game, all it is doing is helping someone get around a problem they had long before they sat down at the computer.  After getting frustrated with their existing attempted solution to the problem, they probably Googled something pretty generic like [how do I make bingo cards].  Empirically, only about 800 people out of the 147,000 who found me from Google in the last year were specifically looking for software.  Add in another 1,600 who were looking for a download, and that’s still 97% who had a bingo problem, not a software problem.

OSS concentrates on the software, not the problems the software can solve: Take a look at an OSS site, any OSS site.  You’ll see a whole lot of talking about the software, the implementation of the software, the source code for the software, how you can contribute to the software, etc.  You’ll almost never see anything about the problem domain — the assumption is that, if you’ve stumbled upon the site, you already know you have a software problem.  

If your marketing is premised around your user knowing they have a software problem, you won’t SEO to capture people looking for solutions for the issues in their problem domains.  Your evangelists will talk with other people who are enthusiastic about software, not with people who consider software about as intrinsically interesting as toasters.  (Many of my most enthusiastic customers despise every minute of using their computers.  They put up with it because it gets them back to their kids faster than any non-computer alternative.)

2) Design

OSS projects, particularly the 99% that are relevant to this discussion, routinely do not allocate resources to creating attractive designs.  For whatever reason, opened source graphical work is still rather rare, most developers (myself included) have the artistic skill of inept mole rats, and the obvious pay-somebody-who-does-it-better solution runs into the problem that the typical OSS project has no budget and no patience to deal with “unfree” licenses, which are the only kind commercially available stock icons have.

This results in a lot of OSS software looking something like:

That design is nice and clean.  However, it looks like the properties dialog box in Eclipse — lots of functionality optimized for packing as many things onto one screen as possible.  There is little thought given to incorporating color into the design, giving the program its own logo or visual identity, or arranging the 13 controls in a user-centric fashion.  Even with those criticisms, this is a good design for OSS software.  I have seen far, far worse.  But we could do so much better, and when we have an incentive to, we do.

The importance of design: I don’t personally use Macs but I think everyone in B2C software needs to take lessons from Apple and the Mac community.  They have proven, again and again, that people will pay a premium for products which are attractive.  Often in B2C the first glimpse of the software makes the sale and everything after that is just justifying to the customer that their gut decision was the right one.  (Same with publishing, incidentally: people really do judge books based on their cover.)

Example: I doubled sales of Bingo Card Creator waaaaay back in August 2006 by adding some more attractive stock icons to it than the fairly staid Java icons I had been using previously.  (That first link has the before/after shots if you want to see it.) 

The workflow is fundamentally different than BingoCardMaker (more about that later), but you can see that this design makes use of bright, pleasing colors.  (Its absolutely amazing how a few bucks worth of icons makes a bog-standard Swing app look so little like a Swing app, isn’t it?)  This is more inviting to the primarily non-technical users who make up the core of my market: it promises to be fun, not painful, to use.

3)  User Experience

“User experience” is easiest to define as “that touchy-feely stuff that Apple does really freaking well”.  The more formal description is that all stages of interaction with the software — from downloading it, to installing it, to using it the first time, to using it the 400th time, and all points in between — should induce joy and contentment, not frustration and rage.

Here’s a bit of homework: find yourself a non-technical person.  Tell them the name of a piece of software on, say, Sourceforge.  Then tell them to download and run it.  Stay in the room but don’t help with completion of the task.

This is so frustrating to most users that the test should probably not be allowed by the human subjects board at most universities.  Somebody might get killed.

Here’s a true story for you.  BingoCardMaker supports one feature which my program does not (picture bingo cards), and which I have no intentions of adding, despite the fact that it is the most requested feature by far.  Accordingly, I used to tell customers who needed that feature “I’m very sorry I can’t help you, but this software can — why don’t you try it?” and I would direct them straight to the download page.

One customer (who is by no means unintelligent) was furious because she spent fifteen minutes on the page unsuccessfully trying to download before deciding it was broken.  Here’s the section of the page: can you tell me what went wrong?

Those words architecture or operating system are pretty confusing, but the word “download” is not.  My customer knew she had to “download”.  So she clicked it, and “the screen blinked away”.  (Clicking download takes you to a list of packages published by the product — totally obvious to a non-technical user, right?)  Then she got back and clicked on options, figuring that it would offer “options for downloading”, but nothing she clicked there worked either.  Finally, frustration mounting rapidly, she clicked Bingo Card Maker because that was what she wanted… and the screen “blinked” again.  (It collapses the tree of options for that package, causing the BingoCardMaker-5.5.1.jar link to vanish.  That link is the one you have to click.  This is quite obvious if you are a Java developer — not quite so obvious if you hold a PhD in English Literature.)

Do not bury the goal: I should mention that if you’re coming from the project page at Sourceforge, the above is three clicks deep after clicking download.  By comparison, downloading Bingo Card Creator takes one click for most people — its the big, blue button that says Download Free Trial.  Folks whose browsers don’t support that are showed the following: 

That was once described as “big pancake buttons” by one of the international developers on the Business of Software forums, and the name sort of stuck.  Pancake buttons work.  They are far, far, far more effective at helping users complete their task (downloading the software) that unobtrusive text links or smaller download buttons — the pancake buttons outperformed by smaller buttons by a factor of 3, and those buttons were themselves much improved successors of my original buttons which had outperformed plain text links by a factor of two.

Wow, it sounds that I’m saying that most prospective users of OSS can’t even manage to download it.  Let me be clear: that is exactly what I am saying.  It isn’t their fault — when our users can’t use our software (and websites are just a special case of software), that means we have failed in our jobs, whether we’re proprietary or OSS developers.  

On to installation: User experience scarcely ends with the download.  Oh no, the opportunities to frustrate and enrage are just beginning!  For example, that JAR file they just downloaded got dumped in a downloads folder somewhere and… well… that is about it.  To execute it, you need to be able to find your downloads folder and double click on it.  The next time you want to execute it, you have to do that again.

By comparison, if you were downloading Bingo Card Creator, you’d get a prompt from your browser asking if you wanted to run it.  It would then take you through a Windows installer which, in a very simple fashion with sensible defaults, would put links on your desktop and start menu to the program, then start it up for you.  At no point do you have to learn any irrelevant trivia like “JAR files are special things created by Java which are sort of like programs, except when they aren’t, and sometimes double clicking on them runs them, except when it causes nasty errors.”

There is a JAR file sitting at the heart of Bingo Card Creator, too — and if my users need to know that then I have failed.  Incidentally, if you do desktop Java development for Windows, please use JET or Launch4j or something.  Java developers deploying to Mac should use the JAR bundler.  (You can even do this from a Windows machine with an OSS ant task.  It is a lifesaver for all of us committed Vista users who need to deploy to OS X.)

User Experience never ends: All interaction with your program, with your site, with your community has user experience implications.  There are many, many opportunities to flub it.  I can’t cover all of them in this article, but I hope to expand on ways to not flub them at a later date.

4) Speaking the users’ language

In keeping with the “Users do not have a software problem” and “Users do not care about your technology choices” points covered above, users fundamentally do not talk like developers.  See this description for one of my OSS competitors:

GPL bingo card printing program (numeric, letter bingo and picture bingo). Also prints a calling sequence (equivalent to the output from a barrel full of balls). XML output for later linking to multimedia engine.

Let’s try that again with the technobabble removed:

GPL bingo card printing program (numeric, letter bingo and picture bingo). Also prints a calling sequence (equivalent to the output from a barrel full of balls). XML output for later linking to multimedia engine.

Those two surviving sentence fragments are all the publicly available description of this program.  Yep, that’s it.  You might have heard that OSS is weak on documentation?  That is only a problem if there is enough of a reason to suspect that the program will work for you in the first place, and two sentences is probably not enough to do it.

I want to quote a real customer of mine, who captures the B2C mindset about installing software very eloquently: “Before I download yet another program to my poor old computer, could you let me know if I can…”  Painful experience has taught this woman that downloading software to her computer is a risky activity.  Your website, in addition to making this process totally painless, needs to establish to her up-front the benefits of using your software and the safety of doing so.  (Communicating safety could be an entire article in itself.)

Incidentally, the Internet sucks the literacy out of people, so be prepared to explain the same thing several times to get the message across.  The most common question I have is “Is every bingo card unique?”  Yep, they’re randomized — that is the only reason you’d use the program and that feature has been the core of it since v1.0.  That fact is mentioned twice in bold on my front page, printed on the main UI of the program itself, etc.  And people still manage to ignore all that, find my email address, and ask me.  

Can you imagine how confused users would be if key features were documented only in blog postings distilled from commit logs, and present nowhere on the product site itself?

(I’m looking at you, Rails.)

5) Support

If you’ve been around OSS for any length of time, you know that almost every community has members who are caring, helpful, and patient.  Unfortunately, they’re not the only people handling support.  I get a lot of questions which sound something like “I clicked the button and it didn’t work” or “plz help can’t print” or “I downloaded the program to my printer and now my screen is grey.  Did you give me a virus?”

(If you don’t understand the significance of the screen being grey, look at the photo here.)

You can probably imagine how well those would go over on the typical OSS mailing list.  To say nothing of basic computer operation questions like “I bought a new computer last week and need to put your software on it.  What do I need to do?  Its not the old computer, which has your software on it, its a new computer.”

Most customers with B2C software — in my experience, about 95% as of late — don’t actually need to ask a question of you, ever.  You can handle all of their needs with well-thought-out automatic processes, FAQs, help files, rigorous improvement of any part of the software that routinely causes confusion, and the like.  However, users like know that there is someone who will be happy to help them out if they need it.  That is the main purpose of offering customer support — decreasing the perceived risk of using your software by demonstrating that there is a safety net.  (This is one reason you should write your support page with an eye to it being seen by someone who isn’t even using your software.)

6)  Technical superiority

You’ll notice I’ve been concentrating mostly on the 90% of the software busines that happens outside of the IDE.  However, there is no reason to assume that OSS is superior on a technical front, either.  I know, a million eyes makes all bugs shallow, yadda yadda yadda.  Back in my reality:

  • the median number of developers per OSS project hosted on Sourceforge is 1. 
  • Perhaps one project in five will ever leave beta.
  • All software has bugs, OSS is no exception.
  • The average software, commercial or OSS, is a usability nightmare.
  • Many programs have not been updated in years and lack the benefit of significant improvements in the state of the art made recently, from modern interface design to first-class integration with the Internet.  
  • Some OSS tries to be everything for everybody and ignores niche markets with pressing specific issues.  
  • Other OSS is hyper-adapted to the problems of a handful of developers scratching their own itches and is unusable by anyone with other requirements.

In other words, you can compete with OSS on a technical level the same way you compete with proprietary software on a technical level: execute better.  There’s really no magic to that.

Conclusion

All of these are opportunities for commercial developers to compete with OSS.  

The world is changing all the time, but plain-ol’ commercial desktop software still has a place in it.  Don’t get worried — concentrate on doing what you do well, from development to marketing to support, and the market will take care of the rest.

If you found this article interesting, try looking around the blog or signing up for the RSS feed.  There’s a lot more where this came from.

Book Recommendation For Budding Bloggers

Almost a year and a half ago, Stephane Grenier approached me about contributing a chapter to a book he was editing, at the time entitled Interview The Pros.  The general gist was collecting the thoughts of several dozen successful bloggers in interview format.  I was honored to be included (it still amazes me that I could credibly be included in a list of names including Seth Godin and Jeff Atwood), dashed out a chapter, and forgot about the project for 18 months.

Then on Tuesday the mailman stopped by my little apartment in central Japan and dropped off a package.  Five promotional copies for me — whee!  It turns out the book has been retitled Blog Blazers, an act I think Stephane owes somebody a beer for.  (The importance of titles is a major recurring theme in the book.)

I promptly updated ye olde resume to include “published author”, gave a copy to a friend of mine who was starting a business, and set about to reading it.

Structure 

The basic style of each of the 40 chapters is a question/answer session with the interviewee.  The questions are identical.  Representative sample:

  • What makes a blog successful?
  • How long does it take to be a successful blogger?
  • What is your biggest tip on writing a successful blog post?
  • What are your main methods of marketing your blog?
  • How do you monetize your blog?

The sheer diversity of answers to these is amazing — the book includes everyone from folks whose blogging generates a full-time income from AdSense, software consultants who are looking for professional contacts, an online weightloss diary, some guy with an interesting fascination with shoes (who wrote the funniest chapter, by far), and one computer programmer who should probably listen to his own advice more:

Speaking of timescales in blogging — recognize that you will be blogging until you stop blogging.  That sounds simple, but many peopole start out with a burst of post-every-day fever, which they cannot sustain over the long haul.  Pick a pace which is predictable and sustainable.

In my defense, it sounded a lot more credible when I wrote it.

My chapter focuses mainly on blogging as a small business and practical tips you can use to achieve success that way.  (A few of the other chapters are a bit more inspirational in nature, although most of them have some actionable advice.)

In Which I Disagree With My Marketing Idol

Example from my chapter:

I personally can’t stand the “Top Ten Ways To Write A Blog Post” type articles, as aside from being boring and aesthetically unpleasant they turn your blog into a commodity provider of lists.  Instead, absorb the lessons that style of writing provides which continuing to have unique positioning for your blog.  The important lessons are “titles which promise immediate benefits are a good idea” and “judicious use of formatting such as bullet points, bold text, and pictures can turn a scanning surfer into an engaged, active reader.”

Seth Godin’s take on the issue:

Use lists.

Write short, pithy posts.

That is one of many, many disagreements the authors have with each other, and I find them fascinating.  (A few other points of contention: the importance of monetization, the ideal post length, and the importance of SEO.  You’ll find many well-argued solutions to all of these in several chapters… and the right answer in my chapter, naturally.)

Single Best Advice From Me: 

I recommend… that you get familiar with two groups of websites in your niche: the folks who have achieved something close to what you want to achieve, and the folks who are on the path to success but just a wee bit farther than you are.  The first give you examples to emulate and objectives to strive for, and the second should become your new best friends, because a) they’re not too busy yet that they have millions of admirers and b) their support can really kick start your blog and help you both get closer to your goals.

For the other 200-odd pages of advice, you’ll have to buy the book.  At $16.95 I’d honestly say it was a steal, even if I had no connection to it whatsoever, because the value a blog can drive for a small business is immense.  (See my chapter, and several others, for elaboration.)

You’ve got two options for getting it.  One is to buy it directly from the Blog Blazers‘ site (where there is an e-book option).  I’m going to encourage you to sidestep them and purchase from Amazon instead.  My big reasoning for that is that publishing is a winners-win game, and purchases through Amazon increase the book’s Amazon rank, which results in more prominent placement on the site and also results in indirect marketing opportunities (“buy Blog Blazers, currently #1234 on Amazon”).  (At time of posting they only have two copies left.  Small order to start out with = book languishes in obscurity.  Break the cycle — buy a book today ;) )

As usual, I don’t have any monetary interest in the book or in your purchase of the book.  (i.e. those are not affiliate links)  I contributed to the book because Steph asked me to, and it was a pleasure to contribute a small bit to something which will hopefully provide value to people.  If you’re one of those uISVs scratching your head thinking “So I’ve heard them say 432 times ‘Blogging helps for marketing’ but I don’t consider myself an expert at this yet”, read the book.  I guarantee you you’ll learn something.

P.S.  Seth Godin is one of the world’s best living theorists about marketing.  I am not Seth Godin.  You are not Seth Godin.  Please, for all that is holy, don’t write list posts.

P.P.S. uISVs will recognize more than a few names: Ian Landsman, Bob Walsh, and Andy Brice all contributed chapters.

P.P.P.S Remind me to get the contact details of whomever did the cover design if I ever publish anything.

 

Cover of Blog Blazers book, depicting man with BB on chest standing atop world.

Cover of Blog Blazers book, depicting man with BB on chest standing atop world.

Leveraging OSS As A Software Developer

Cards on the table: I sell proprietary software, do occasional OSS work on both a volunteer and paid basis. and have been known to post to Slashdot on occasion about my love of Windows Vista.  This either means I’m sort of an agnostic in the wars of religion over software business models, or that I really love making enemies.  But I’m more of a fan of making friends, so I’m perpetually trying to convince members of both warring camps that they can get a lot of what they want out of the others.

One perpetual worry on the Business of Software forums is that some OSS developer (invariably a grungy, marginally employed coder with Jolt stains on his T-shirt) is going to come along, clone your application, and eat your lunch.  As a result there is a certain amount of hostility among small software developers towards OSS, which is a shame.  I spent some time earlier trying to address myths about it, but I thought I’d go one better and focus on ways OSS can make you money.

Concentrate On What You Do Best.  Let Other People Do Everything Else

Currently I’m finally getting restarted on my latest project, which is a web service that helps small businesses do content syndication across the Internet.  There are a number of interesting technical challenges here, including both server-side (“How do I let a person who is potentially only paying me $9 a month generate tens of thousands of pageviews without the server bills putting me in the poorhouse?”) and client side (“How do I use Javascript to make the whole process pain-free for non-technical end users?”). 

As it turns out, I’m a fair hand at some portions of the puzzle, but portions of it are complex.  Very complex.  You have no idea how far down the rabbit hole goes in web development, Alice.  I honestly think that it is impossible, flat out impossible, for any one person to be expert at all the technologies which are implicated by a trivial web application running on a modern web stack.  This includes everything from HTTP to the DOM model to Javascript to the database to relative velocities of the little spinning bits of metal that make everything work. 

Thankfully, programmers get this lovely tool called abstraction, which means we can concentrate on one bit of the problem at a time and treat the rest of the world as a Solved Problem.  For example, when I’m working on Rails, I am not thinking about the L1 cache policy on the server.  In fact, although I really appreciate my $150,000 CS degree, it is entirely possible that I will grow old and die without ever once worrying about L1 cache.  Smarter people take care of that stuff for me.

OSS Is About Smarter People Taking Care Of That Stuff For You

One key feature of my content syndication widgets is that they be able to spread without requiring user action away from the host site, to avoid antagonizing hosting site owners.  This was going to require some serious work on my part to achieve — probably several days worth, as Javascript is not my bag.  As it turns out, Lightbox Gone Wild (a variant of the Lightbox project which I’ve previously used to business-enhancing effect) took this from several days of work to about five minutes of integration. 

Lightbox Gone Wild is made by Wufoo, a company which doesn’t specialize in wild-and-crazy Javascript, but rather in selling a service which makes data collection easy for people.  Note that key word selling – OSS developers are typically not poor aesthetics who need to beg for their next cup of coffee.  Since wild-and-crazy Javascript doesn’t make Wufoo money directly, they release it back into the ecosystem for someone to extend (much as how they themselves extended the previous Lightbox project), with the added benefit that they may get to incorporate the extensions later and in the meantime people who have no interest in HTML forms nonetheless say good things about them.  (If you need form input and HTML scares you, go to Wufoo.  There, did my good deed for the day.)

In turn, I’m going to tweak their script a few times to add usability enhancing features (like backporting my “escape button closes the layer” tweak to the original Lightbox, which is a big win for non-technical customers), which increases the aggregate value of free OSS available but still gets me incrementally closer to making money from my paying customers. 

In fact, taking stock over what I’ve accomplished so far, I realize I’m doing a whole lot of this borrowing from OSS.  From classic infrastructure components (database, web server, application stack) to user interface elements (editing controls, charts) to a zillion pieces of behind the scenes wizardry, I’m probably literally using several thousand man months worth of software, adding two man months worth of glue and secret sauce, and then if all goes according to plan making a bit of money off of it.

Code Base By Writer

That’s the OSS Business Model

I often hear folks wondering whether they’ll make more money if they stop charging for their main application and OSS it.  Survey says no in most cases.  Rather than being engaged 100% in the production of OSS, you can OSS contributions you make which are boring, routine, and only tangentially connected to the main business of solving specific problems for your customers.  This allows you to lower development costs very modestly, but the social benefits are very nice for a bootstrapped software company. 

Giving away free stuff directly to your customers is a time-worn capitalist tradition, but giving away free stuff to other people works pretty decently too.  We live in an era where, for better or worse, GoogleBot is a judge of character and strongly prefers people who share.  (OSS users/developers have, on average, extraordinarily high levels of technical expertise and are solidly members of the linkerati.  They make good folks to influence from an SEO perspective.  You also get direct benefits from having vocal, technically capable, engaged people interested in you personally — although those direct benefits may not extend into them actually buying your software, but then again they weren’t in your niche to begin with so no harm done.)

OSS as a Barrier To Entry

But wait, there’s more.  It seems funny to say, since OSS is making it vastly easier for me to build my website, but I think that it functions as a barrier to entry for competitors.  You can’t just whistle your fingers and snap together 15 diverse and unconnected OSS projects into a usable application — the design and integration of complex systems is still a skill, and it is one that is in many ways more difficult than straight-up application development in some domains.  This turns skill with particular OSS projects, or generalized methods and patterns of integration, into one more competitive wedge you’ve got in your arsenal.

Additionally, OSS raises something of a quality cliff in front of prospective competitors who are not using as much as you.  Consider the typical graph of development effort expended versus value to the customer.  Typically, this gently slopes upwards for the first portion of the graph (“20% of the effort secures 80% of the value”), and then it plateus for a very long time as the easy wins are exhausted and the long, arduous process of software development begins. 

The curve for a developer using lots of OSS doesn’t look different in asymptotic behavior, but it contains numerous discontinuities along the way.  Every time you spend a small quantum of effort to integrate a new feature (that you didn’t have to write), your user-perceived quality gaps up.  Someone running along on your old curve, trying to keep up, runs straight into the quality cliff-face. 

Example: assume you and hypothetical competitor Bob include analytics in your application.  Both of you decide, sensibly, that the screens require a visual component.  Bob starts coding his.  You quickly integrate Google Charts, which while not strictly speaking OSS is the same general principle.  Now Bob isn’t just running the race against you — he’s running against the team at Google doing the Charts development and you’re already done and busy working on your next feature.  It makes OSS a great force multiplier.

Sidenote

Speaking of Google Charts: wonderful output, neatly solves the problem of graphing without requiring massive server-side resources or Flash-capable browsers.  Terrible, terrible API from a programming standpoint — you write uber-ugly incomprehensible URLs and their servers return the appropriate charts.  Luckily, folks have already extended it by offering wrappers in many popular programming languages (I mentioned the Ruby one already), which is another example of collaboration making a good thing better. 

I’m planning on eventually releasing a bit of magic myself, which will let you treat the charts as if they were being produced locally.  (There are decent reasons for this, from branding issues to future-proofing your site in case Google decides to cancel the charts project and you don’t want holes developing in all your old content all of a sudden.)

Antair Moving On And Moving Up

I had been wondering what happened to the Antair guys.  It appears they’re striking out for the big leagues, moving in to brand new digs and everything.  Why don’t you go over to wave and congratulate them on their successes?

I remember back when Andrey was still comparing his sales to mine to see if he was on a good track.  Suffice it to say that he’s since made it necessary for me to play a wee bit of catchup.

Steph Grenier On Generating Traffic For Your Website

I think I mentioned that I don’t really like ebooks the last time I reviewed one.  Please incorporate that total hatred by reference here.  Nonetheless, I gave that ebook, which was written by a professional colleague, an unreservedly positive review, because I sincerely think it will help many of my readers sell software.

Now I’m in sort of a conundrum — I received a copy of another e-book to review.  I respect the author greatly.  The other author who I already gave a positive review to praised the e-book lavishly.  So what’s my problem?

Well, frankly, I can’t imagine the book being all that useful to you, with the exception of three pages that are absolutely dynamite.  (It very well might be useful to some folks who don’t read this blog.  Why write a review for them, though?)

The story in 60 seconds: Steph Grenier of LandLordMax  wrote an e-book on How To Generate Traffic To Your Website.  (I also contributed a chapter to a real on-dead-tree book that Steph is getting published later this year.  The project is unrelated.)  The e-book includes 136 pages, with quite a few full-page annoted screen captures of Google.  We’ll call it about 120 pages of content, in which he covers 11 chapters, from SEO to Blogging to AdWords.

If you do the math there, that is about 11 pages per subject.  Now, supposing you were trying to explain blogging in 11 pages or less to someone who had never heard of the concept before, what do you think you could write before running out of space?

Well, maybe a good introduction to blogging for someone who is never heard of it.

And that is, in a nutshell, what about 95% of the e-book is.  A good introduction to SEO, AdWords, or blogging, for someone who has never heard of the topic.  At all.  If you have done any significant reading on the topics, this e-book will not teach you much that you don’t know.

Example excerpt from the chapter on Blogging:

[One reason why to blog is that it] can personalize your business. Instead of being just another faceless website it can give your website a second personality. It can give it that personal touch that people like. A lot of sales are through emotions, and people like to connect with people they like and trust. If you’re honest and real on your blog, and not just writing what you think people want to hear, you’ll create a personal bond with your customers. This will create long term traffic.

That paragraph is true.  It is fairly well-written.  It just doesn’t teach you anything you don’t already know if you habitually read blogs.  If you have ever read a blog post about why to blog, which are legion, you know it already.  If you already have a blog, you know this in your bones.  This section is also representative of the depth this book goes into on almost all subjects.  If you’re a non-technical small business owner who reads email but isn’t quite hip on this whole Internet thing yet, you might well learn quite a bit from this chapter.  If you’re running an ISV, this is almost certainly going to be akin to having a computer programmer sit through a middle school Algebra I lecture (“OK, class, I’m going to introduce a deep concept — sometimes, instead of a number, you can do math using a letter!  We call this a variable.”)

Topic Selection

I’m somewhat interested in SEO and linkbait, as long time readers of this blog know.  I really can’t recommend the chapter on SEO that much — if you have read almost anything on the subject you already know everything written here, and the topic selection leaves much to be desired.  For example, it covers Keyword Density (a metric which is, frankly, useless because it leads to no actionable insights on how to write your pages) at multi-page length.  Meanwhile, it almost ignores methods of getting links.  (Which is a shame, because this would have been a great time to mention the next section.) 

Three Pages I Really Loved

Pages 52-54 are, far and away, the best part of the book.  It provides a case study (incredibly rare in this book — most of it is basic techniques unconnected with any real examples) of how Steph used a free calculator on his website to double his traffic.  If this had been written elsewhere in the book, the level of detail would have been something like:

Freebies do attract traffic. Unfortunately it’s not always good traffic, some people will only come for the freebies and leave, but many will also stay and re-visit your website in the future (and possibly tell others about it). If you’re a blogger, they may read your other blog posts, buy your services, etc. If you’re a company they may look through your website for other interesting pages, they may tell others about what they found, etc. Freebies have always been a great way to attract attention and traffic. The key is how well you can convert the traffic coming from the freebies.

(Actually, the chapter on Freebies does start out like that.  Nothing you didn’t know already.)  But when grounded in the case study, the chapter suddenly becomes much more useful.  It examines the calculator from multiple points of view — promoting the freebie (which I’d call linkbait, incidentally, and mention REPEATEDLY in the SEO chapter because I will *guarantee* you this did more good for Steph than all his metatags could ever hope for) with a press release, for example.  If the entire book was like these three pages I’d be telling everybody I knew to go out and buy it today, but sadly they are an anomaly.

A Trend I’m Not That Fond Of

One of the reasons I hate e-books is they have a distressing tendency to turn into MLM schemes, with folks writing e-books to promote e-books to…  you get the general idea.  So when I see affiliate links in an e-book, that generally sends my spidersense tingling.  It means that the reader is paying for the privilege of reading an advertisement.  Moreover, unlike say an advertisement in your favorite magazine, rather than being adjacent to the content and clearly marked as not influencing the editorial judgement, these these affiliate ads are built into the content.  Example:

Today what we’ll attempt to do is give you an overview of the most effective SEO techniques at your disposal. I can’t hope to cover everything SEO related, there’s too much material. Indeed, I’d recommend the SEO Bookby Aaron Wall as further reading. I bought his EBook about 2 years ago and I still continue to personally reference it as a great resource. And as new SEO techniques surface and others expire, Aaron continues to update his EBook.

I broke that link intentionally.  Now, SEOBook is a great resource, I’ll agree.  I joined Aaron Wall’s (the author’s) training program for $100 a month, and feel I have gotten enough out of it to justify my first month (ask me about the second in another month).  But if you had found the chapter on SEO a little lacking in the useful detail department, and clicked on that link to go from the beginners’ class to the intermediate one, you’d have caused Steph to pretty much double his money on selling the book to you. 

This troubles me — not because making money on the Internet is a bad thing or anything, but once you start down this road, it becomes difficult for the reader to differentiate between the advice that you’re giving because it is solid advice and the advice you are giving because it offers a solid commission.

Similarly, Bob’s review also uses affiliate links for both Steph’s book and the inline reference to SEOBook.  And we’re off to the Internet Marketing races.  Instead of focusing on selling products of value to customers, we start down the merry path of cannibalizing members of our community for revenue by selling them on the dream of being a successful uISV.  They, in turn, then get to make money by selling the same products to other folks dreaming of being successful uISVs.  Who get to sell the same products to others hoping to be uISVs.  Instead of being an involved community of software entrepeneurs, it would be a community of MLM hucksterism, which does not bring value to anyone and doesn’t generate any revenue from outside the pyramid.

This concern is why I don’t put affiliate links on my site.  Keep in mind that I have the utmost respect for both Steph and Bob, I just think this trend is not in the long-term best interests of this community.

Review In Ten Seconds

Steph Grangier: great guy, successful uISV.  This book: not so hot for most uISVs.  If you buy it: save time, read and implement pages 52 to 54.

Brilliant Bit of Javascript for Redirecting Downloaders

One of my uISV buddies, Ethan (king of language learning software), took me to task earlier today for spending so much time optimizing my download page when I could just eliminate it entirely and link the download direct to the download button in most cases.  I had always had these issues with that solution:

  • My users don’t necessarily know what to do with a window that pops up
  • If I do an HTTP Refresh or Javascript redirect, many browsers pop a security warning
  • I have to discriminate between Mac and PC users somehow
  • It is impossible to track that conversion for AdWords purposes, currently

Examining Ethan’s code made it really easy to avoid the first two issues:

function SetUpRedirect()
{
var destination = “http://www.bingocardcreator.com/free-trial.htm“;
setTimeout(“window.location='”+destination+”‘”,3000);
return true;
}

If you stick that in the OnClick attribute of a link pointing at your favorite executable, three seconds after clicking the link and having the download initiate, the user’s browser goes to the download page in the background.  This causes no security warning, scores them as a download conversion with the appropriate code on the page, and presents graceful fallback behavior if they don’t know what to do with the window that just popped up, since you can give them instructions.

Ahh, but what to do about the difference between Windows and Mac computers, which need different installers?  First, we make a controller method to handle it in Rails:

def free_trial_download
    if request.user_agent.downcase =~ /mac/
      send_file “public/files/BingoCardCreator.zip”, :type => “application/zip”
    else
      send_file “public/files/BingoCardCreatorInstaller.exe”, :type => “application/exe”
    end
  end

 That essentially says “If I’m positive you’re using a Mac, initiate a download of the zip file.  Otherwise, initiate a download of the exe file.”  (Obviously since 92% of my downloads are PC users I want to err on the side of caution.) 

Then, with a simple route added to routes.rb:

map.downloadFreeTrial ‘free-trial/download’, :controller => ‘static’, :action => ‘free_trial_download’

we get a simple URL which is platform agnostic and which decides, on the server side, which version of the file to give them.  You can then decorate your links to the platform-agnostic URL with the code to redirect the page to the download page in the background, with Analytics click tracking, and what have you.  Easy peasy!  One less step in the conversion funnel, and instantaneous recovery of a large portion of the 20% of folks who bounce out of the funnel at the download page.

WARNING: send_file will cause your Rails process to block while that IO transfer takes place under certain older versions of Rails (not in 2.0 in my testing).  This will cause requests coming to the same Mongrel after the download to wait until the download completes to start, which if you have a 56k modem user could potentially cause your basic site access to be delayed for minutesNot good news!

My site has two Mongrels running, very few dynamic requests, and very small executables.  If your site doesn’t have this profile, instead of using send_file, 302 redirect the browser to the appropriate file and let your web server handle the request before Rails does.

WARNING NUMBER TWO: You don’t want bots hitting that action, so its time for a good-old robots.txt exclusion of it.  Note that deploying this sitewide will cause your free trial page to lose quite a bit of the juice you’re sending to it.  However, given that that page is typically linked far and wide on the Internet and doesn’t include much interesting content on it (which would distract from the conversion to the trial!), you can probably live with that tradeoff.

Quick request: if you run an obscure browser or a Mac, kindly use my OS-agnostic link and tell me if it works for you.  (You should get a prompt to download BingoCardCreator.zip )

Regsoft Picks Up the SWREG Scam

I just paid ~$16 to the excellent Robosoft folks to renew my subscription to their updates for the submission service, and lo and behold, it seems that Regsoft is now doing the same scam that SWREG got into hot water for earlier:

Regsoft Scam

To add insult to injury, they put my order through extended verification because they’re afraid that I’m trying to scam them.  (This happened when I purchased Robosoft the first time — IP address in Japan + billing address in America = fraud screening.  I need to remember to use my US proxy server next time, so that my profile looks like a smart crook rather than a dumb, legitimate customer.) 

(For those of you who haven’t heard of this before, the scam is that if you hit that Continue button or the link right next to it, your credit card gets charged $9 a month until you call up the number on your statement to cancel it.)

And if it were anybody but Robosoft, and would probably have called Visa already to report a probable fraud in progress.

September 2007 Stats, Or, You Make $1k a Month on WHAT!?

Capsule: I made it past the $1,000 mark in sales, finally.  Net profit was significantly below that due to heavy experimentation with AdWords.  It should hopefully be healthier this month.

Income:

Sales: 41 (1 refund due to customer error, 12 CDs)

Gross Income: $983 + $25 in Canadian + 26 pounds = ~ $1,061

Income Net Paypal: ~$1,039 

Expenses:

GoDaddy: $7

CrazyEgg: $9

e-junkie: $5

SwiftCD: $71

AdCenter: $18

AdWords: $325  (Yowch!)

Total Expenses: $435

Total Profit: $604

Commentary: Yes, as you can see I lost an awful lot of money figuring out what worked and what didn’t with AdWords.  Not all of that is “lost” so much as it is temporarily negative cashflow — there are literally thousands of my trial versions now installed as a result of that expenditure, and some portion of them are going to convert in the future.  I learned a few lessons: #1 you have to watch the content network like a hawk but #2 if you do, especially using their new Conversion Optimizer, it can be amazing.  (I am paying something like 24 cents a free trial now for the last week.  That implies a cost of less than $12 per additional $24 profit sale.  Do a little dance, make a lot of money, get down tonight.)

It seems like it has been a while since I posted updated Analytics stats, so here we go.  Note that the free trials is slightly borked at the moment (it conflicts with Website Optimizer, for some reason — was someone not paying attention to their own product line at Google?):

Visits: 16,000

Trial Downloads: 2,000 + download sites (conversion is about 12.5%, lower than the 20% I was getting last year due to both large numbers of uninterested prospects from the Google search “bingo cards” and also because I am much stricter in counting “conversions” now)

Known Good Trial Installs: 615 (6.5% of them bought, although this is slightly skewed by the fact that the easiest route for buying will automatically flag their trial as a known good install)

Biggest Source of Traffic: The Big G, with 46% of my traffic

Head of the Line or Long Tail?: Long Tail!   Google keywords averaged three hits apiece.  The top 10 keywords counted for only 40% of the total and it falls very, very rapidly from there.

What are the top few?  Same as usual.  Bingo cards, dolch sight word list (#2, first time ever I think), printable bingo cards, bingo card maker, bingo card creator. 

How is the blog doing?  That Free Bingo Card post gets about 1.5k hits a month now, translating into 500 clickthroughs to my site, and about 50 trials or ~ $35 a month in revenue.  ($50 this month, actually.)  Not bad for one single post, and I will finally get off my duff and launch the Bingo Card Creator blog this weekend.

Biggest Vexation?  Google only finds about 60% of my sales, and I remain clueless as to what percentage of AdWords referrals actually go on to buy.  I have a good lower bound for it (which makes my campaign borderline unprofitable) but have no clue what the actual number is — could be double, could be better.  Anecdotally, I definately see the sales numbers go up when I increase AdWords spending, but I’m not sure if the increase is .9x or 1.5x since the data is too darn noisy and limited to boot. 

Preliminary uISV Survey Results Up

Somebody on the Business of Software forums took it upon themselves to survey 96 uISVs on a variety of topics.  The preliminary results of the microISV survey, primarily about demographics, are now posted on their blog.  While I think that most folks are waiting with bated breath for the sales results, anybody who does that much work for the community deserves links early and often.  (Hint, hint for all you bloggers out there.)

Congratulations to E-junkie

Seen on my login screen today: E-junkie is now processing more than a Million U.S. Dollars worth of transactions per month!  Now that deserves a hearty congratulations, for a fellow scrappy little uISV which delivers a great service at a great price.  Now I just need to get back to the business of getting them closer to two million a month.  :)  (At $425 in 15 days, I’m almost a whole tenth of a percent of their business.  Woohoo!)