Last night I launched FourSquare for the first time in several weeks so I could check in from Dubai International Airport, which is another story entirely. No big surprise, FourSquare has been upgraded since I last used the app. Guess what, though? The new version sucks. I hate it. I intend to uninstall it and never use it again.
What did they do that is so awful? Not much, really. They took away the two things I really enjoyed about doing checkins is all. They stopped showing me how many points the checkin is worth, and they stopped showing me where I rank among my FourSquare friends. Can I find those things elsewhere in the app? I don’t know and don’t care. It’s not worth the effort to find out. All I know is it used to be fun and now it’s not.
“All I know is Facebook used to be fun and now it’s not.” Have you heard that recently, or in the past year? It used to be that Facebook was fantastically simple and fun. Everybody loved it. Now, it’s complicated and annoying and even scary. People blog about how bad it is. It seems like if there were an alternative to Facebook, people would go there in a minute.
Don’t forget Swype, the Android keyboard input software that is so amazing. Except that they have now enlarged their dictionary so much that they match all kinds of ridiculous words. They match so many wrong words that it is now harder to text using Swype than not. I mean, who uses words like “euphemism” in text messages?
Who thinks LinkedIn is pleasant to use any more? Not me. Who is tired of having new features pushed at them all the time? Me!
If you think about the software that you use regularly, you may notice that the trajectory of software usability has reversed. We used to stay away from 1.0 versions because we knew that they were broken. It was only with 2.0 that it was usable. After 2.0, features were slowly added that filled out the early offering. There were lots of problems, but usually they were about all of the features we wanted but couldn’t get.
In other words, software used to be born fragile, broken, and feature-poor, then improve slowly over time. Now, it’s the opposite. We use the app the day it’s released, and within a year the developer has added so much cruft and crap that the app has lost its original appeal and we go elsewhere!
On the other hand, there is CraigsList. Still going strong. Still the same features as ever (that is, hardly any). It solves my problem. I’m happy with it. I don’t want anything more. I don’t want to post ads to Facebook or Like them or join a community or make friends among people who sell antique typewriters or have gratuitous graphics leaking all over the page. I just want to post an ad and then go drinking. With CraigsList I can do just that. Bravo!
What is going on? I have a theory.
It’s Agile’s fault.
In olden times, it was hard to build an application. It took a long time and when you were done it was buggy. After release, you spent a year just getting the thing to work as well as you originally expected. After that, you added features at an agonizingly slow pace, causing more bugs as you went. So people were always clamoring for more and as a developer, you thought you could never keep up.
That’s the waterfall world, isn’t it?
Now, you can put reasonable quality software together very quickly. And you can add features very quickly without breaking it. In fact, that’s how we think you’re supposed to build a big thing. You are supposed to do it by building a little thing and then adding to it a little at a time.
That’s the agile world, isn’t it? Iterative and incremental? Keep adding.
But no methodology, framework, or process can decide for you what you should build, or how much of it. More importantly, nobody has ever put any thought into deciding when to stop. Stopping has never been an option. Wise Agile coaches will point out to you that if you have a team that specializes in a component, they will continue to work on that component forever, regardless of actual need. I can now extend that wisdom. As long as you have developers (and marketers), they will continue to add to your application regardless of need.
That’s what’s happening. We are so good at building software now that we build past where users want us to go. Our teams stay in place and they keep adding and changing features because that’s what product teams do. We take something that has just achieved success and change it, a process that the development and marketing people call “improving” it. Nobody ever has a meeting entitled “Should we do anything more with this application?” Instead they have a meeting entitled “What new features should we put into this application?”
Let me challenge the Product Owners out there. Stop improving your app before we hate it. Learn how to say “No” to worthless features!