I’ve been shipping software in various roles since I was an undergraduate student in 1997. I’ve done tech support, technical writing, software development, and user experience in the intervening years. I’ve shipped code in at least 8 languages, including Smalltalk and VAX assembler. I’ve contributed to and helped organize several tech conferences, ranging from programming languages to women in tech.
Although I had been a Mac user for some time, I officially became a part of the Mac developer community in 2005 when I joined Microsoft to work on Office:Mac. I was excited to join that team. Not only did I finally get to work on Mac applications (and with people who had been doing Apple development for 20+ years!), I was part of a vibrant community. I attended MWSF first as an engineer, and later as a speaker. I met many people who have long since crossed the line from fellow developer to friend.
I was a part of the community for the transition from PowerPC to Intel and the corresponding transition from CodeWarrior to Xcode. I was part of the community when the iPhone was announced. I was a part of the community when iOS really took off, and when being able to attend WWDC was not just a matter of getting employer approval but also the luck of a draw to get one of the relatively scant handful of available tickets.
When I started working on Office:Mac, I observed that there weren’t a lot of large Mac development shops outside of Apple. There was the Office:Mac team of ~250 at the time, and Adobe too, although I didn’t have a good estimate of how many Mac developers they had. Then there were smaller teams, like Quicken for Mac, VMware Fusion, and The OmniGroup. And then there were a lot of very small shops and single developers releasing great products. One of the challenges that the Office:Mac team had when I was there was the dearth of software engineers who had both Mac development experience and very large codebase development experience.
Both the platform and the development community have evolved, resulting in significant impacts to independent developers. As is obvious from the near-impossibility of getting WWDC tickets since it first sold out in 2008, the Apple developer community has seen an unprecedented influx. Companies large and small have added iOS developers. Independent developers have flocked to the platform.
A major point of change has been the App Store, first for iOS and then for Mac. The proliferation of apps has made app differentiation difficult for developers, whether they are a large company or an independent developer with a great idea. To attempt to gain users, not only has there been a proliferation of apps, but those apps are likely to be free.
Free apps are, of course, not free. Apps require developers, and developers have bills and a desire to keep paying those bills. For a large company, the cost of developing a free or inexpensive iOS app is often absorbed in the costs of developing other products that are well-funded and that the iOS application supports. The App Store has evolved other methods for developers to make a living, including advertisements and in-app purchases.
Which leads us to the state of the independent developer. It was possible to be an independent developer and make a decent living at it. Some developers, through a combination of skill and luck, found themselves doing more than just making a decent living. As the price tag of applications has trended towards zero, it’s been ever-harder for an independent developer to be only an independent developer. A good idea for an app, the skill to develop a great app, and a sprinkling of luck is no longer sufficient to make a decent living.
Independent developers often have to diversify their income. They might have to keep their day job and work on their app on evenings and weekends. They might have to become writers or podcasters to ensure that they have sufficient income. They might become developers in a corporate environment, taking advantage of all of the iOS developer opportunities that are available now.
I was overjoyed to see Samantha Bielefeld‘s take on the state of independent developers as she considered Marco Arment‘s move to make his iOS app Overcast available for free with an optional patronage model. Her point that he is able to try this as a result of his unique position in the community and his other income streams is one that resonated with me. If a well-known and well-regarded developer isn’t reaching an audience with a well-designed and inexpensive iOS app and thus chooses to make it free, what about everyone else?
It’s distressing to see a well-known independent developer seemingly throw in the towel on independent development. It’s doubly distressing when that independent developer doesn’t seem to understand that the model of patronage isn’t necessarily one that will work for independent developers at all, let alone ones who don’t have thousands of Twitter followers or close friendships with well-placed members of the tech press.
What is the state of our community? Are our options limited to either working for a big company or hoping that ad revenue continues to limp along? How do we have a vibrant community of world-class apps and developers creating those apps if our users have become conditioned to free apps?
These are important questions for us. Attacking Bielefeld for asking important questions is the wrong thing to do. For all of us, whether we’re in big companies or independent developers, we have to consider our place in the community and how we’re supporting both ourselves and the long-term success of the community. I’m hard-pressed to see how this constant drive to zero is going to ensure our long-term success. We must stop shying away from important and difficult questions, and we must stop attacking anyone who questions this status quo.