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
Brent Simmons has some good advice for aspiring indie Mac developers: Be persistent, be productive, have faith in yourself. All good points. But I'd also like to add something that he doesn't address:
Follow your own path.
Most indie Mac developers speak very warmly of the larger community of indie Mac developers. There's a whole ecosystem, a network, of blogs, mailing lists, and meetings, where developers can share ideas about technology, about product interface design, about marketing, and the like. It's a welcoming community, and if you share the community's interests, you can learn a great deal. (Simmons refers to this community as "your tribe.")
Still...there's also danger in diving too fully into the community.
One of the dangers of identifying too strongly with a community is drifting, almost unconsciously, into a kind of conformity. This can happen with the indie Mac developer community. Most members of this community share a strong set of assumptions about technology (Cocoa), interface design (Apple's fashion du jour), platforms (the Mac and, now, the iPhone), and so on. The result is that many well-crafted but utterly indistinct products hit the market. I see the mad stampede of Cocoa developers to release products for iPhone as evidence for my observation. (The number of cheap and free "to-do-list" iPhone apps has become a running joke, if not a cliche, among some Mac developers.)
I suggest that the strongest, most successful indie Mac developers achieve their success because they deliver unique products that target distinct niches. That is very hard to do. The technology that these developers use to create their products undoubtedly helps, but it's the product that matters. It solves enough pain for enough paying users that a viable business--one that provides the developer's living--is the result.
These developers include Brent Simmons (who is no longer an indie developer, having sold his flagship product to a larger company, and continuing to work on it for the new company), Gus Mueller, Daniel Jalkut, Michael Tsai, and Chris Smolinski, and others. These developers are, to varying degrees, members of the indie Mac developer community, and are widely respected for the success they have achieved. But I truly wonder if those who seek to emulate their success are looking at the right things. It's not a matter of technology, or interface design, or blogging. It's having the right product at the right time. It's also a matter of developing a portfolio of products and growing their user base over the years, gradually. Technology, interface design, websites/blogging, and other things are all aspects of a developer's success--but they are not everything.
I make these observations as one who is part of the indie developer community, but who also stands apart from it. I don't embrace the technological choices that most in the community make. In asking various members of the community for advice, I tend to get the same answers over and over again: Use the community's preferred technology (Cocoa). Use the community's preferred development environment (Xcode). Follow the same interface fashions that the community is following (source lists, heads-up-display, and so on). If I do all these things, these folks imply, I'll be successful as an indie developer.
I have to admit: I'm not as successful as I'd like to be. I wish my software sold better. But I think it's foolish to believe that I'd be an instant success if I embrace everything that the indie Mac community recommends. More likely, I'd simply blend into the crowd.
I have very specific reasons for focusing on the niche that I've chosen (leveraging the Mac's Unix underpinnings), with the technology I've chosen (Tcl/Tk). This approach lets me be productive, writing products that are interesting to me--and I have fun in the process. In other words, this approach keeps me in the development game. My efforts to learn the community's preferred approach have been nothing but tedious--the opposite of fun.
I have one moderately popular product, and several other ones that sell less well. The sum total of my sales isn't enough to live on. But the fact that I sell anything at all tells me that my approach is workable, at least for me.
Does it involve trade-offs? Certainly. I'm sure there are some users who do not buy my products because they do not conform to the prevailing fashion. But I am also sure that as I have worked to improve my products, to make them closer in look-and-feel to the prevailing fashions, my sales have improved. Also, while my niche necessarily limits the range of users who might be interested in my products, it also gives me focus. One cannot be all things to all people.
I think my approach has at least as much potential for success as following the indie Mac community's fashions. If I didn't follow the path I've chosen, I wouldn't be developing at all. So I will continue to follow this path, improve my existing products, release new products, and gradually grow my sales. I probably won't be a rich, full-time, indie Mac developer next week if I follow this path--but in five years, who knows?