Code by Kevin, Programming, code, business, and other pursuits
Kevin Walzer, software developer.
Subscribe to RSS Feed
Get a syndicated feed of my weblog.
Site design: Skeleton
About 18 months ago I posted a blog entry about what I learned in my first year of indie commercial Mac development. Now, at the end of 2008, I'd like to share more about what I've learned over this past calendar year.
There's little doubt this year has been a challenge for me. 2008 sales came in lower than 2007 sales. I attribute this to increased competition for my best-selling app, and also to the lousy economy. Still, even with these difficulties, I've worked on laying the foundation for growth in the future.
Here are some of the new components of my growth strategy:
Focus on a single technology platform. The amount of time I spent over the past 18 months trying to learn Apple's Cocoa frameworks has been enormously destructive to my software business. Simply put, instead of developing new products or updating existing ones, I was wasting time doing finger exercises in a programming environment I neither understood nor enjoyed. Never again. My chosen techonologies--Tcl/Tk, Python, and AppleScript--are not perfect, but they provide everything I need to develop Mac applications. Any new technologies that I add to my toolset, such as possibly Ruby, will be chosen because they complement the platform I've already assembled.
Marketing, marketing, marketing. My marketing efforts in the past consisted mainly of posting my apps at Mac download sites, sending out a news release (when I remembered to do so), posting announcements on this blog, and sending out e-mail announcements (when appropriate). My marketing efforts were, to put it mildly, haphazard. Over the past few months, I've made a serious effort to upgrade my marketing efforts. I've assembled a mailing list of registered users of my programs, and I send special announcements and promotions to this mailing list. This has definitely helped give sales a shot in the arm. I'm also trying to upgrade the new releases I do, using a paid PR service to increase the visiblity of my releases. The jury is still out on my PR strategy, but it's definitely worth some experimentation.
Keeping prices at a sustainable level. One of the most alarming aspects of the mad stampede of Cocoa developers to the iPhone has been a race to the bottom for pricing. 99 cents is the benchmark price for iPhone apps, it seems. How many developers can earn a living by putting their products on the "dollar menu"? A few, maybe, who have a bestselling hit, but most won't be able to manage. In my case, my apps have increased in price from free to $5 to $15 to $20 to $25. I work hard on my programs, and I want to charge a price that will allow me to sustain their development. I did notice a slight decline in sales when prices went from $20 to $25, but I have decided not to lower prices. Keeping the prices a bit higher gives me more flexibility to offer promotional discounts that still will bring in some decent revenue: that has worked very well for me this year with "preferred customers" (those on my mailing list). Diversifying my product offerings should, over the longer term, increase my sales revenue as well.
Focus on a specific market niche. I've chosen to focus on providing applications that leverage the Unix underpinnings of Mac OS X. As I've written before, this niche forecloses some application options (such as iPhone apps), but it does give me a pretty wide area to cover: I have no shortage of application ideas. I will continue to develop new applications with my market niche in mind.
Continue to upgrade existing and enhance applications. Even as my best-selling application, PortAuthority, slowed down a bit because of increased competition, other applications saw modest-to-impressive sales increases this year because I kept updating their capablities. In some cases these were application-specific upgrades, such as adding PDF export to Manpower; in other cases these were across-the-board enhancements, such as a new help viewer, imaging engine, and printing library, that can be folded into all my programs and improve their usability. I've also tried to improve the first impression that users get from my software by moving from a plain download disk to one that uses a fancy background, with a link to the /Applications directory for easier installation.
Diversify my product portfolio. At this time last year I had three products for sale--PortAuthority, Phynchronicity, and PacketStream. In 2008, I added Manpower and QuickWho. Manpower has proven to be a good seller; as a 1.0 product without a lot of features, QuickWho is moving slowly, but it has sold a bit, and I am confident that its sales will grow as I continue to add to its capabilities. And in the coming year, I will continue to add new products. In fact, I am planning to move into a period where all I am doing is new product development. That may cost some sales over the short term, but as these new products mature and find their place in the market, I believe that sales revenue will steadily rise.
Leverage open-source wherever possible. Although my programs are proprietary, or closed-source, they make heavy use of open-source components, from icons, to graphics libraries, to the very languages they are written in. Using open-source components allows me to spend less time implementing low-level functionality in my programs and allows me to spend more time on what is unique in my applications. Use of open-source also reduces both my financial overhead, because I do not have to pay for such services as icon desgin, and my time overhead, because I can do more rapid development and frequent releases. I do not steal open-source componeents in violation of their license, either; I use components that are compatible with proprietary code. In the spirit of giving back, I also maintain my own open-source libraries, which others may download and use freely in their software.
Take the long view. I've said this again and again, but it's important to take the long view in running any business. Most businesses are not overnight successes. This year has been something of a disappointment from a sales standpoint, but definitely not from the learning standpoint. I feel I have laid a very strong foundation for steady growth in the future, and taking the long-term view will allow me to achieve that growth.
As John Gruber has noted, "The full story is that like most forms of popularity, software sales tend to follow a power-law distribution. Most apps languish in obscurity, but popular apps tend to become super-popular." My apps are not super-popular, and I do not expect them to become so, but effective marketing and continued improvement can help to lift them out of complete obscurity. And, given a sufficiently large product portfolio, modest individual sales can achieve good revenue in the aggregate. This strategy is where my experiences in 2008 have led me. My challenge, in 2009 and beyond, is to execute.