Source: XKCD #293 by Randall Munroe
External software quality refers to the quality of the software from the perspective of the stakeholders. In this module, we will discuss who the Stakeholders are, and what are the components of external software quality.
Stakeholders are anyone affected by the software, not just the user; that is, anyone who “holds a stake” in the usage of the software.
To explain the distinction between stakeholders and users, consider an electronic medical records system at a large hospital. Who are the stakeholders?
All of these stakeholders have different priorities of goals! So we want to define external software quality broadly enough to encompass this.
With this in mind, let’s consider the following external quality measures:
Is the software functionally complete? That is, does it do everything it is supposed to do?
Functionality is about to what extent the system meets the customer’s needs in what the software does. Does the software have all the features the customers need or expect? Is the software sufficiently secure? Are the results the software produces accurate?
What is the capability of the software to maintain performance under certain conditions over a certain period of time?
Consider Amazon Web Services (AWS): Many web applications rely on AWS, like Airbnb, Slack, Lyft, Netflix, Yelp, etc. If Amazon Web Services had a significant outage. However, it also runs Amazon’s own distribution and shipping infrastructure. If your website, application, or technology rely on AWS, what could go wrong? In an AWS outage last year, smart appliances like Refrigerators, Door Locks, Robot Vacuum Cleaners, Self-Cleaning Litter Boxes, etc. stopped working. Imagine how this could affect, say, a customer that doesn’t carry their physical keys with them because they use their phone to lock and unlock their door?
How much effort is needed for a customer to use software?
How much learning is required to interact with software? Do the layouts, aesthetics, and colors help guide the user’s vision effectively?
In Collab, instructors can add a Web Link to the tabs on their course page, like we have on our Collab for the Coursepack and Course Drive Folder. What if I need to edit the Web Link? Well, if I go to Site Settings, I Can See tabs for:
Which of those would you go to change the URL of a Web Link? The obvious answer is “Manage Tools”. The obvious answer is also wrong. If I want to change the URL of a Web Link, I have to go to “Tool Order”!
The first time I used Collab, I honestly thought this feature didn’t exist. I spent months where, if I needed to change a URL, I would use “Manage Tools” to delete the existing Web Link and create another, which was far less efficient.
Why do I use a Google Drive Folder for class resources instead of the Resources tool in Collab? Because it’s far less efficient.
These are usability issues, that make the customer experience of using the software worse, thus lowering the overall software quality.
Accessibility is also a factor in Usability: that is can the software be used by people with a broad range of characteristics.
When operating, what resources are used, and to what extent, by the software?
Resources above typically refers to time and memory, but can also reference other resources. For example, if a program is using an internet connection, how much bandwidth does it use? What are the necessary speeds for the program to operate? Generally, the fewer resources a program consumes, the better.
How able is the software to be transferred from one environment to another?
Can your software run on Windows, Mac, Linux, etc.? Does your app work in Chrome, Firefox, Edge, etc.? Can elements within the software adapt to a change in how and where the users uses the software?