Software Quality Engineering

How do you measure software quality?

Mike Whitfield Sr. Software Engineer, EPAM, Google

September 24th, 2015

I'm interested in measuring software quality as organized by the time you begin your initial user testing to the time you have a user base and are roll out a new feature and measure the impacts.

Here's a framework that might help you form an answer: think about something you've been working on for the last six months rather than answer the question generally. Try to tell a story rather than answer "correctly". It's okay to think about the users and features of the system, but please do so from the point of view of how code achieves that (measurable quality exists somewhere in that system, is the hypothesis). Some basic benchmarks to think along might look as follows:

* durability
* accessibility
* maintainability
* (re)usability
* scalability
* portability
* reliability

Please share your thoughts any favorite current reads on this topic!

Aleksandra Czajka Freelance Senior Software Engineer, Developer, Web Developer, Programmer - Full Stack

September 24th, 2015

Wow. What a good question and at the same time such a complicated one. 

First, depending on what you are doing, best solutions will differ. For a blog, an informational site, a simple game, you don't need everything to be top notch. If you make it top notch, you will most likely be wasting your money because you will not be using the top notch components.

For other, more mission critical applications, you want your software to be secure and scalable. So many things go into security. It has to do with coding practices. Some practices are more prone to hacks than others. It has to do with a secure server architecture, having more than one points of failure, keeping your database separate from web server, closing off unnecessary ports, opening necessary ports only to necessary components. And lots of other things.

Scalability is broad as well. It has to do with the code, server architecture and database. So many things go into this. 

This is a very broad discussion and I'd love to see what others have to say on this. But, if you really need an answer to this question for your current software, you will need to hire a technical expert to evaluate your project.

Mike Whitfield Sr. Software Engineer, EPAM, Google

September 24th, 2015

I've improved the "quality" of the thread's ask and given help to organize the expectation of response since we will all have very different ways to measure software quality.