One of my favorite discussion points to ask job candidates applying for any position related to software development is:
Tell me what product, any product, you think of as a high quality product and why.
More to come in a future blog on this and my other favorite question, but this I think is a great discussion point for someone applying for a developer or quality assurance position. Surprisingly, out of the maybe twenty or thirty times I have asked this in interviews, no one has turned that question back on me. My answer would have been a particular brand of smart thermostat that I had purchased. My reasons:
- The box it came in was a perfect size and simple, yet visually appealing.
- It came with a screwdriver for installation. I didn’t have to get out any tools.
- It came with very clear instructions and was so easy to install.
- It worked very well and did what it was supposed to do.
In short, they thought of everything for me.
Too often software quality focuses on defects. Is the application bug free? Well certainly it should be defect free, but as a software delivery team, are you thinking about the following?
Your software may not be delivered in a box anymore (remember when software came in a box with 10 to 20 installation floppy disks?), but that does not mean you can ignore packaging. Each interaction you have with your customer is all part of the packaging. The slide shows you put together for requirements sessions, the status reports, release notes, videos – essentially all documentation – give you an opportunity to impress your customers, or turn them off. The front of every deliverable, the first slide, the first page of each document should be clean, simple, and invite its audience in. It should instill trust that everything that is part of that deliverable will meet their expectations.
Training Material / Instructions
Have you ever put something together that had poor instructions to follow? What a frustrating experience that can be. Are you part of a software team that provides technical documents to your customer? Are these documents clear, concise, and simple to follow? Your instructions should be tested before they go to the customer. Your training material should be easy to follow and make sense. These things seem so obvious, but on software development teams, developers are often asked to create documentation. Not all developers are good at documenting. All documents should be reviewed the same way the software is reviewed before going to a customer. And all material should be written in a consistent way such that the customer knows what to expect each time.
As I stated earlier, being defect free is often the primary focus of quality assurance when it comes to software. Here are other areas that should be run through a quality check with regard to actual code:
- Formatting – Is the software coded consistently with regard to indentation and spacing? Does a unit of code written by one developer appear similar to work done by another developer?
- Naming conventions – Does the software make use of similar naming conventions throughout?
- Less is more – Is there redundant code? Is there code written in many lines that can be readably condensed?
- Complexity – Is the code needlessly complex?
- Comments – Are there outdated or incorrect comments in your code?
- Error messaging – Does your software gracefully handle errors, and what do log files look like? Sure most end users never need to dig through the log files, but someone who is supporting the system probably does need to do this when an error is encountered. Did your project team think about error-based non-functional requirements?
Most of this can be cleaned up by having developer conventions put in place with proper code reviews. A qualified QA team can look through code and raise defects where they have noted that something was done against those set standards.
Everything you deliver as part of software development should be run through a quality check and, more importantly, should make the customer feel like they are getting an amazing product that they can trust.