Critical Software Quality Attributes
- Saurabh Dhupkar
- Sep 30, 2020
- 2 min read
Writing good software is one thing and keeping the software in good health is another thing. Unless you have managed both these, there are very high chances that your struggle with software support and maintenance will keep on increasing. And certainly, a point will come, which is really very thought for any developer, is to see that the software which used to be your key strong point has now become your key pain area.
Nobody wants to see an application that has earned the respect of fellow humans, gets termed as 'pain area' in the later stages.
How can we avoid this?
Well, if we keep an eye on the software's health, we might be able to avoid it.
Very easy to say, right?
What exactly do we mean by monitoring the health of software ...
Let's see
There are various quality attributes defined for software [pretty long list ... hmm ?].
Believe me, not all of them are vital. I think, there are two sets of software quality attributes that are critical for the survival of any software. If the values of these attributes fall out of acceptable range, then pretty quickly it becomes difficult for software to survive.
Common Critical Software Quality Attributes
These are basically four Software Quality Attributes, that are mandatory for all software of any type to manage -
Reliability
Usability
Performance
Availability
Special Critical Software Quality Attributes
These are other Software Quality Attributes, which are 'Raison d'être' or 'Reason of Existence' of the software. For example, Traceability is vital for a version control software. Failure of Traceability will cause the app to become useless.
These attributes vary from software to software, and mostly depends on the type of software.
When any of these Critical Software Quality Attributes fall out of 'acceptable range', then software hits its retirement phase.
Let me give you an example which is simple to visualize -

Let's take the example of 'Performance', which is 'Common Critical Software Quality Attribute'. If your application becomes too slow to work with, you start thinking about getting rid of it. That's where it becomes 'Pain Area'.
So, if you are maintaining a potential pain area, I would rather suggest to you to first identify the Critical Software Quality Attributes and their acceptable ranges. Then start measuring their values. A trend analysis of these values will help you predict and 'brace yourself' well in advance.
Well, it is not just for 'Potential Pain Area's, it is essential for all... For Potential Pain Areas, it is urgent ...
Comments