Software Quality and Daily Life

August 18, 2009 — Posted by Scott Bain

I recently had to install a driver for a network printer in my home. This is, I would say, a pretty commonplace thing to do in modern life.

I don't want to suggest that what happened was limited to a particular vendor, so we'll leave the company name out… however, it is one of the most prominent and successful printer companies in the world. Not some little podunk knock-off, in other words.

I put the CD that accompanied the printer into my drive and ran the SetUp program. Given that this is a device intended for home use, one would assume (as I did) that I would simply answer a few questions that the rest would be handled for me by the installer.

I'd installed this driver before, on other computers in my house. I knew it was large (much larger than I would think it would need to be) and that the installation took upwards of 20 minutes to complete, and that the "progress bar" would often just seem to be making no actual progress sometimes, but so long as the task manager said it was "running", I'd just have to be patient. So, I left it alone.

I came back a few hours later, and it was frozen at 24%. Task manger reported that it was still running (no "not responding" message or anything like that), so I left it. Two hours later, still nothing, so I finally canceled the process and tried to determine the cause.

To make a (very) long story short, I tried lots and lots of things, and in each case had to wait 20-30 minutes to convince myself that the progress bar was not "normally" frozen, but really frozen. Luckily I could still get productive work done while I was awaiting this verdict… but for each thing I tried, I had to go through the entire process again. I also found that my computer would no longer shut down once I'd tried this, so I had to force it down, then bring it up before trying again (in case some tendrils of the install program was still running, and might be interfering with the next attempt).

I am a technical person, but I was distracted by other things, so it was a while before I even thought to do a simple "net view" in the command prompt window. This gave me a system error to search on (6118, if you care), and found the problem. Well, about 4 possible problems, but I tried each in turn.

In this case, the firewall on the pc needed an exception added for "file and print sharing", which I did, and the installer then proceeded past the 24% mark. Of course, I had to wait 20 minutes to find this out.

So here are my questions…

  1. This driver installer is, like 50 megs or something equally absurd. Why, in all that code, did it not check for something simple like "can I see a printer on this network", or in fact "can I see anything on this network"?
  2. Given that the printer/network was unavailable, why did the driver simply sit and do nothing? Was an exception swallowed somewhere?
  3. What good is a progress bar if it does not make it clear that we're not progressing? How about those "progress" bars that reach 100% and then start over again and again? What are they telling us exactly, that an hourglass does not?

Who thought this software was okay to send out into the commercial marketplace? Keep in mind, most people don't even know what "net view" is, and never do anything using the command prompt window. I guess most would have called technical support and… well, I probably don't need to say anything else about that.

Imagine you bought a new car, and when you tried to parallel park for the first time you found that you cannot turn to the right in reverse gear? Nobody would find that remotely acceptable.

Recently we learned about a credit card company that exposed 130 million people to identity theft, because a hacker exploited a flaw in their security. Think that was not a software issue? Of course it was.

The people who live on this planet are becoming increasing vulnerable to the quality of their software. We hear about vehicle recalls due to bad software, or the failure of 911 calls on cellular phones, and on and on. I submit that, if we don't get our act together, eventually these people are going to start to realize this vulnerability, and are going to turn to (gulp) the government to do something about this problem.

Whatever side you personally come down on the notion of bailouts and reforms… I really don't cherish the idea of my profession being regulated by the US House of Representatives.

I recently wrote a book called "Emergent Design: The Evolutionary Nature of Professional Software Development", so I think it's clear that I sincerely believe that what we do should be thought of as, and conducted as, a real profession with real standards and real support for each and every developer and team. I think most of us want to do a better job, but we're all supposed to figure it out on our own, because there is no official "path" to becoming a developer.

Recently Bob Martin (who has far more influence on such things than I) basically weighed in and said the same thing (only more funny). Maybe we're heading down the right road.

Subscribe to our blog Net Objectives Thoughts Blog

Share this:

About the author | Scott Bain

Scott Bain is an consultant, trainer, and author who specializes in Test-Driven Development, Design Patterns, and Emergent Design.



        

Blog Authors

Al Shalloway
Business, Operations, Process, Sales, Agile Design and Patterns, Personal Development, Agile, Lean, SAFe, Kanban, Kanban Method, Scrum, Scrumban, XP
Cory Foy
Change Management, Innovation Games, Team Agility, Transitioning to Agile
Guy Beaver
Business and Strategy Development, Executive Management, Management, Operations, DevOps, Planning/Estimation, Change Management, Lean Implementation, Transitioning to Agile, Lean-Agile, Lean, SAFe, Kanban, Scrum
Israel Gat
Business and Strategy Development, DevOps, Lean Implementation, Agile, Lean, Kanban, Scrum
Jim Trott
Business and Strategy Development, Analysis and Design Methods, Change Management, Knowledge Management, Lean Implementation, Team Agility, Transitioning to Agile, Workflow, Technical Writing, Certifications, Coaching, Mentoring, Online Training, Professional Development, Agile, Lean-Agile, SAFe, Kanban
Ken Pugh
Agile Design and Patterns, Software Design, Design Patterns, C++, C#, Java, Technical Writing, TDD, ATDD, Certifications, Coaching, Mentoring, Professional Development, Agile, Lean-Agile, Lean, SAFe, Kanban, Kanban Method, Scrum, Scrumban, XP
Marc Danziger
Business and Strategy Development, Change Management, Team Agility, Online Communities, Promotional Initiatives, Sales and Marketing Collateral
Max Guernsey
Analysis and Design Methods, Planning/Estimation, Database Agility, Design Patterns, TDD, TDD Databases, ATDD, Lean-Agile, Scrum
Scott Bain
Analysis and Design Methods, Agile Design and Patterns, Software Design, Design Patterns, Technical Writing, TDD, Coaching, Mentoring, Online Training, Professional Development, Agile
Steve Thomas
Business and Strategy Development, Change Management, Lean Implementation, Team Agility, Transitioning to Agile
Tom Grant
Business and Strategy Development, Executive Management, Management, DevOps, Analyst, Analysis and Design Methods, Planning/Estimation, Innovation Games, Lean Implementation, Agile, Lean-Agile, Lean, Kanban