As a user, when I hear engineers start talking about doing a rewrite of an application or an API that I depend on, I get nervous. A rewrite almost never results in something better for me.
Based on personal experience, I have some (possibly unfair) opinions:
- Rewrites are almost always about the engineering organization
- They are almost never about the end users
- Inside any given organization, it’s very difficult for people to understand this because their salary depends on them not understanding it
- Attempts at rewriting really large apps rarely get to a state of “fully done”, so the engineers may end up with a Lava Layer anyway
- Except now users are angry because features they depended on are gone
Why am I writing this? Because I’m still mad they took away my Opera.
Until recently, I’d been using Opera for over a decade. By the time Opera 12 came out, it was amazing. It had everything I needed. It was lightweight, and could run on computers with less than a gig of RAM. With all of the keyboard shortcuts enabled, I could slice and dice my way through any website. I could browse the web for hours without removing my hands from the keyboard, popping open tabs, saving pages for later reference, downloading files. It was amazing.
Oh, and Opera also had a good email client built in. It was, like the browser part, lightweight and fast, with keyboard shortcuts for almost everything. It also read RSS feeds. Oh, and newsgroups too. It had great tagging and search, so you could really organize the information coming into your world.
Then they decided to take it all away. They didn’t want to maintain their own rendering engine anymore. They let go of most of the core rendering engine developers and decided to focus on making Yet Another Chromium Skin ™. No mail reader. Most of the keyboard shortcuts gone. Runs like shit (or not at all) in computers with 1 gig of RAM.
I realize I got exactly what I paid for. But if you are wondering why users get twitchy when engineers and PMs start talking about rewrites, wonder no longer.
After Opera stopped getting maintenance, I switched back to Firefox, and fell in love with Pentadactyl, the greatest “make my browser act like Vim” addon that ever was.
Can you guess what happened next? Yep, they decided to rewrite everything and break the addon APIs. I know they had some good reasons, but those reasons meant the end of my beloved Penta. Now I am back to using Firefox with Vimium (like an animal), and I suppose I should be grateful to have even that.
And don’t get me started on my experiences with “REST APIs”, especially in a B2B environment.
- Strategy letter IV: Bloatware and the 80-20 myth: Users use 20 percent of features; the only problem is, they all use a different 20 percent
- Things you should never do, Part 1: They did it by making the single worst strategic mistake that any software company can make: They decided to rewrite the code from scratch.
- The CADT Model: Fixing bugs isn’t fun; going through the bug list isn’t fun; but rewriting everything from scratch is fun
- Volatile Software: ‘Breaking backwards compatibility’ means ‘the program is broken’