Wednesday, May 9, 2012

Software Quality

What do we mean by "Software Quality"? How can we define "quality"?


I believe that the notion of quality is mostly dependent on context.  A piece of old furniture, for instance can be an antique if it is of high quality or unique in some regard.  A painting can be of high or low quality also, but a computer programmer may not be able to spot the difference.  It requires a background and an eye for detail,  so what could a programmer look for when determining a certain software's 'quality'?  As a programmer myself I'd like to think that the quality of a program is dictated specifically by the 'quality' of its code, but in the real world business environment there are other determining factors undoubtedly.  These determining factors are inherent in any business scenario.  Does the product fully address the issue(s) at hand? Was the product created within the allotted time and resources? Is it profitable?  All of these things combine to potentially make a high quality business product, but the innards of the program itself must also meet the quality standards of code for it to be a high quality piece of software overall.   Considering a program like Google Chrome, this is not an over and done with kind of program, it is constantly evolving and being reformed.  Rather than reinventing the wheel during each iteration, a well formed development and testing cycle must first be implemented.  This lifecycle adds another element to the overall quality of the software, then comes the actual code itself.  Depending on the needs of the business, code may need to be multiplatform, compact, written in a certain programming language, or all of the above.  These qualities speak to the internal status of the program, which is one component of software's quality.  The other would be external quality, meaning the appearance of the software rather than the innards.  How does the outward appearance work?  How strong is the software's usability?  Is this iteration of the product visibly different than last iterations?  Could users find any of the outward changes frustrating?  All of these questions are linked to elements that form overall external quality.  These requirements combine to determine the overall code quality of software.  Factor in the external and internal code qualities with business quality and I believe that you can properly gauge the overall quality of any piece of software.

No comments:

Post a Comment