What distinguishes developers on the Mac from those who design for other platforms such as Windows and Linux? We often answer the question with a flip response that makes us feel good about ourselves:
- Mac developers are perfectionists.
- Mac developers are community-oriented.
- Mac developers are not obsessed with the bottom line.
- Mac developers are passionate.
But admit it: these characteristics are common to developers on all platforms. So why do Mac developers consistently produce the most refined, friendly, user-empowering, beautiful software on the planet? (My opinion only! You’re welcome to yours). I believe that excellence is achieved by these passionate, community-oriented perfectionists who are not obsessed with the bottom line, and that the Mac ecosystem supports these four characteristics in a more balanced manner than any other platform.
The Four Characteristics
How do these characteristics help to propel a developer towards success? What does it mean to exude these qualities, and how do they concretely impact one’s ability to produce excellent software?
Perfectionism is commonly considered to be a fault, and in excess it can certainly be one. For the purposes of this discussion I consider perfectionism to describe the quality in a developer that drives her to always go “one step further” with the elegance of a solution. One step further than what? Than an average peer would expect of her. By consistently exceeding expectations, even by a small amount, a software perfectionist goes a long way towards producing those “this is freaking amazing!” reactions among users, and helps to raise the expectations bar among peers ever higher.
Community-orientation describes the extent to which developers choose not to work inside a vacuum. A platform whose developers share ideas, code, criticism, and praise over social networking technologies, mailing lists, and blogs like this, is a stronger community. Each participant gains access to a percentage of the other members’ experience and equipment, producing a multiplier effect on productivity and the consensus standard of excellence.
A developer who is not obsessed with the bottom line clings to a non-monetary motivation as the primary reason for his work. Whether that motivation is to create software that is beautiful in appearance, smaller in code size, or more shareable among community members, the lack of financial obsession will permit him to travel further down that path than he otherwise would. Developers who are obsessed with the bottom line understand that in identifying and filling a specific need among users, they reap the maximum return on their development investment, without wasting resources on frivolous refinements.
Given the obsession with financial return by society at large, a developer who chooses perfectionism, community, and the pursuit of excellence for its own sake would be judged a fool by many. Prioritization of these values over cold hard hash is such an uphill battle in society, that only a person who is incredibly passionate about what they do is likely to overcome the forces that fight against it. Passion drives individual developers to continue bucking the trend, and to carry on relentlessly towards the idealistic goals of the community as a whole.
Bringing It All Together
To reiterate my point: I believe that the Mac platform rewards for these characteristics in a more balanced manner than any other platform. Which is not to say that Mac developers have the “best” of these characteristics. On the contrary, we have lucked into a scenario where we have the most pragmatic proportions of each, which sometimes means more, and sometimes means less.
Now we come to the part of the article where I offend everybody, by offering my painfully stereotypical views of the three major platforms: Linux, Windows, and Mac OS X. Look, I realize I’m generalizing, but try to find the kernel of truth in what I’m offering. Sure, I’m talking out of my ass, but maybe it has something interesting to say.
Take Linux, for example. Developers on this platform are undeniably passionate, community-oriented, and intensely unobsessed with the bottom line. But this is not enough to produce excellent software. Possibly because perfectionism (at least in user-facing interfaces) has never become a priority among Linux developers, their solutions are inevitably disappointing to those of us who have grown to appreciate the usability of the Mac. But their passionate rebuke of the bottom line has nonetheless allowed them to advance their priority for intensely shareable and well-optimized low-level code.
Windows developers are most likely to recognize a market opportunity and to run towards that goal, producing software that is imperfect but which meets the letter of user requirements. It’s uncommon for Windows users to celebrate a perfectionist nuance of some application, because applying those refinements takes valuable development time and doesn’t obviously advance towards the goal of a marketable product. Because this standard of excellence has been maintained at a relatively low level over the years, Windows users on the whole are not even aware that there exists a higher standard to be met.
So what makes the Mac so freaking special? We’re a small enough group that community cohesion is practically fulfilled by default. If you spend a few years in the Mac developer community, there’s a good chance you’ll meet everybody else who cares to meet everybody else. Because of this strong community bond, we have a situation where this mythical expectations bar is not only being constantly raised, but everybody in the community can see that it’s so, and encourages one another to push it still higher.
Because we are not obsessed with the bottom line, we can pursue our quaint preference for usability and beautiful design, without the constant fear of “missing an easy sell.” We restrict features for the good of the product, even when adding them might prove financially rewarding in the short term. But we are not unconscious of the financial implications of our products. We understand that in order to continue propelling ourselves down this path towards software Shangri-La, we need to earn enough money to keep our enterprises going. We embrace the techniques of earning money as a means to further the primary goal of producing excellent software.
Because the allure of the market has us constantly considering the financial rewards, it would be easy to lose track of our sights and become obsessed with the cash. But passion in the community has remained so strong, that we tend to remain fixated on excellence and pragmatically curious about the cash. Because the user base that has evolved over time on the Mac does acknowledge this excellence, we’re more likely to continue making a reasonable income even as we deprioritize that as the main goal.
Patting Ourselves On The Back
We feel so good about our lofty development ideals, that we spend a lot of time kicking back and reflecting on what a great job we’re doing. Some of us even write lengthy blog posts sycophantically congratulating ourselves on a collective “job well done.” Jerks.
In spite of our skillful self-adulation, we also appreciate and seek the opportunity to be rewarded with admiration from presumably unbiased groups. That is to say, we’re interested in awards.
In the Mac developer world the most prestigious awards are the Apple Design Award and the Macworld “Editor’s Choice Awards”, or Eddys. Outside of these two major commendations, there is little structured limelight for developers who are pursuing excellence. Understandably, it is a great honor to receive one of these awards, but given the relatively small number of developers who are recognized each year, most developers are unlikely to ever receive one.
Sensing the thirst for additional developer recognition, Michael McCracken proposes a community run version of the Apple Design Awards, where developers would themselves determine and dole out rewards for what we respect most among our peers. A major rationale is to remove Apple’s bias for applications that make most use of the technologies that Apple is pushing, and this seems like a laudable goal. Of course, Macworld’s Eddys are already fulfilling this to some extent, and the “Reader’s Choice Awards” that they also hand out do a good job of capturing the priorities of the customer base.
But what Michael is proposing would be something akin to what the Academy Awards provide to professionals in the film industry: the opportunity to judge and be judged for excellence by your peers. The people who really get what you’re trying to go for, and whether you’ve achieved it.
I think it’s an interesting idea, and I have to admit I take some comfort in the idea of receiving awards. I was lucky enough to win an Eddy award for MarsEdit a few years ago, and it was a major motivator and all-around good feeling. I respect people like Jason Fried of 37signals, who rejects the value of awards in the software and web industry. From the 37signals web site:
37signals does not enter award competitions. We believe that the self-congratulating awards “scene” encourages agencies to misplace their priorities on the opinions of their peers, rather than the needs of clients and their customers.
I can relate to this sentiment, and I have seen some developers have their priorities apparently hijacked by efforts to meet the criteria, for instance, of an Apple Design Award. I recall chatting with Manton Reece on Core Intuition (probably Episode 18: Who Will Be The Lead Singer) about the design awards, where I consoled myself about failing to win the coveted Apple award. I spoke of how gratifying it is simply to get positive feedback from customers in the form of friendly email notes, or yes, the welcome act of purchasing. These small but recurring motivational rewards, I dubbed the “Customer Design Awards.” It’s probably worth reminding ourselves that these are in fact the most important awards of all, but anything new that comes with a cute statue or plaque would still be welcomed!