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.

41 Responses to “How To Successfully Compete With Open Source Software”

  1. Marius Gedminas March 7, 2009 at 10:05 am #

    A very good article.

    Personally, I have a feeling that most software follows the power law distribution (aka “the long tail”), but open source software has a longer tail (obsolete projects languish on some place like SourceForge rather than disappearing completely). This has both advantages (you’re more likely to find something obscure, and even if it doesn’t do what you want, it may be easier to start from an existing incomplete solution rather than from scratch) and disadvantages (a randomly chosen OSS project — especially from sourceforge — is likely to give you a frustrating experience).

    Given that this is a comment post on the Internet, you shouldn’t be surprised that I have no data whatsoever to support my hunch, other than “it stands to reason”.

    I also think that this article gives an excellent justification for web-based applications for those 90% of people who don’t know they have a software problem. Typing some words on a web page and pushing a button to download a .PDF (or a .DOC) is certainly simpler for the user, and incurs additional hosting costs that many OSS projects cannot afford (or may not want to).

    I find it somewhat strange to find myself arguing advantages for commercial software, since I’m a very strong OSS proponent. Then again, I empathise with people who just want to get it done with the minimum of fuss.

  2. imagine March 7, 2009 at 11:19 am #

    I imagine some guy adding user friendly design enhancement (icons) to BingoCardMaker, closes its source and sells it for 30 bucks. Not only good looking, but can easly be downloaded: Bingo Card Creator. I imagine him in the future, he’ll be OK, he’ll never face whether he’s a good or a bad programmer, maybe because bingo card making is not very complex and not such thing what has to be scaled up dramatically.
    I also imagine an other guy, who just hates to download small binaries without published source and reputable author from an unknown website cause he’s threatened by the idea of installing some trojan stuff. What if this guy just have the programming skills to convert the BingoCardMaker into a webapp which is even easier to use (dont have to download anything) and hosted for ads. He may be lazy and opt out from maintaining it but he’ll open source it and the communities of BingoCardMaker and other now inferior open source bingo card apps may continue to maintain and enhance it.
    I guess theory of evolution says the question is not whether this guy will come and kill Bingo Card Creator Dino, the only question is when webapp guy will come.

  3. Patrick March 7, 2009 at 11:37 am #

    The code to BCC is original except for libraries which I adhere strictly to the licenses to, and if you want a bingo card creating web application try Google, I know of about seven. Four have been available since the dino was born.

    They run ads, incidentally. Naturally, they’re my ads. If you don’t understand why people staring a free alternative in the face would click away to pay $30 for the paid version, you may want to reread the blog post.

  4. Steve March 7, 2009 at 2:44 pm #

    This is an excellent article.

  5. Scott Kane March 7, 2009 at 3:14 pm #

    @imagine

    Problem is we’ve been “imagining” it since the 90′s (and before) and it’s *still* not happening. After three decades I prefer to “imagine” less and look at what we see in patterns. The old “history repeats” adage which sees folks trying to take shortcuts by doing the things you mention invariably take shortcuts in every other aspect of their “business model” which ultimately ends in epic fail with the exception of a few, generally, market wise, horizontally positioned products.

  6. rontal March 7, 2009 at 3:52 pm #

    Excellent article. You are dead right on all points. Unfortunately, the people most in need of understanding what you are saying will never allow these ideas to enter their minds. I have found that you can talk until you are blue in the face to programmers about user oriented design, and you might as well be talking to a brick wall. There seems to be a massive disconnect between most programmers and human communication. And I have seen almost nothing to think that is going to change any time soon.

  7. Andrew March 7, 2009 at 5:00 pm #

    thanks for the interesting read :)

    I’m left wondering whether there really is a general principle here that applies to OSS vs proprietary software, or in fact if its just an observation about niche or minority interests not necessarily obeying rational rules.

    I don’t agree with any of the examples of areas where proprietary software can have an advantage – for example items 2,3 and 4 to me are ultimately the same – user experience. Whether a developer gets user experience or not is down to the developers involved – bureaucracy and processes that you might find in a commercial outfit don’t necessarily help or hinder fixing that.

    I do agree that OSS community interest normally sidelines the final mile of download convenience. Firefox gets it right. Eclipse doesn’t do too badly. But yeah – most don’t.

    The point I’d like to make is that I think if an OSS codebase reaches critical mass then there is probably no way of competing with it in the long run. ‘Long run’ is my get out clause for current counterexamples (e.g. win/linux).

    I guess in summary, I think you’re getting away with it because there just aren’t enough people interested in making bingo card making software :P

  8. Nicholas Hebb March 7, 2009 at 7:27 pm #

    Well written, as always, Patrick.

    Before even getting to section 3), SourceForge sprang to mind. The site is a pain to navigate, and most projects have minimalist descriptions, no screenshots, and no documentation. If you provide those 3 things on your site, you’ve beaten 99% of the FOSS competition.

  9. Joseph March 8, 2009 at 12:30 am #

    You are absolutely right. Just this week, I was thinking about this – developers don’t put themselves in customer shoes and look at the world. Its like ‘for-geeks-by-geeks’. But this is true for both OSS & commericial developers.

  10. Huy March 8, 2009 at 2:34 am #

    Thanks for sharing your insight on this. I’m grateful and amazed how both you and the creator of balsamiq: http://www.balsamiq.com/blog/?p=95 talk so openly about your business.

  11. Nemanja March 8, 2009 at 5:59 am #

    Thanks Patrick. Very interesting article, as usual.
    I’d really like to read your article on “Communicating safety”. If you ever find the time and inclination to write it, that is. :)

  12. andrew March 8, 2009 at 7:08 am #

    A very well written and thought out article, unfortunately it would have been more appropriate two years ago. Many of the issues you discussed have or are being rectified by both the open source commercial players and the community. Also in your last last line you mention that “plain ol” commercial software has a place in this world, it certainly does and that includes open source, what you actually meant is that “proprietary” software still has a place in this world, and it does too. An area where you were generally spot on is that most consumer oriented software has not been addressed by open source yet but there are some notable examples, probably the best email software out there today is Zimbra, an acquisition by Yahoo of an open source company, which passed gmail in installations last week. Today many mobile consumer applications are still proprietary but most of them are built and run on open source. And speaking of your specific domain there are a number of open source efforts going on with tremendous success. I found many of the applications at schoolforge.net quite simple to download and install.

  13. Michael March 9, 2009 at 7:12 am #

    In fact, all that separates your commercial application from an open source competitor is a bit of marketing and polish. It seems like so little, except that, as you so rightly recognise, open source developers have no motivation to take that final step (why should they? No one is paying them to do it, and it is probably not much fun for them…) But that does bring another wicked idea into my mind. What if someone were to take the best of the open source applications, do the polishing themselves and sell it? Sure, supply the source in a discreet little archive somewhere in the download as their customers won’t mind, as long as it doesn’t get in their way… and that is surely much less work than starting from scratch. Why should people pay if they can have it for free? For the same reasons that they do now.

  14. David March 9, 2009 at 7:51 am #

    This isn’t very much about “proprietary” vs. “OSS”. It’s about how a motivated developer can outperform others with less or different motivation. I think there are two main issues:

    1. Proprietary software is driven by sales. OSS projects (and I maintain two) don’t have any comparable incentive. We just want to make something useful, but we don’t get any reward in proportion to how many people actually use it. To put it another way – you may be competing against us, but we are not competing against you. We are just “doing what we’re doing”, and I’m happy if my hobby is useful to someone else. If they want to buy a commercial product instead, it doesn’t affect me. I don’t do “market research” to see what comparable commercial programs have to offer. Nonetheless, our programs have indeed become much more attractive to “ordinary people”.

    I’m not opposed to easy downloads with “pancake buttons”, or fancier icons, or anything like that, but I’m only motivated to spend so much time on my hobby. Also, as a programmer, cosmetic makeovers are just not interesting to work on – it would be different if my income depended on it.

    Proprietary team motto: “Let’s write software that will make us money”.
    OSS team motto: “Let’s have some fun writing software”.

    It isn’t surprising that different motivations lead to different work being done.

    2. OSS development is *slow*. I have to laugh whenever I see articles touting the “nimble OSS bazaar” rapidly surpassing monolithic proprietary development. Basically, OSS is fun to work on because there isn’t much time pressure, so desired progress can be put off indefinitely. OSS projects tend to look unfinished because they are unfinished. The saving strength is that source code availability keeps them from ever dying – some will languish indefinitely, but some eventually become mature, attractive software. You can compete with half-baked, unfinished OSS projects, but it is hard to compete once (if) they reach maturity.

  15. Yura March 9, 2009 at 9:23 am #

    Nice post, but let me disagree slightly here.

    As an user, I really hate programs that have an excess of “visual identity”. That sort of thinking is what results in programs like Winamp and the Nokia Ovi desktop tools (google for some screenshots). It looks cool to a designer, but it looks confusing and bloody annoying to an user.

    Taking your program as an example, there are several things that make me not want to use it:

    1. Java. I never had a single good experience with a desktop Java app because it always turned out to be a slow loading, RAM hogging, out of place looking monstruosity. Maybe your is an exception, but given the choice currently I’ll go with the app that’s not written in Java. The requirement to install a JVM is an additional issue.

    2. It looks out of place. It’s out of place in Windows, Linux or OS X. There are bound to be slight differences vs the conventions of the OS the user is using. This is extra annoyance and complication.

    3. Non-standard use of controls. A dropdown list is a very bad input method, and generally not used as such, but to keep a history. I’d have much preferred a separate window, with more space available for the list and the ability to easily select and delete multiple items.

    4. Unnecessary decoration. Yeah, it may look cute, but it also gets very annoying when it gets in the way of usability. For instance, forcing interface elements to have a particular color is an easy way to create something that can’t be seen on a system with a non-default theme, and create problems for people with vision issues like color blindness. Your screenshots seem to point at this as your program’s window has an unusual color that doesn’t match the BingoCardMaker one.

    Based on your screenshots, I’d absolutely try BingoCardMaker first, your program second. Though it’s also written in Java it clearly tries to fit in, which makes me expect it might not be the best thing ever, but at least won’t be annoying to use.

  16. Intelliginix March 9, 2009 at 12:21 pm #

    I agree with you on your comment about taking a lesson from Apple users. In the beginning Apple put a lot of time and money into the Graphical User Interface (that they stole from Xerox), to build a personal computer that was user-friend. They still do this today, in fact better than ever. I have a Windows Mobile phone, and I have many options for installing other interfaces on it, and I take advantage of this because the Windows Mobile interface sucks. Apple on the other hand came out of the box with a slick, easy-to-use, point-with-your-finger interface for their phone that was far superior that almost every other phone period. Now I use a PC, but I admire Steve Jobs vision and I respect where he has taken apple to but I still think their hardware is too pricey. One of the reasons I use open source software is because I save about $9,000.00 using a linux/mysql database server (with as many connections as I want) in place of a 25-user Windows Server 2008/MS SQL Server. WOW!

    One more point, I think a lot of open source software makers do understand that software must be appealling, and not just the features and functionality.

    http://intelliginix.com

  17. Jason Antman March 9, 2009 at 5:23 pm #

    Very interesting post. Being a developer that works entirely with an on Free software (“OSS”), my expectations when I saw the title were a bit low. But it was very enlightening, both about what Free software can do better, and about how Free and proprietary software can co-exist.

    Two comments I must make about SourceForge though -
    1) I’m a very technical person. I don’t have an end-user midset; if I have a problem, the first thing I think is software, and I don’t have anything wrong with changing the code to make it work. That being said, SourceForge is the last place *I* look for “end-user” software. The navigation and downloads are obviously still aimed at developers and technical users. In defense of that, it makes it a lot easier when I need to sort through ten operating systems on three architectures.

    2) “the median number of developers per OSS project hosted on Sourceforge is 1.” I love SourceForge. I have about half a dozen projects hosted on it. That being said, and I know I’d take a lot of flak for this… SourceForge, for me, is a playground. Once a project takes off, it moves to its’ own domain, its’ own server (or virtual server), and moves into my “production” bug tracking and CVS. From looking through SourceForge, I’ve found that many of the projects on there are the same way – SourceForge is a breeding ground, a playpen for young projects, but once they take off, they move on to bigger and better places…

  18. Glen Turner March 9, 2009 at 5:55 pm #

    It’s a shame there’s so much emphasis in your article on the download part of the user experience. SourceForge isn’t intended for end-users, any more than MSDN is. End users in a OSS system use “System | Administration | Add or remove software”, never see a website, and need not fret about the downloaded software being malware or conflicting with other software. Software installation and update is a broken part of Windows’ user experience.

    The rest of the comments are spot on. I’ve just finished editing a package description where the original author thinks that the amount of memory used per client is of interest to people trying to look for software to fit their problem. Sigh.

    I think it odd that people think the B2C pay-to-play consumer software is at risk from FOSS. I rather think that it’s the top of the software chain that is under pressure. That’s where the most money providing the least value exists, and so those being ripped off are willing to spend some money/salary to encourage FOSS alternatives.

  19. Patrick March 10, 2009 at 12:27 am #

    End users in a OSS system use “System | Administration | Add or remove software”, never see a website, and need not fret about the downloaded software being malware or conflicting with other software

    End users in an OSS system who only installed software through the repositories would have absolutely no way of meeting their bingo card printing needs, because the software they need is not in the repositories. Do you understand why I would not consider that situation a big competitive threat?

  20. Chris Snyder March 10, 2009 at 5:32 am #

    It’s easy to lose sight of the original goal of open source software: freedom. Freedom to know what a program does, how it works, and ensure that it isn’t going to do something unexpected or undesirable. Computers are now a fundamental part of the fabric of our lives. It’s actually important to many of us that the software we use to control them be as transparent as possible.

    Open source is also life insurance for the applications we rely on: if something happens to the developer, or the goals of the project change, the code is still there to be picked up by another developer.

    Software can and should be open source without being free of cost. I get paid to write OSS. Plenty of other folks do, too. For any non-trivial project, having the source code is only the beginning. Knowing how to compile and deploy it, and how to support it, is much more important. People, and companies, will pay for that. And those fees can support professional design, copy writing, QA testing, and support staff.

    Please stop confusing open source with free or hobby software. Yes, those categories overlap, but they are not the same thing.

  21. sgtrock March 10, 2009 at 6:26 am #

    Excellent article. Any development team, closed source or OSS, that wishes to broaden their user base can take a lot of very useful information from your article.

    I do have a couple of comments about points that you raise. First, this:

    End users in an OSS system who only installed software through the repositories would have absolutely no way of meeting their bingo card printing needs, because the software they need is not in the repositories. Do you understand why I would not consider that situation a big competitive threat?

    That’s a very good point for any application that is not covered by a given distribution’s repository. That leaves space for many niche requirements to thrive as commercial alternatives.

    With that said, though, I take issue with your characterizing this as solely an OSS issue. I’ve seen more than my share of poorly constructed, badly written UIs from commercial vendors, too. As someone implied earlier in the conversation, OSS projects tend to hang around forever. Closed source, commercial software tends to disappear over time regardless of how well it is written. The end result is that the pool of small OSS projects may seem to be defined by projects that no longer have active maintainers while their closed source counterparts simply disappear.

    The end result is that there can be far more choice of OSS projects in comparison to closed source applications. That means that there is a requirement to do a little in the way of basic analysis before choosing an OSS app to meet a business requirement instead of just picking the first one that looks good. Sourceforge provides a great interface for that part of the decision making process for someone with a little patience. Of course, not everyone has that patience. (I agree wholeheartedly with your comment about Sourceforge’s default download page, though. Truly horribly thought out.)

    That lack of patience is not necessarily a bad thing. People have a HUGE variety of characteristics and imperatives that cause them to take different paths to making a decision. Projects willing to adapt their approach to take that into account will certainly be more successful than those who ignore this very basic fact of human nature.

  22. Scott Kane March 11, 2009 at 4:34 am #

    “It’s easy to lose sight of the original goal of open source software: freedom. Freedom to know what a program does, how it works, and ensure that it isn’t going to do something unexpected or undesirable.”

    Got to admit this always makes me laugh for several reasons.

    1. For the type of people (B2C) Patrick is talking about or at least markets to, there is no “freedom” in being able to read the source and check for (let alone know the definition of) “something unexpected or undesirable.”

    2. There is nother free about FOS that has a GNU variation license. It’s got to be one of the most clandestine, opaque and restrictive software documents ever invented.

  23. Joske Vermeulen March 11, 2009 at 1:53 pm #

    Most of the responses here crack me up. It’s easy to recognize which posters came from the OSS blogs that linked to this post – they all display the same cognitive anomalies:

    - “Based on your screenshots, I’d absolutely try BingoCardMaker first, your program second. ” – a conclusion justified by 4 points that are of absolutely no relevance to any end user except those that already know how to write software. Way to miss the point.

    - “It’s easy to lose sight of the original goal of open source software: freedom. Freedom to know what a program does, how it works, and ensure that it isn’t going to do something unexpected or undesirable” – of course, because every time anyone downloads a tarball from sourceforge the first thing they do is spend 3 days going through all the code to make sure everything works ok :rollseyes: The response is going to be ‘no, but the packager does!’ – yeah right.

    - “In fact, all that separates your commercial application from an open source competitor is a bit of marketing and polish.” – this one made me laugh in particular because of the implied ‘oh the marketing and the polish, that’s easy and I could do it over lunch but I’m too good for that so I’ll leave it as an exercise for the reader”.

    So many choice quotes in these replies, it’s almost painful to watch. Reads like funroll-loops.info except to RMS devotees rather than Gentoo devotees.

    (just as an aside, yes I have contributed code to OS projects in the past, have been running Linux since before kernel 2.x series days and have been a professional Linux sysadmin, but please guys stay real when it comes to the quality level of end-user software for Linux. It’s a part of the software landscape that isn’t going to be filled by OSS in years to come – I think I first saw ‘xxx will be the year of Linux on the desktop’ on slashdot for a value of xxx = 1999).

  24. Sanjay Kanade March 15, 2009 at 7:28 am #

    Very nice article! I agree. What the end users really look for is a solution to a problem. When they find it, they feel successful and lucky, and many times grateful too. It doesn’t matter whether it is commercial software or free software. What contributes to that success are a lot of things–your advertising, web site, the trust that it instills, easy download and finally the software itself along with its getting started documentation. Personally, when I go looking for software or even development tools, I just type the keywords on the actual problem I am trying to solve. Just last week, I looked for file comparison software, found beyondcompare, tried it for a few days and bought it. I’m sure there might be open source stuff doing similar things. But I didn’t have time. I bought the first one I liked afer trying a few of them.

    I can’t imagine an end user doing anything different unless he has lot of time on his hands, has a positive prior experience with OSS, knows and understands the buzzword and what it means, its advantages and disadvantages, and so on. Too many ifs in there.

  25. Perry Ismangil March 16, 2009 at 12:20 pm #

    As one commenter already pointed out, this article is not really about closed vs open but “professional software product” vs “software project”.

    If you instead compare it to professional open source software, where one or more vendor (it can even be a Micro ISV) is backing the software product, then most of the tips above wouldn’t apply.

    That’s because the professional open source software vendor would think exactly as any other software vendor: usability, packaging, support and so on.

  26. гaгaш May 26, 2009 at 1:40 am #

    А если не тайна, автор блога откуда родом?

  27. WiND May 28, 2009 at 1:41 pm #

    Бежал от волка, попал на медведя. :)

  28. J October 12, 2009 at 9:01 am #

    Excellent article depicting exactly what I am thinking (that proprietary software can and will always compete with OSS).
    It also gave me a good idea: Design a good GUI for that OSS program and sell it! (how come I never thought of it before?).

  29. open source virtualization November 9, 2011 at 11:02 pm #

    That is really fascinating, You are an excessively professional blogger. I have joined your rss feed and sit up for seeking extra of your fantastic post. Additionally, I have shared your site in my social networks

Trackbacks/Pingbacks

  1. Events for 2009-03-07 | Tomas Kohl - March 7, 2009

    [...] Bookmarked a link on Delicious. How To Successfully Compete With Open Source Software [...]

  2. How to successfully compete with open source software « Dark Matter Matters - March 8, 2009

    [...] marketing, open source, positioning, proprietary software, Red Hat, user experience Found an interesting post via a Twitter friend today with ideas on how proprietary software companies can compete with open [...]

  3. links for 2009-03-08 « Striving for greatness - March 8, 2009

    [...] How To Successfully Compete With Open Source Software “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.” (tags: entrepreneurship opensource marketing business) [...]

  4. ep - Sugar Digest 2009-03-10 - March 10, 2009

    [...] 4. Recommended reading. Bernie Innocenti circulated a link to some interesting reading about software projects. Don’t be put off by the title—there are some good ideas here (How to successfully compete with open-source software). [...]

  5. Weekly linkdump #167 - max - блог разработчиков - March 12, 2009

    [...] Почему пользователи покупают платный софт, даже когда есть бесплатные альтернативы, How To Successfully Compete With Open Source Software [...]

  6. Socks, Software, and the “Stupid” Questions Costing You Sales - March 16, 2009

    [...] response to my recent article about OSS vs. proprietary software, which stressed the need to perform handholding of non-technical users, some comments said [...]

  7. オープンソース・ソフトウェアとうまく勝負するにはどうするか: MicroISV on a Shoestring - March 18, 2009

    [...] note: this is the Japanese translation of “How To Successfully Compete With OSS”, which I prepared because some Japanese blogs were apparently interested in [...]

  8. On the Edge of Occam’s Razor » Web or Installed Application? - September 24, 2009

    [...] This has to be made as painless as possible. There’s a great post about this – see How to Successfully Compete with Open Source Software – that I wholeheartedly agree with; I won’t reiterate the points made there, except to [...]

  9. On the Edge of Occam’s Razor » Building the Community, Part One - November 4, 2009

    [...] like offer attractive facilities to developers here, but are not at all usable by end users (See How to successfully compete with Open Source software by Patrick McKenzie for a critical view of SourceForge as being unsuitable for end [...]

  10. Competing With Open Source Software | Hussein's Thoughts - June 10, 2010

    [...] How To Successfully Compete With Open Source Software: MicroISV on a Shoestring. [...]

  11. Competing With Open Source Software | Hussein's Thoughts - June 10, 2010

    [...] How To Successfully Compete With Open Source Software: MicroISV on a Shoestring. [...]

  12. Lessons Learned At Business of Software 2010: MicroISV on a Shoestring - October 15, 2010

    [...] the size of the movement).  Happily for those of us who sell software, almost all OSS projects are incompetent at marketing, which matters more than technical execution.  Seth gave an example of trying to sell water: what [...]

Loading...
Free video + email advice on making & selling software:
(1~2 emails a week.)