How Better Software Could Make People More Efficient


In this day and age, companies are always looking for ways to make people more efficient. Although we programmers tend to get obsessed with our work and don’t think twice about staying at the office until 8:00 P.M. to finish up, people in other fields are out the door the moment the clock strikes 5:00 P.M. Therefore, the bosses want to get as much work out of these people in as little time as possible.

But also in this day and age, one of the biggest time wasters besides that little place known as the “bathroom” (or the “washroom” if you prefer) is the software we use. Software is filled with situations that cause users to sit and wait and wait.

Some time back Borland did something interesting. I believe it was their version 4.5 compiler, or perhaps 5.0, where they put the compilation in the background, supposedly allowing you to continue working. When I first heard about that, I thought it was kind of silly, because if I’m waiting for a compile, then it’s not likely that I’m going to want to be typing in more code. That is, I felt that way until I actually tried it. Turns out that was an amazing feature. I could start a compile and then continue working on another code file. Bingo, the software no longer froze up the computer, and I was suddenly more productive. The boss loved me. People started saying “Good morning” to me. (Okay, that part’s not true, but the boss liked me.)

I’m sure you can think of times when you use other people’s software where you have to wait and wait unnecessarily. Now think of your own software. Does your own software freeze up at all or force the users to pause for a moment?

Maybe your program opens a dialog box showing information, when you could simply display the information in the status bar. If this is a common feature that your users use over and over, imagine what would happen if moving the information to the status bar could save each user 10 minutes per day. If a single company has 100 people, then if they each save 10 minutes a day, then that’s almost 17 hours of productivity! Yes, this adds up quickly. Every bit of productivity counts.

In this final section, I close with some extra factors for you to consider regarding how better software can make people more productive.

Don’t Reinvent the Wheel!

Today was quite a day for me. I wasted a lot of time. I was visiting my sister, and she has a DSL connection. I, on the other hand, have a cable modem. Once at her place, I wanted to hook my laptop up to her external DSL modem. She doesn’t have a router, and I didn’t want to go buy one, and so I just disconnected the Ethernet cord from her computer and plugged it into my computer.

But that wasn’t all I had to do, oh no. Next I had to install the software that the DSL provider sent her. And that’s where the fun began. (I use the term fun extremely loosely here.) The installer first made me watch a video (using Macromedia Flash) about how to hook the modem up to the wall, blah, blah, blah. Then once through that, I had to sit for half an hour while the installer put tons of software on my computer, including some kind of connection program that’s supposed to make my life easier. In addition, the installer put some crazy new custom version of Internet Explorer that I had to later remove.

Once the software was installed, the connection software went through its business of trying, and trying, and trying to make a connection. Each time there was a problem I had to run a utility that would supposedly fix the network settings for me, and each time I had to reboot the computer! Being a somewhat slow laptop with Windows XP and a ton of auto-loading software such as a firewall, the computer takes a long time to reboot.

I had to reboot three times, and each time the connection software couldn’t make a connection. And each time it gave me a rather obscure error message to the likes of “Incorrect parameters.” That’s it. It said the parameters were incorrect. The options were to Try Again or Cancel. Cancel? Excuse me? Cancel? Of course I don’t want to cancel! I want to get online! And so I clicked Try Again, and the computer paused for awhile (I assume it was doing something, but I can’t be sure) and then the same Incorrect Parameters dialog box opened, with the same options.

Since I’m a software engineer, I’m a bit more savvy than your typical user, and so I opened the network control panel and discovered that I now had a Broadband setting. I double-clicked it. It tried to connect and told me that the user name and password were wrong. And so I right-clicked the Broadband icon and chose Properties. In the Properties dialog box I saw an option for requesting a user name and password that was unchecked. I checked the option and closed Properties. I double-clicked the icon again, and this time I was asked for a user name and password. I typed the user name and password and was again told that the user name and password were wrong.

I went to my sister’s computer, opened the network connections control panel, and found the same Broadband icon. I right-clicked it and set the same property that requests a user name and password. Then when I double-clicked the Broadband icon, the user name and password dialog box opened. But they were already filled in with my sister’s information, showing me that lo and behold, I did have the user name wrong: I was supposed to follow it with an @ symbol and then the domain name.

I returned to my laptop, double-clicked the Broadband icon, typed in the username@domain version of the user name and then the password, clicked Enter, waited a moment, and suddenly I was online!

And so I finally got the DSL up and running. But let’s backtrack just a moment, shall we, since although I was finally online, my blood pressure was still a bit elevated. What happened here? To ultimately get online, I skipped the software the DSL provider gave me that was supposed to make my life easier, and I went right to the network settings and did it myself. And you know what? Doing it myself was easier! (In fact, I showed my sister how to turn off the connection software and instead use the network settings. She now double-clicks that icon when she needs to connect and also skips the software that’s supposed to make her life easier.) The error message the connection software had given me was wrong and incomprehensible, and the software wanted to reboot unnecessarily.

This has been a general complaint of mine for ages. Why do so many of my colleagues in the programming field get it into their heads that they need to write some software that will serve as a layer over existing software and that this layer is supposed to somehow be easier than the real thing? In this case, we have a layer of software that encapsulates the network settings. But the original network settings software is easier to use!

And that’s the basic problem. As much as people like to bash Microsoft, the truth of the matter is that Microsoft has an entire usability group that helps oversee the usability of their software. And although the network settings section of Windows is by no means the most user-friendly software on the planet, the fact is, in these newer versions it’s not bad.

Now during the hour I spent fussing with the connection software, I could have been up and running and writing this book. I lost an hour, thanks to two problems:

  • I had to fuss with a software layer that was unnecessary.

  • The software gave me incomprehensible error messages that offered me no real help, and then the software wanted to reboot unnecessarily.

RULE

Don’t write software that serves simply as a simplification layer to another piece of software without doing a full usability study on the existing software. Otherwise, the software you write will likely be just as complex and cumbersome as (or even more than) the existing software.

What’s particularly troubling, however, about this particular example is that the support people at the DSL service are probably getting inundated with phone calls for help on using the connection software, and if the connection software were not present, the calls would probably go down by 90 percent! And the managers and VPs at the DSL service probably don’t even realize that the root cause of this high volume of support calls is due to the presence of the connection software itself, not due to just simple problems in the connection software that can be fixed. And so what do they do? Instead of scrapping the whole connection software, they try to make it better and better with each version, piling it on higher and deeper. And each time they introduce parameters that are simply going to result in more tech support calls.

But what’s even more troubling about this is an issue I cover in detail in Chapter 15, “Book in a Book: A Guide for Programming Bosses.” Why did this connection software even come into existence? First, and most likely, the DSL service was probably having some problems because earlier versions of Windows didn’t exactly make it easy to configure network settings. But what followed is the extremely dangerous part: Somewhere in the company lived a programmer who said, “I can build you a program that will make it easier.” And what did the bosses do? They said, “Go for it.” And here we are today.

This is a rather touchy issue, because a lot of bosses and managers don’t have a system of checks and balances in place to find out if the young programmer really can build such a thing and if doing so is even feasible. Further, the bosses might not know the whole software engineering process and how to do a full test of the new software. For more on this, see Chapter 15. For now, however, consider this point:

RULE

Know your own limits as a programmer and don’t try to reinvent the wheel! Software is always more complex than it seems at first.

For example, if you need an audio playing capability on your website, don’t simply assume you can quickly and easily write your own sophisticated audio player. As simple as software such as Windows Media Player may seem, the reality is that many programmers spent a lot of time working on it, and the programmers encountered many things along the way that they couldn’t anticipate, and so will you. In the end, you will end up with software that has not gone through the extensive testing that the product of the bigger software company has, and you will end up with:

  • Bugs

  • Crashes

  • Frustrated users

  • More support phone calls

Know your limits, and don’t reinvent the wheel.

REAL WORLD SCENARIO: Update!

start example

Since I wrote this chapter, I visited my sister again, and we had another computer to hook up to her network. Remembering what I went through last time, I took a different approach: Let’s forget the installation CD altogether and see what Windows XP can do for me. And guess what? I used the New Connection Wizard that’s built right into XP, answered all the questions, put in the DSL user name and password, and within about three minutes, I was completely up and running without even using the special software. And even better, I don’t have the DSL provider’s extra junk (sorry, I mean software) sitting on the new computer. So again, don’t reinvent the wheel!

end example

Make Information Accessible

In Chapter 6, “Data, Reports and Printouts,” I spend a good amount of time showing you how to present your data to the users. Here, however, I want to present some of this information in the light of time management.

Suppose you have an online e-mail account at one of the free web-based e-mail systems. Now imagine if every time you wanted to check your e-mail, you had to start the web browser, type in the URL (or choose it from a bookmark), wait for the web page to download (which might take a moment if you’re behind one of the less-efficient firewalls), type in your user name and password, click the Submit button, get to a main page listing how many e-mails you have, click the folder name, wait for a new page to load, and finally see your e-mail. Of course, now you’re seeing only the subjects; you have to select each subject to see the actual message.

Imagine that. Well, really, you don’t have to imagine it, because that’s exactly what you have to do for most of the web-based e-mail systems. That’s not exactly the most efficient way to get to your e-mail. Of course, the trade-off here is that you can check your e-mail from anywhere, and for that reason I personally use a couple different free e-mail services a great deal. (In fact, for one of them I went ahead and sent in my $25 so I could get more storage.) And these web-based e-mail systems work really well, even if they are a bit slow to access.

But what if you had to jump through such hoops to get at all the local data on your own computer? Back to my famous patience (or lack thereof), I can’t imagine I’d last long in a high-tech world. (See, computers have spoiled me!)

RULE

When you’re designing your software, make the data as easily accessible as possible.

As you read on, think about what your users have to do to get to the data. Do they have to make extra clicks that add a bit more time accessing the data? Is there a way you can add a shortcut to the data?




Designing Highly Useable Software
Designing Highly Useable Software
ISBN: 0782143016
EAN: 2147483647
Year: 2003
Pages: 114

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net