Software Strategies for Emerging DevelopersSoftware is big business. Every year, consumers spend over a hundred billion dollars purchasing shrink-wrap software. For you as a developer, shareware is a cheap, effective means of marketing and distributing your software.
Shareware lets the public redistribute your software for free, then pay a registration fee if they like it. Today, nearly all software companies provide some form of free trial version of their software.
Open source software, regardless of the particular license, reveals some portion of the source code so others can enhance the original offering. Commercial software, which includes shareware, typically does not. However, the wind of change is near.
Open source and its variations are now serious players in the market. Most of the world's Web sites are currently being served by Apache. Apple Computer has created a blend of open source and proprietary ingredients in its latest operating system, Mac OS X.
I'm the developer who created StreamRipper X and maintains it through SourceForge. Along the way, I've had to think about my software business and what strategy is best for me. In this article, I'll present a few approaches to positioning software, as food for thought -- not as an authority on the subject, but as a guy who likes writing applications for the Mac and who wants to encourage others to do the same.
"In my opinion, shareware tends to combine the worst of commercial software (no sources) with the worst of free software (no finishing touches). I simply do not believe in the shareware market at all."
Linus Torvalds, 1998
Despite what anyone says, armed with just a Mac and an Internet connection, you can develop, market, and sell quality products to a global audience. You can take advantage of software's scale economies, where the cost to produce by copying one or a million bits is virtually the same.
I think it's interesting that users have been conditioned to pay for commercial software, yet expect no rights except to run the binary without warranty or guarantee of technical support. Developers for commercial products really have very few responsibilities.
But to be successful, you must commit to consistently writing good software that meets users' needs. Over time, customers will not pay for programs that fall short of their expectations. It's the market that decides the value of your product.
Many software vendors are considering the value of open source software. There's a large pool of active developers, often critical components have been user-tested, and the time needed to develop and deliver to market can be shortened with open source, compared to writing everything from scratch yourself.
Open source lies somewhere in the middle between free software and proprietary products. For a little perspective, you might want to look at the Free Software Foundation's (FSF) diagram of various categories of software.
Software that you write, and retain ownership to, is proprietary. Ownership means control. Through a software license, you dictate the rights of others -- what they can and cannot do with your software. If you release your commercial software as shareware, you give the public the rights to run and redistribute the binary for free, while charging for a registration code.
The opposite of proprietary is public domain. By placing your software in the public domain, you relinquish ownership, and therefore control, of your software to the public. Note that free software, as defined by the FSF, is not in the public domain, since the GNU General Public License (GPL) dictates that if you distribute a modified version of the software, you must make the source code available under the same terms.
Ownership gives you the authority to decide the accessibility of your software. Accessibility can be considered a measure of how easy it is for the public to see, touch, and play with your software. It concerns not only source code, but also issues like data formats, APIs, licensing, and pricing. With shareware, you give the public easy access to trial versions of your software, but typically, no access to the source code. Shareware is closed software. It is not very accessible. In contrast, free software is open, as the source code is available, it costs nothing and you are free to make modifications.
Here's Craig Burton's technology matrix, which serves as a useful framework for analyzing software positioning by accessibility and ownership.
Apple's position on operating systems has shifted from the proprietary and closed MacOS to Mac OS X, a hybrid of open source Darwin and proprietary extensions. The appropriately-named Darwin reflects the evolutionary nature of software strategy; profits are threatened, and opportunities arise.
By choosing this path, Apple was able to launch an entirely new platform in a relatively short time. They didn't have to write every stack themselves, nor create each API from scratch. Plus, there's an entire pool of developers outside of the walls of Cupertino who can contribute to the growth of this operating system.
The best approach for you will be one that fits with your resources and philosophy. But it pays to understand all of the different models and licenses before you make up your mind.
"We believe the open source model is the most effective form of development for certain types of software. By pooling expertise with the open source development community, we expect to improve the quality, performance, and feature set of our software."
Apple Open Source FAQ
Accessibility, the ability for other developers to access and build upon existing code, is important to Apple. During a presentation last year, Doc Searls illustrated how Apple's technology strategy is becoming increasingly dependent upon open and ubiquitous infrastructure.
Closed and proprietary data formats limit software interoperability and tie users to a single software vendor, thereby placing data at risk of loss. Government and private initiatives are emerging to establish open, standardized data formats, which are non-vendor-specific, to facilitate the exchange of commercial data. This is a clear threat to the sales of Microsoft Office, which are driven in part by its closed and proprietary data formats having become de facto standards.
Plug-in architectures, AppleScript-ability, and exposure of APIs can promote wider adoption and advocacy of your software among third-party developers and users. By encouraging others to innovate and create wealth, your software becomes the focal point of a healthy ecosystem. Adobe's Photoshop serves as a platform for software vendors producing digital effects plug-ins. In financial institutions, VBA scripting transforms Excel into a platform for the development of trading tools.
Are there commercial reasons for you to give access to your source code? Businesses moving away from complete in-house systems development to the integration and customization of prepackaged software no longer have access to the source code for critical systems. Subsequently, for risk management purposes, there has been demand to review vendors' source code. Microsoft offers a shared source scheme to selected customers, while Apple strategically adopts open source to lower engineering costs of infrastructure projects.
"Linux is a serious competitor ... We have to compete with free software, on value, but in a smart way. We cannot price at zero, so we need to justify our posture and pricing. Linux isn't going to go away -- our job is to provide a better product in the marketplace ... Linux is not about free software, it is about community ... It's not like Novell, it isn't going to run out of money -- it started off bankrupt, in a way."
Steve Ballmer, September 2002
"Am I worried about open source databases? I'm really not."
Larry Ellison, August 2002
Your open source strategy should not only consider source code accessibility, but also how to compete against other developers while learning how to tap the community for a competitive advantage against proprietary developers.
|
Related Reading
Mac OS X Hacks |
A basic strategy is to embrace and extend. You can lower your cost base by incorporating existing open source code, which costs nothing, into your software. You benefit from a code base for which a community shoulders most of the responsibility of innovation, maintenance, and support.
To differentiate itself from the many open source versions of Unix, Apple has extended Darwin with its proprietary extensions Quartz, QuickTime, Carbon, and Cocoa. The extensions are closed (as they define Apple's consumer experience), which justifies Apple's pricing position.
Oracle, for now, can command a premium price, as customers are prepared to pay for what they perceive to be better database software. However, where open source software meets most user requirements, specifications, or standards, the effect has been to commoditize the market and reduce the pricing power of commercial rivals. If price becomes the key sales driver, companies must derive new revenue streams. For example, IBM and Red Hat don't sell Linux, they sell services.
At this point, the commercial solution may be to "open source" selected regions of your code. By encouraging commoditization, you hurt your commercial rivals. You may also benefit from the open source development model and drive third-party adoption of your software at the expense of open source rivals.
However, your competitors can scavenge or extend your code, and without valuable proprietary extensions, you may lose all pricing power for your software. Your software license should seek to balance commercial and community interests to avoid forking and lack of community support. You can use copyleft to ensure innovations are fed back to your community, and set license fees for commercial use.
RealNetworks' open source strategy, dubbed Helix, is repositioning the company's closed streaming media technology as an open source, media-agnostic delivery platform. Commoditizing the delivery platform may encourage sales of server management software and increase adoption of the still-proprietary RealAudio and RealVideo codecs, which must be licensed for commercial usage.
|
"Borland is taking a risk by releasing Kylix Open Edition as a fully-functional development environment. We're gambling that the availability of the free toolset will drive more sales of the commercial tools than it will cannibalize. If we're proven wrong, we will go back to what pays the bills."
Danny Thorpe of Delphi/Kylix R&D, August 2001
"Proprietary software companies hand out free copies for the same reason that cigarette companies give sample packs to college kids -- to encourage addiction."
Richard Stallman, Nov 2002
Giving away your software can increase market penetration and encourage third-party adoption.
Streaming media vendors have attempted to establish de facto standards by making client software available free of charge, while imposing a server tax that can cover anything from CPUs, computers, employees, and actual content to even the number of end users.
A loss leader strategy could see you offering software for free to build up a customer base, before charging for critical upgrades. If your free software has no functional restrictions, you must put forward compelling reasons for users to upgrade.
In the midst of a price war, pricing at zero can put your rivals out of business if they have no alternative revenue streams. The exception is open source software, which won't go bankrupt.
Still, some vendors give away proprietary software in order to weaken open source rivals by providing community members with a free solution as an alternative to writing their own.
It's possible for these vendors to sustain pricing at zero by subsidizing the cost of software development. One such technique is to bundle software with the sale of something else, though you might be accused of predatory pricing.
"It's hard to have a clear advantage in getting software widely accepted just because it's free. That's because Microsoft can distribute a lot of good software, like browsers and email clients, for free, making money in less direct ways."
Steve Wozniak, Jan 2000
Apple's position is to sell a unique computing experience to consumers, and make its profit from hardware sales. To appeal to its intended audience, Apple, like Microsoft, bundles applications with its operating system.
As a result, Apple is competing indirectly against third party developers, such as yourself, and possesses a natural advantage in owning the platform and its APIs. Here are a few examples of Apple's bundled applications and those trying to compete against them.
Bundled applications can present you with high entry barriers due to the switching costs involved. Often, the bundled applications will be good enough for many users, and they will see no reason to pay for substitutes.
Lock-in can prevent users switching applications. Users invest time in learning how to use software, and may be unwilling to forego that investment. Users may be locked in by the network effects of closed standards, or belong to a community -- such as with instant messaging -- from which they are reluctant to leave.
To overcome these barriers, you must provide a migration path for users to ensure backward compatibility with legacy data formats and offer users a familiar workflow, interface, and user experience.
Yet integration can create strong software network effects that you might find difficult to overcome. Apple is creating a suite of highly integrated applications, similar to that of Microsoft Office, where your software must replace the entire suite and not just a single member. iPod owners use iTunes to transfer music. iApps utilize "Software Update" to distribute upgrades straight to the user's desktop. iSync synchronizes data across systems and personal devices.
Apple will continue to strengthen the consumer experience to ensure the survival of the platform by bundling more applications and attempt to derive new revenue streams. iChat and iCal require users to upgrade to Jaguar. iBackup is only available on subscription to .Mac. iPhoto sells value-added services, such as professional prints of your photos, bound together in a photo album.
How can you compete with Apple's bundled software, or free software in general? If you consider the large user base of Apple's iApps, it may be desirable to write complementary software, instead of competing directly with substitute software.
What exactly are complements? Products become complements if the consumer needs to have your product and the other guy's.
Say you want to share your holiday fun with friends and family. iMovie lets you edit your video footage, but you must pay for its complement, iDVD Pro, to burn your movies onto DVD discs. A DVD burner is of value only if you have its software complement, such as iDVD or Roxio's Toast. In turn, you could write disc-labeling software to complement Toast.
Components and plug-ins complement existing software by enhancing functionality. Pluggable or scriptable applications, such as iTunes and Sherlock, offer you a ready market of users for your commercial add-ons. You could even reach out to your peers by developing Frameworks and GUI widgets.
Complementary software is a natural target for bundling. A desktop scanner manufacturer will require software for imaging and OCR. A service provider, such as eFax, will want desktop software to promote use of its service.
As economists will point out, though, complementary products try to commoditize one another, since when the price of one product goes down, demand for the other will go up.
Thus, hardware manufacturers may fund the development of open source and cross-platform software, or public standards, in order to avoid expensive OEM contracts.
Competing software packages can become commodities when they are identical in function, often as a result of meeting specifications or standards.
To avoid commoditization, treat a standard as the lowest common denominator. Database vendors, such as Oracle, extend ANSI SQL with proprietary extensions and features to justify their pricing position.
|
Related Reading
Mac OS X in a Nutshell |
In some cases, commoditization remains only a threat, and serves to enforce a symbiotic relationship based upon mutual wealth creation. A status quo can exist between platform and application. Photoshop's built-in digital effects do not threaten third-party plug-in developers, who in return do not lobby for vendor-neutral APIs to render the Photoshop platform irrelevant.
"Oracle Corporation opposes the patentability of software ... Unfortunately, as a defensive strategy, Oracle has been forced to protect itself by selectively applying for patents."
Oracle's Policy On Software Patents
If you give access to your source code, you're at risk for code theft. The author of Space, an open source virtual desktop manager for Mac OS X, spotted a violation of the software's Mozilla Public License and took action to reach an amicable solution.
Patents and copyright laws can help protect your work in the event of a dispute. Unfortunately, patents can also be used maliciously. The legal costs alone, in defending yourself from a fraudulent patent infringement claim, could put you out of business.
If you are issued patents, you can license them for royalties, but you may be participating in a patent race that ultimately harms you.
Regardless of whether you're striving to be a shareware developer or a working member of the open source community, you need to be clear on a plan to bring your products to market.
Fortunately, there are existing models to study: Oracle for pure proprietary, Apple for a mix of open source and proprietary, and Linux for open source and free.
Whichever path you choose, make quality a high priority, and keep your ear to the tracks so you know what your customers are saying.
Wai Liu is a software developer who created StreamRipper X and maintains it through SourceForge.
Read more Developing for Mac OS X columns.
Return to the Mac DevCenter.
Copyright © 2007 O'Reilly Media, Inc.