Today is a good day to code

Conflicted About App Store Policies

Posted: April 26th, 2010 | Author: | Filed under: Apple, Companies, iPhone, mides, Programming, Uncategorized | Tags: , , , | 2 Comments »

Last night I started down a train of thought that I wish I hadn’t. I started thinking about what the world would be like if Apple had been the dominant player, and Microsoft had faded away into semi-obscurity, if Linus hadn’t created Linux. What if the app store had come about years ago, and had become the primary method of reaching any significant number of users, with what other blogs are saying existing in their developer agreement.

What that future looked like was something that frightened and disgusted me in many ways. First and foremost, scripting languages, like Ruby, Python, Perl, and PHP would have been mostly prohibited on significant platforms, and thereby would have been relegated to mostly research oriented platforms. IE, no serious development of those languages would have taken place. Java would have been killed almost before it began, resulting in a much weaker web environment, as well as eliminating much of the boom that accompanied the web development land rush. Some very innovative companies would have had a much harder time achieving scale without the efforts of OSI around them, many of them would likely have never come to full bloom. Companies like Google and Amazon would have had to first develop their own operating systems free of Apple patent infringement, and free of the app store.

Much of the above is an argument for no software patents, which I generally agree with, but I think that isn’t where we should focus our attention. The main issue is that basically the fundamental structure that we all take for granted came about because there was always a viable alternative, that was open, and that the distribution of software was never limited or conflicted. Microsoft may have been many things, most of them negative, but one thing it got right was realizing that an open and free developer community is critical to the growth and improvement of the art. It will sometimes cause issues, and produce hideous products, but it is not the responsibility of platform companies to protect users from developers. Rather it is to assist in the developer-consumer conversation, especially as regards features and capabilities of the solutions being developed for them.

I actually hate Flash, I think it is outmoded and needs to go away, that being said, I can, and should be able to choose to develop solutions for my customers in whatever language or framework meets their needs. That choice needs to be made by the developer and the consumer of what that developer produces.

Apple has every right in the world to prevent developers and consumers from doing whatever Apple decides is wrong on their platform. That is their choice. Apple’s scale and access to customers, however is forcing am uncomfortable choice on their developer base. It is a choice that will itself go away if developers don’t do something about it now. It is the choice to either develop the way Apple wants, the solutions that Apple wants for it’s customers to have, or get off the platform and develop somewhere else. If developers don’t nurture alternative platforms, that ultimatum will become, either develop the apple way or don’t develop.

For those who think this is far fetched, Apple is poised to pass Microsoft in market cap, and probably has one of the strongest brands in history right now. They are almost the only game in mobile, with Android and Blackberry chasing, Palm, obliterated, and Microsoft marginalized. Mobile is every bit as important as desktop, in some ways more so.

My application, Mides, is actually being caught as collateral damage in this apparent developer agreement mess. It was my hope to create an environment in which developers could create and and test their web products using the scripting environment of their choice, be it ruby, php, or python. Apple had prohibited this sort of thing, by my interpretation, basically from jump, deciding that it was a feature that users of it’s products would never be able to have. That may have been an inadvertent choice, but it speaks to the types of use cases they have in mind for their devices, any uses that someone can come up with, even if there is a market for it, are prohibited. The end user volume that Apple has seems to say hay the end user likes this model, however I would argue that they don’t know what they are missing yet.

What does this amount to for me? Well, I am not going to make any overarching claims about developing for the Mac/iPhone platform, and I am not going to claim that I am going to stop using Apple products, they really are amazing products, but what I am going to do is vote with the only two voices I have, my money and my development efforts. I don’t like the way this app store pattern is going. I want a future where kids have access to modify and do crazy things with the devices and software that they use. I want for them, and for myself, to think differently, and try things that don’t work, or cause problems, because in the end, that is how humans learn. To have someone else decide for me what is safe, or what is cool, or how I should do what I do is the very anthesis of what I believe in. Designing amazing user experiences is one thing, dictating how I interact with the world through my computer and its peripherals, is completely different. I feel that Apple has pushed across the line of consumer advocacy, and has moved into something more sinister.

What I am going to do is to actively develop for other platforms, such as the web, Ubuntu, and Android, even though I am still angry with Google for banning me from their user group for no reason. The rationale behind my decision is that Google doesn’t control Android, anyone can fork it and do what they want. If I want to push out a beta, I can, if I find a bug I can push out a release in the morning and my users can have it in the afternoon. I am back in the loop with the conversation that my customers and I are having without having a disinterested intermediary in between. I will from now on, very carefully think about my consumption of Apple hardware, and their software and services, before buying them.

This line of thought completely knocked my Apple fanboy hat off, if Apple cares, and I hope they do, they will work to re-establish that childlike sense of wonder in me that I am developing for the best platform in the world, if not, it’s not a big deal, if I am alone in the way I feel, Apple has millions of developers and consumers, they don’t have to care about one, but I’m betting that I am not alone, and throwing all of our weight around is going to be a big deal to them. Apps make and break a platform, and by capriciously throwing away the developers of those apps, Apple is making a huge mistake.


Why the Volume Approach to Sales in the Apple App Store Won’t Work

Posted: December 16th, 2009 | Author: | Filed under: Apple, Companies, iPhone | Tags: , , , , , | No Comments »

For a few months I have been thinking about the app store. Specifically I have been thinking through all of the drama and screaming that is occurring on the internet over the rejection of a few apps, the difficulty of finding anything quality in the app store, and the impact to actual users. The conclusion that I have come to is one that is different from the conclusion to which I had figured I’d arrive before thinking deeply about it.

Basically the App Store is great for Apple, but bad for developers. OK, you may think, well that is obvious and it is, but I don’t think that it is quite as simple as that. Firstly, I think Apple has brought their brilliance for marketing physical machines, accessories, and their integrated software and applied it to third party applications. Secondly, they have created an ecosystem where sales volume is king and the primary means of competition is over price, not quality. Regarding the second point, I am certain that they did not intend to do this however, it is in fact where things are today.

To understand why volume alone in software sales does not make one rich or profitable, you have to look at the contrast between physical goods sales, and service sales in an environment similar to the app store.

Imagine that you have an area like the Akihabara district in Tokyo, Japan, where you can buy anything technology based, motherboards, cameras, MP3 players, etc… Everyone who wants to sell this stuff crams into the Akihabara district even though there are already thousands of people there selling the same exact thing. So why would you do this one might think? It is because even though you have to drop your price to compete with the others, the number of people who will come to the Akihabara looking for some electronic thing is very high, if you were to locate elsewhere, you could increase the price, but you would have fewer people coming to your store. This is less than optimal for someone selling a physical good, to understand this, you have to look at how profitability works when selling a real thing.

If I can buy 5 widgets at $2, my cost is $10, if I sell the widgets at $4, my revenue is $40, my net profit is $30, not too bad. Now lets say I move into the Akihabara, I will need 1000 widgets to accommodate all of the foot traffic, and the people who want my widgets. Because I can sell 1000 widgets, the supplier is willing to sell them to me for $0.25 each. Now I have to cut my price because I have thousands of others selling the same type of widget, so lets say I cut the price to $2.50, my cost is now $25.00, but my revenue is now $2,500, that leaves my net profit at $2,475. I am making way more money now that I am in the Akihabara, even though I am losing some business to my competitors and my per item cost is lower, my profitability is actually better.

Now, lets say we do the same thing for a service based industry like plumbing. I have a plumbing business out in the suburbs and I charge $175 / hour to fix plumbing, maybe I get 100 hours of work every month since I am out in the suburbs and I am the only one. I am making $17,500 per month, I’m doing pretty well. Now I move into the plumber’s alley in town with 50 other plumbers, well, in order to get jobs, since it is so easy for customers to shop around, I have to cut my rate to $65 / hour, and since I am around there with 50 other plumbers, there is a bit more foot traffic, but I am just one guy so when I am out on a job, I can’t collect any more work. Now I am doing 150 hours of work each month, but at $65.00, I’m only making $9,750 per month. The answer would be to hire another guy, let’s say I do that, now I can do 300 hours of work each month, but I have to pay this clown, plus the drain on my time to train him to do it my way, after his pay, I am making $45.00 / month, $13,500, not bad, but still not as good as working less and making more in the suburbs.

Software is not exactly the same, but it is similar enough that the calculus works out nearly the same. I have just seen this happen with my CycleMetrics application, which applies to a broad vertical, versus my Mides application, which applies to a very narrow vertical, and came out when there were very few items in the app store.

With software, there is a significant up-front cost of your, or if you have to hire a team, your team’s time.  But for most people in the App Store, it is just you, lets say you want to build a really high quality application, it takes you about 18 months to get it all done alongside your day job.  You have put about 2,000 hours into it.  Typically your time is worth about $125 / hour, or at least that is the neighborhood in which an agency would price you out at as an iPhone dev in the bay area.  So you have put $200,000 into this iPhone application, or if you were to do a 12 month consulting job instead ( because it would be full-time ), that is what you would have made in salary plus benefits, or salary if you are a typical contractor.

By the time you put out your app, there are 300 other applications that do the same thing, 90% of them are crapware fake web apps with a Cocoa wrapper.  But in the App Store, the users can’t really tell the difference since the reviews have been gamed endlessly.  You don’t do any of that stuff, you play by the rules.  All of the other apps are priced at $0.99.  The target you have set to recoup your initial capital investment of $200,000 is two years.  You expect to sell about 100 a month average over 2 years, because your app is super awesome and you get a good pre-release review.  You realize that you would have to sell your app at $84 each to make that up in 2 years.  So you give up and hope for the best, you hope that Apple features you, or you hit the top 50 list.  You price your app at $19.99.  Apple rejects you a few times, so you have to put in another 100 hours into getting through the review process, now you are 2100 hours into it.  You figure you will eat that as a sunk cost now, chalk it up as a learning experience.

You sell 15 initially because people think it is so awesome that name-the-apple-podcast reviewed it.  Soon you start to notice a few bugs being reported in the comments that the Apple review has missed, and so have you.  But it will take a while to get the fix to market, and so you start this process over and over again.  This time it only takes 10 hours, but you have invested 2110 hours into the project, and have a 2 star rating in the App Store.  Now your sales are so low that you have to drop the price to keep moving units.  If you try raising your prices later, you will just not sell.

Even if all of the past time is sunk, you have future time in support and maintenance costs, even if you don’t add features.  It is the plumber model, you can never be as profitable as if you are a single guy working in an area in which there is nothing else like what you offer.

Most developers don’t count their initially invested time as money, so most developers don’t see this, but time is the only truly non-renewable resource.  They hear about the guy that sold 80,000 copies of x game in a month and raked in a million dollars.  Of course there will be a few like this, its like winning the lottery.  Apple picks a few and they do well for a time, after that however, they get pushed back into the pit with everyone else.

So, is there any way to fix it?  Apple has no incentive to fix it, they, and the app consumers are the beneficiaries of the huge delta in hours invested in the iPhone apps in the app store, and the lack of profit that the devs are getting.  I don’t think we should complain about it though.  It is awesomely powerful to be able to reach millions of people through the app store with a tap and a search.

There are three ways for devs to acheive profitability, one is for everyone in a section to raise their prices.  The overall sales volume would drop, but the profitability would increase, and everyone would make more money, not as much as if they were by themselves in the section, but more than they can make with the brute force of the quasi-free market forces in the app store.

The second way is to use the app store and your application to sell services outside of the app store, like Omni or pandora.  In Omni’s case, they use OmniFocus to drive sales of their mac desktop application where they have a vertical they own, selling productivity products for Mac OS X.  In Pandora’s case, they are using their application to drive affiliate link revenue as well as potentially some aggregate data mining products.  Either way, the bulk of their revenue is going to come from their other business efforts, the App Store is just an adjunct to this.

The third and probably most difficult way would be to come up with a product that is so unique in its technical application that it creates a natural barrier to entry, or to create a product for a vertical that is profitable, but is so small or difficult to understand that most competitors wouldn’t bother.  Examples of this would be like some sort of law research assistant with artificial intelligence that you could charge $199 for, or a notional application that would speak to industrial robots for which you could charge $30,000, but then you become acutely aware of the 30% that Apple charges.  At that price point, it might make more sense to develop it for Android and offer it directly from your site, but you get the idea.

The gist of all of this is that Apple has created a wonderful retail location in the image of their physical item store, one in which they have a monopoly on impressions and can leverage economies of scale.  Since economies of scale have no clear practical application to software development, the App Store should be seen as a massive lead generator for some other monetization strategy.  Getting angry at Apple for being Apple is pointless, take what they have given you and use it.

The last thought that I will leave you with is that Objective-C development is fun, and researching the background of Objective-C / Cocoa from smalltalk is also fascinating.  I am not for one minute suggesting that you shouldn’t develop applications for the iTunes App Store.  On the contrary, I think you should, but you should develop the applications because you enjoy the process, not because you hope to recoup your investment in a number of years.  You will likely not be able to recoup but a fraction of what you have invested.  That is not to say that you won’t get an awesome job with someone who has figured out how to make money in the store because of that initial time investment.  That is what I would be using the developer program for, to enrich and expand my programming abilities, not to try to get rich quick.