Are You Using Lazy Software?

Have you ever gotten a dialog message similar to the one below when trying to use a program?

If so, what is the point of this dialog?

Basically, this dialog, the program, is telling you that:

(1) it has a serious internal bug or has found an actual file system problem that it is not handling at all
(2) it has given up
(3) it has dumped the problem in your lap
(4) it wants you to click “OK” — that it’s … “OK” (it’s NOT OK)

Unhelpful dialogs like these are often from lazy programming, poor technical reviews, or other problems. These programs, instead of focusing on “user goals”, only follow their internal structure – making that implementation painfully aware and exposed to you, the user.

What was the user’s goal in this case, anyway? Clearly, the user just wanted to check the activity log and the program should do everything it can to make that possible. Elegantly-designed programs do not give you these types of ridiculous error dialogs.

Instead, a well written program would instead possibly:

(1)  fix the problem in code automatically so you would never see the dialog in the first place, OR
(2)  fix the problem in code and possibly warn you that the program created, in this case, a new “activity log”, OR
(3)  if all attempts failed, some suggestions, in the dialog about what you might need to try, OR
(4)  other stuff….

Since creating a new file, as with the case above, is so utterly simple for an application program, why wouldn’t the program do it? Good question!

Trying to figure out the problem yourself could be tricky since other programs, all sharing the same log folder as in this case, might correctly re-create the log file if it’s not found leaving you with too many variables to know for sure what’s happening (again, not that you should be the one trying to figure out why the program isn’t working correctly).

In Java, for example, creating a new file, assuming paths are correct, etc., is as simple as this:

    // if the log file is not found, for some reason…
    File logFile = new File(“logs/error.log”);
    logFile.createNewFile();

Internally, (sadly) the program in question most likely caught the error but rather than the program dealing with it, it just dumped the problem in your lap. Programs with dialogs like the ones above may have not gotten much, if any, review by technical management. In many cases, management isn’t technical to begin with and is focusing on “shipping software on time”,  or other non software quality goals, which can make oversights like these more likely.

——

Using a well-written program is a joy. Seeing the internal implementation bleed out of the program with unhelpful dialogs isn’t (a joy).

So, if you get a dialog like the above just remember that it was up to the program (the programmer) to do the work and make every attempt to fix any runtime issue found. Is that unhelpful dialog a sign it’s time to ditch the program and find a better one.

Good question.

Enjoy!

——–

Please read our disclaimer available from our home page