oreilly.comSafari Books Online.Conferences.


AddThis Social Bookmark Button

Developing for Mac OS X Software Strategies for Emerging Developers

by Wai Liu

Software 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.

Quality for the Long Term

"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.

The Right Approach for You

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.

Accessibility for Developers

"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.

The Open Source Balancing Act

"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
100 Industrial-Strength Tips & Tricks
By Rael Dornfest, Kevin Hemenway

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.

Pages: 1, 2

Next Pagearrow