Breakage is not OK
Friday, December 25, 2015 by Dave Winer

If a developer says he or she is going to break users,  thank them for letting you know and then hit the Back button.

Only (some) software developers think breakage is okay. Imagine if you took your car to the dealer for an oil change and when you got in to drive it it didn't work. Version 2.0 says the mechanic when you complain. Now how to get get home?

Or if one day you went to the subway and the station wasn't there. "There aren't any subways," someone says to you. They were deprecated. Didn't you see the version change?

Or the doctor operates on you, a simple procedure on your arm, but in the process takes out your heart. You die. You shouldn't be surprised, hearts are no longer necessary. Sorry you died. Next patient!

The world does not work that way. That software developers think they can get away with this is an indication of some sense of power or indispensibleness that's completely unrealistic. We can get on without you or your software. So keep that in mind when you decide to break users. 

  • If we're talking about a service (like the Twitter API), where there can be only one, I agree completely. I think that tweet you linked to has to do with libraries, though, which is different IMO. There can be many supported versions of a library/module. I've heard an argument about libraries/modules that "once you go 1.0, you don't break, you fork" -- I don't follow that advice, but I sympathize with it. :-)

    • I was writing about breakage at all levels, including users. We learned this one in the evolution of Frontier, in an extended beta period, every new verb I added to the language was put into the toys table, with the caveat that the toys table would go away when we shipped. What do you think happened when I took out the toys table? I also lived with developers who worked for me who would routinely fix bugs in the language that would break my apps. I could never get anything working. iTunes a total end-user thing breaks the UI with almost every release. They actually remove commands I depend on! The net-net is if you break users you will have no users fairly quickly.