31 March 2021

On Google and Winer’s Rule One

Here’s another blog post about Google, because, why not?

It all started when I read a post from Dave Winer, in which he talks about a principal of software evolution that he applies to his work. Simply calls Rule 1, it dictates that the environment between successive versions of a software platform cannot change such that they will break any existing apps built atop it.

Rule 1 was not a joke, it was dead serious. I was sick of programmers who choose to break users and developers. I had worked with a deprecator, for years, and learned the hard way that a development process that permitted user breakage was not much of a process. Eventually the users will go somewhere where they aren’t always having to start over because a programmer changed their mind about how something should work. Sometimes breakage happens, all rules have exceptions, but you have to work really hard to avoid those situations, and usually there’s a way to do it.

This post really resonated with me. It actually reminded me of another blog post by Steve Yegge on Google GCP and their love of deprecating things. I have little experience with GCP myself, but given how they go about consumer product development, I can certainly believe this1.

I know building new stuff is a lot more fun than maintaining stuff. Take it from me, a person who has list of completely unfinished, unreleased, and unmaintained personal projects a mile long. But this trigger happy approach to deprecating things is not good. Developers get value out of a platform if they are able to build and operate something on it with less effort than they would have if they didn’t use it at all. That is why they spend money on it.

If the platform vendor keeps moving the goal posts like this, meaning more effort is required just to keep their software running, then I personally don’t see the value in continued use the platform. Why would you? You’ve got plenty of work already on your plate evolving your service without having to be on the deprecation treadmill.

Google really needs to improve here if they ever want to be taken seriously as a cloud platform vendor.

  1. I was curious as to how many deprecation emails I received from GCP. Over the last six months, I received four such emails notifying me of service shutdown. I don’t recall receiving any more than half of that from AWS in the 2.5 years I was using that service.↩︎


Previous post
Versioning and dependency management is hard Up there with naming, caching, concurrency, and off by one errors, I think versioning and dependency management are two aspects of software
Next post
Showing A File At A Specific Git Revision Here is a technique for showing the version of a file at a specific Git revision. It’s not a novel technique — there’s naturally a Stack Overflow