A Mac OS X Programmer’s Manifesto


Develop Different

The world we live in is constantly changing, and old adages like, “You have to get bigger to survive,” are beginning to ring hollow. If you want bloated, buggy, over-promised, under-delivered software, then Big is Beautiful. If the best the free market can do is produce yet another insecure Windows, then it’s time to rediscover what free means. The tenets of capitalism and the free market — the promise that competition creates the most value for society — have been challenged with monopolies and mediocre software.

A Great Platform

Macintosh developers are lucky to live in a rarefied environment — our users have well-integrated high-powered hardware which simplifies the developer’s job. More importantly, Mac users tend to be the creatives that shape our society. Mac users love their Macs, but yet it’s uncommon to see the same emotion coming from a WINTEL user. Our market may be small in relative terms, but 30 million times whatever you charge for your software is not too shabby! Our users are loyal and demanding — two key ingredients to keeping the psychic juices flowing so that software development continues and does not stagnate. We’re at a threshold where the Mach kernel and FreeBSD provide a rock-solid operating system to replace that tower of Babel that the original Mac OS has become. Therefore, it’s time to reevaluate the process of software development for this new operating system and a world where our users are connected to the net at decent bandwidths.

Small Is Beautiful

I received my BA in Architecture and Urban Planning in the 70’s, when a new movement was arising to combat the soul dead boxy “International” style which was blighting our city skylines at the time. As E.F. Shumacher so aptly put, “Small is beautiful”. This applies to small teams of engineers who make killer applications as well as architectural planners. It was the book ‘The Mythical Man-Month’ by Frederick P. Brooks, Jr. that first concluded that the more people you throw at a software project, the longer it will take to finish, including reaching a threshold whereby it will never be finished. Any project should have exactly one principal architect—consensus is critical in many situations, but “too many cooks quickly spoil the broth” in software engineering. Of course, software can never have too many beta testers nor too large a diversity of users across age, culture and education.

The Stone Design Way

Even though I’m the CEO of Stone Design, I am passionate about perfection and coding. I wrote and continue writing the bulk of the seven applications we have ready for Mac OS X. Another important point from The Mythical Man Month is the much touted lie that “software is set in stone”. Nothing could be farther from the truth! Software is a living, practically breathing, entity that is trivial to change, bug fix or improve by adding features. The only thing that is set in stone are attitudes from the Industrial Revolution! Yes, there have to be software freezes or there will never be releases, but I believe the day of hard goods (shrink-wrap boxes and CD’s) is almost gone. And good riddance! Stone Design has all our software available via download, although we have CD’s if a user is willing to pay an extra $19. Because of the rapid dissemination of broad bandwidth services such as cable modems, DSL and FTTH among the digital cognoscenti Mac public, multi-megabyte files only take a few moments to download. When you produce thousands of CD’s in environmentally abusive packaging, and a bad bug is discovered, you have two unpleasant choices—trash that inventory for a loss or worse, pawn off the software to your users as perfectly good. Why not avoid these miseries and provide your users with the latest, as good as possible, releases via the internet? The cost savings can be passed onto your users and you are doing your part in protecting the planet’s precious resources.

Big is Slow

As there become fewer and fewer gargantuan corporations controlling each industry through mergers and acquisitions, a new phenomenon is evolving: these large and inertia ridden goliaths are suffering from overdoses of chutzpah and the inability to quickly meet changing market needs. Like dinosaurs, the bigness was useful, but its usefulness may be over. Small software companies can run circles around large companies, and this deftness is our core advantage.

The Manifesto

It’s usually hard not to think of Karl Marx or the unabomber when the word “Manifesto” is bandied about. And perhaps it’s fitting to use this term when talking about capitalism creating monopolies and killer applications! Here’s a condensation of my philosophy on the right way to create and provide software.

1. Software is a process not a product

Software is living—it’s never finished and, like humans, it’s never perfect.

2. Help save the environment by publishing electronically

By providing online help that can be printed by the end user, you minimize the impact your company has on the environment.

3. Provide free upgrades for all minor versions

Don’t “feed” off of your early adopters, but instead, reward them with freebies.

4. Publish new minor versions when crashers or other anomalies are found…

It’s better if you acknowledge your mistakes than letting the press do it for you!

5. …But, don’t publish new versions so often that users get annoyed

An often heard complaint is that users don’t want to have to upgrade too often.

6. Solicit and incorporate user suggestions

With Mac OS X, it’s easy to build in a suggestion box to get online bug reports and suggestions. (See Help>Suggestion..)

7. Provide the software as inexpensively as possible

By offering your wares cheaply, you reduce pirating and open access to more users. Consider educational and nonprofit discounts.

8. Rely on software quality, not expensive ad campaigns, to gain new users

Although entrenched companies can throw the big bucks at advertising, it is not an option for the smaller independent software houses. Instead, guerrilla marketing, word of mouth, and schmoozing are your tools.

9. Hire artists for your icons and ads, hire technical writers for your manuals

The classic mistake is to let the programmer write the manual. Iconic artwork is what your users see, and even if your software is powerful and correct, cheesy icons will hurt you. Follow the carefully described Apple Human Interface Guidelines. [Editor’s Note: See User Experience Documentation on Apple’s site.]

10. Love what you write: software reveals your attitude

Perhaps more than anything else, it is the care and craftsmanship that you invest into the design and architecture of your software that will give the user the best experience.

Do As Ye Will—Harm Ye None

The ancients understood something very fundamental about human nature, which is that our will to sovereignty is tantamount to personal happiness. By following the second half of this dictate, you respect the will of others to also be sovereign. Is it possible to be ethical in a world which repeats the tired pseudo mantra “dog eat dog”? For one thing, dogs don’t actually eat other dogs. If the only way you can survive is to destroy others, you should remember that if you live by the sword you die by the sword! Success should be measured less in economic terms, and more in terms of sustainability and the creation of a world you want to live in. Sound iconoclastic? The pendulum has swung, and the era of the small independent software house has returned.

Bio: Andrew Stone, is chief crystal gazer at Stone Design and has been coding in Cocoa as an independent software developer for over 13 years.

Filed Under: ,

Recent Forum Threads

About iDevGames

Since 1998, iDevGames has been educating, supporting and enhancing the community of game developers that produce video games for the Apple Mac and iPhone platforms. Get the latest game development news by subscribing to our news feed.