The Stack: Encouraging Adoption Through Ease of Use
The Stack: Encouraging Adoption Through Ease of UsePublished By: LinuxInsider.comViewed: 8243
Open source application developers shouldn't rely on users' willingness to jump through hoops. An app may be less expensive and have other advantages over the competition offered by mainstream vendors, but it's not likely to succeed if it demands effort users aren't willing to expend or expertise they don't have. April, 7, 2009 - LinuxInsider.com - I wonder if Levi Strauss would have made billions selling his blue jeans if he had said that the zipper was "sold separately." I wonder if cell phones would be as ubiquitous as they are today if everyone had to learn to speak binary in order to communicate using them. I wonder how many people would drive cars if they had to produce their own fuel. I wonder.
The sad truth is that this is how most of the open source world works. If you want to install one program, you're often expected
to find all its prerequisites and get them installed first. If you're
lucky, someone has already packaged up all the right versions of all
the prerequisites, along with the app you really want to install, into
the native package management system for whatever operating system you
happen to use. When there's something missing, it's usually obvious, which makes it
easy to reject the app. The difference between mainstream success and
utter failure is often in the details. Open source and free software
have made great strides into the mainstream, but it's taken us over two
decades to get there. Even today, there are only a handful of big
success stories, versus thousands of struggling apps that never see the
light of day.
Where's the Stack? Most of the open source applications in the world are missing their
stack. The stack is the complete suite of software that actually makes
an application work. These are the prerequisites, the plugins, the
installer, the management tools, and the application itself. If you're
writing a game, then you might have some sound libraries and a 3-D
rendering engine as part of your stack. If you're writing a desktop
app, then you might have a windowing application programming interface like
GTK+. If you're writing a server application, you might have
Apache and
MySQL as part of your stack. Every application of any size has a stack, and that stack grows as
your application gains complexity. As your application gains
complexity, getting your application to run gains complexity. The goal
of including the entire stack with your application is to get your user
up and running as quickly as possible. We live in a world of instant gratification and many choices. If a
user spends an hour trying to get your application running but then
realizes that one of your competitors can have him up and running in
under 15 minutes, which do you think he'll choose? In a world of constant media buzz, it's difficult to even get
someone to look at your product for a few minutes. Why give them any
reason to leave or any hurdles to jump? I wonder why so many people buy songs on iTunes even though they
know they could get those same songs free by using another piece of
software. Could it be that Apple (Nasdaq: AAPL) has made it easier to pay for the songs than it is to get them for
free? The same is true in the open source world. Just because your
application is free doesn't mean someone won't pay for the commercial
competitor. We pay because we often have more money than patience. Many Paths to Success I'm not saying that you shouldn't, and can't, make money on your open source application. After all, that's how I make my living. What I'm saying is if you want to get users to use your application, you need to make it easier for them to get started. Your user isn't you. They don't have your skills, your time, or your environment. If you want them to use your product, then provide an environment that gives them a good experience right off the bat. There are many ways to achieve this:
I strongly encourage developers to take a sort of kitchen sink approach. For example, provide commercial hosting, a demo server, VMware appliances, a Web-based install system and native packages run through the community -- and get the application included in systems like Debian and Ubuntu. Taking this sort of approach gives your current and potential users many ways both to evaluate and use your software. At minimum, your stack should have an installer, the prerequisites for your application, and the application itself. You can provide an even better user experience by giving the user an easy way to install plugins, manage application settings, and provide an uninstall mechanism. It doesn't matter whether you use native packages, a third-party distribution system, a VM (virtual machine) appliance, or write an installer yourself, just as long as you provide your user an easy way to get your application up and running. Making it easy for your users to evaluate and use your software is just the first step that we, as a community, need to take to move forward. Ray Kroc, the founder of McDonald's, said, "Look after the customer, and the business will take care of itself." I wonder if we in the open source community shouldn't adopt that as our credo too. JT Smith is the president of Plain Black Corporation and the creator of the WebGUI Application Framework. He speaks internationally on the topics of Web content management, web application development and open source software.
|