Mac Indie Marketing

October 29th, 2009

Dan Wood, one of the guys behind Sandvox, just launched a new blog dedicated to issues surrounding marketing as an indie Mac developer. Mac Indie Marketing kicks off with a nice post listing 11 free eBooks that pertain to the subject. Can’t beat the price, here’s to a long and healthy life for Dan’s new blog.

MacTech 25 Nominees

October 26th, 2009

Speaking of awards, MacTech magazine is currently accepting votes for the MacTech 25, bestowing recognition upon 25 people who are voted by the public as having the most influence on the Mac technical world “through their work, writing, or any other effort they make.”

I am considering the technical realm of the iPhone as part of the community that is being acknowledged. Here are some names that come to mind as excellent nominees for this honor:

Craig Hockenberry. As an extremely early adopter of the iPhone platform, Craig has gone to the trouble of sharing his knowledge about and criticisms of the iPhone development and distribution process, on his blog Furbo.org. I feel that his efforts to draw attention to problems, while providing realistic workarounds, have probably had a huge positive impact on iPhone developers and those who are considering whether to dive in.

Jonathan (Wolf) Rentzsch. As the organizer of the annual C4 Conference in Chicago, Wolf provides a superb context for developers to socialize and exchange ideas with other Mac and iPhone developers, outside the realm of Apple’s well-produced but technically one-sided WWDC Conference. In the years since Wolf started organizing the conference, it has filled a serious void in the technical social scene.

Steve (Scotty) Scott. On the other side of the Atlantic, and soon to move state-side, Scotty has also been working his butt off on a unique developer conference, NSConference. While I haven’t yet had the pleasure of attending, the word I hear from countless developers who have is that it’s a remarkable event and very much worth the cost. In addition to conferences, Scotty is also responsible for producing and distributing a number of podcasts dedicated to Cocoa development, all part of his ambitious Mac Developer Network.

Erica Sadun. Erica has driven a lot of technical inquiry into iPhone development, since the early days before an SDK was available, through the present day when programming for the device is a much less nefarious endeavor. Her role as an authority on many iPhone technical issues was celebrated this Fall when she served as the conference chair for Pearson’s iPhone Developer Conference in Boston.

Jeff Atwood. I think it’s important to recognize that sometimes the most influential people on a community are not even part of that community. Jeff started the extremely popular developer answer-sharing site, Stack Overflow, along with Joel Spolsky and Fog Creek Software. In the past year or so Stack Overflow has become an important starting point for many Cocoa developers, old and new, in search of answers to their vexing problems. Jeff’s technical blog, Coding Horror, has long been considered by Mac developers as a source for thought-provoking questions about software development, regardless of whether they pertain specifically to the Mac or iPhone.

There are dozens of other qualified people whose names could be thrown into this hat. I came up with these 5 after a few minutes of thought and feel that they are all completely entitled to receiving this honor. So if you are stuck for a choice, you might as well pick a random one from above!

And The Awarding Goes To

October 26th, 2009

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!

Wil Shipley On Localization

October 20th, 2009

Lots of great information and sample code to boot.

I am always feeling overwhelmed and helpless when it comes to localization. The tools at our disposal don’t make it easy enough to “do it perfectly,” so I end up (for the most part) not offering localizations at all.

Maybe I should give in and adopt Wil’s strategy of essentially providing a UI that fits all languages. Unwanted white space be damned!