And Now a Word from (One of) Your Customers…
I wrote my first software program (a Star Trek parody game) in 1975. I began my professional software career in 1980 and have been a developer or project coach for 40 years. I grew up in this industry. I know it is challenging, and I appreciate the pressure to distinguish products in the market by adding features, improving the interface, and making periodic refreshes to keep them “sexy.”
Five years ago, I changed my process for coaching engagements. For the prior 25 years, I kept a manila folder for each person I was coaching in my bag. I took notes during our conversations and put them in the folder in reverse date order—most recent on top. A sharp young developer observed what I was doing and said very patiently, “I’m surprised you are still using paper.”
He pointed me to an application, which I will not name—this is not a commercial or a vendetta, that would allow me to take notes on a laptop or iPad and sync across all my devices while providing a backup. It was a great nudge. I’ve used that application ever since and have loved it…until about six months ago. The vendor added new search features and a bunch of other swoopy stuff that I don’t use, and the application started behaving badly.
The initial selling point for me on this app was how quickly I could start it and get to where I needed to be so I could take notes while I talked with clients. It was frictionless. I don’t use this app because it is fun, it is a tool that supports my professional work. Suddenly—clearly the wrong word to start this sentence—the app started taking measurable amounts of time to load. Only 10 or 15 seconds, but it was just enough to be annoying. Sometimes when it would load, it would show the history of the client as empty. With a degree in computer science and 40 years experience, I knew to try killing the app and restarting it, which usually resolved the problem—annoying and time-consuming, but whatever.
Recently they updated the app’s graphical user interface. Today, it crashed in the middle of taking notes. People pay me non-trivial sums of money to help them with software project management issues. It is frustrating and unprofessional when I have to stop in the middle of a conversation because my stupid note-taking app has crashed.
This essay is a plea to my software development friends—particularly those in a product owner role. I know some of the product “enhancements” that the nice folks in marketing want to implement are not your ideas. The argument is that they are needed to build or sustain market share, respond to cool features offered by competitors, refresh the look and feel, or respond to some squeaky wheel user who whined about this or that being available in other products or insisting it would be really cool if…
Please remember that you have an existing user base. If your product has been around for more than a year, many of your customers are not the result of marketing campaigns—they are the result of word-of-mouth from happy early adopters. Keep the happy early adopters happy—don’t screw them up.
- Don’t release features that break earlier functionality. This is a no-brainer that is often sacrificed because “the feature MUST be out by the end of the quarter.”
- Be cautious of new functionality that changes the user experience. People do not want your software; they want what your software can do for them. Once they jump through the hoops to learn how to use it, they don’t want to have to relearn. I’m writing this on a word processor that I have used for over 30 years. Every five years or so they move all the controls to different menus just to keep me on my toes, and it drives me nuts. Do you know how much it costs major IT departments to update all their user training materials and to hold users’ hands every time the GUI changes?
- If your product has been around for 5+ years, backward compatibility is on you. Change your internal file formats if you must, but users should always be able to open ANY undamaged file they created with your software. It’s maddening when I try to access a file that’s 10 years old, and the software tells me “This file format is no longer supported.” I have files on my computer that are older than many of you reading this—don’t assume that I no longer need access just because I haven’t opened them in 10 years.
Software quality determines your organization’s success—I’ve recommended my cool note-taking software to several people over the past five years. I’ve been complaining loudly about the recent problems to dozens of friends and clients, and it prompted this essay. Happy people might talk about your product—grumpy people will scream about it. “We’ll fix it when it fails” or “We’ll fix that in the next release” is nonsense. Don’t ship software that isn’t ready. I didn’t sign up to be your beta tester.
I've been ranting and raving about this for years - the software industry has gone off the rails. I believe this started when operating systems become a product - a selling point. They wanted to use the GUI to stop customers in their track at the store with flashy graphics.
Back in the 80's, I was working for a mini-computer company and the selling point for each new release was that the UI did not change, so you don't have to re-train your users and there won't be a loss in productivity. And now, with the cloud and SaaS applications, things have gotten much worse. Apps will change on you with no warning. I remember going out to lunch with the Dev team and when we returned to the office, TFS was operating completely different than before lunch! I am also experiencing more problems with "evergreen" apps like FireFox and Windows where they will download and update whenever they want - and it screws up other apps (esp streaming apps) due to the heavy load they impose on the system. While I have turned off auto-updates for FireFox, they don't make it easy to update the browser.
As the cost of deploying software decreases, I believe companies will be less concerned with quality and testing because if there's a bug, we will just push out a new release later that day. When I attended at Agile conference in 2017, one company was bragging that they perform more than 200 releases a week! That's not something to brag about, IMHO. If you have 200 fixes or enhancements made a week and bundle them into one release, that's a different story.
The lack of useability testing is appalling to me. And again, it would appear to slow down development, but not in the long run. Not much thought is put into UX and UI designs.
The photo is priceless, so kudos to whoever selected it.