I have an all-in-one machine, a fax/copier/scanner/printer, that I use for copying, scanning and primarily faxing. It's fine fax machine. And it's a great copier. But when I hook it up to my computer for scanning to a file, it falls apart. Half the time (or more), my computer can't establish a USB connection to the device. I was ready to throw the damn thing out the window when I thought, “Huh, I bet other people have this problem. I bet there's new software. Go see.” I did. There was. I started to download.
I have a high speed connection, and it took me about 20 minutes to download the updated driver. OK. I can do other things while I'm downloading. And I did. 30 minutes later, I finally open the installer and try to install. It hangs about 3 minutes into it.
Since I have experience with crappy software from this vendor, I decide to quit a few applications. I do and the install proceeds a little farther. It stalls again. Ok, I quit all the applications and leave my computer alone to install. It does.
20 minutes later, I start up the scanning application, and wowie zowie, the entire UI has changed. Ok, I'm a smart person, I can figure this out. I was able to start scanning and save my files.
This should be a happy ending, right? Well, I'm only sort-of happy. That's because my implicit requirements for the whole experience were not met. I expected:
- That the file download in about 10 minutes. I'm not sure why the download had to be that big. Why not zip it?
- To be able to install an application the way other Mac apps are installed–while I'm still working. Having to close all other apps is a very non-Mac approach. (Do you Windows users really have to do this? My goodness.)
- To specify a filename once. In order to save a file as an image, I had to specify a filename (that's not used), start the scan, and then specify a filename again. To me, this is a defect.
- To use the Mac Finder to deal with my files in the application. Instead, I have to use the app's view of the finder which doesn't look much like my Mac.
I had a number of implicit requirements that were not met, mostly that the application look and feel like the other Mac apps on my machine. I'm not sure why that was so hard to do. Maybe the developers have never seen a Mac.
So imagine now that you're a developer who's just started to work in the banking domain. You have a lot of experience with selling online, so you know about transaction processing systems, but not about banking. How will you learn about the implicit requirements?
It's worth thinking about this, no matter what your role is on the project. Those implicit requirements are still requirements. If your product doesn't meet them, you will have unhappy customers. Even though I managed to accomplish the tasks I needed, the time it took me to accomplish them and the foreign approach to the UI made me not happy. Implicit requirements are still requirements. It's worth thinking about how to make them more explicit. (One technique is to get early feedback from customers 🙂