I’ve written a lot of software in my day, but it turns out little of it has been for use of anyone but myself and others in the organizations for which I’ve worked.
Recently, my job afforded me a small taste of what it’s like to publish software. I wrote a small utility, an extension to a popular web browser to solve a problem with a popular web application. The extension was basically a “monkey patch” of sorts over the app in question.
Now, in order to get it up on the “web store”, there were some hoops to jump through, including submission to the company for final approval. In the process, I signed up for the mailing list that programmers use to help them deal with hiccups in the publishing process.
As it turned out, my hoop-jumping wasn’t too hard. Because I was only publishing to my own organization, this extension ultimately did not need to be reviewed by the Great And Powerful Company. But I’ve continued to follow the mailing list, because it has turned out to be fascinating.
Every day, a developer or two or three, who has toiled for months or years to create something they think is worthwhile, sends a despondent message to the list: “Please help! My app has been rejected and I don’t know why!” Various others afflicted try to provide advice for things they tried that worked or did not.
And the thing is, in many cases, nobody can help them. Because the decision was made without consultation with the developer. The developer has no access to the decision-maker whatsoever. No email, no phone call, no explanation. Was the app rejected because it violated the terms and conditions? Which ones?
The developers will have to guess, make some changes, and try their luck again. It’s got to be an infuriateing process, and a real experience of powerlessness.
This is how software is distributed today — through a small number of authorities. Google, Apple, Amazon, etc. If you want to play, you do it by their rules. Even on PCs and Macs there seems a strong push to move software distribution onto the company web stores. So far, it is still possible to put a random executable on your PC and run it — at least after clicking through a series of warnings. But will that be the case forever? We shall see.
The big companies have some good reasons for doing this. They can
- assert quality control (of a sort. NB: plenty of crap apps in curated stores anyway)
- help screen for security problems
- screen out malware.
But they also have bad (that is, consumer-unfriendly) reasons to do this, like
- monetizing other people’s work to a degree only possible in a monopoly situation
- keeping out products that compete with their own
- blocking apps that circumvent company-imposed limitations (like blocking frameworks and interpreters that might allow people to develop for the framework rather than the specific target OS)
All of those reasons are on top of the inevitable friction associated with dealing with a large, careless, monolithic organization and its bureaucrats, who might find it easier to reject your puny app than to take the time to understand what it’s doing and why it has merit.
Most sad to me is that the amazing freedom that computing used to have is being restricted. Most users would never use that freedom, but it was nice to have. If you could find a program, you could run it. If you could not find it, you could write it. And that is being chipped away at.
2 thoughts on “Power corrupts, software ecosystems edition”
Hey, what’s wrong with using your market power to block competing products, make consumers pay for something you didn’t create, or force people to toe the company line? You’ve been in Berkeley too long, my friend. Aren’t all of these things integral to software-as-industry?
You know me, always trying to thread the needle. Software is zero marginal cost, yet people need to get paid for their effort. So monopoly has to be part of the game. I guess it’s normative what constitutes abuse.
Of course, this is the 21st century and this is tech, so it is overdetermined that nothing rises to the level of abuse.