Whenever the subject of Software quality is broached, immediately the arguments pertaining to the various constraints that binds the quality of software gets raised. So what are these constraints and how deeply they affect Quality.
Before we take this discussion further, we need to root our discussions on one golden rule - "Customer/User is the King" and in case of any trade-off, the trade-off will be made in the best interest of the Customer/User.
The second aspect we need to be clear on is, whether quality is an independent or dependent variable. I posit that, quality is a dependent variable and is always subject to constraints placed by other factors that the stakeholders of the software can control.
Extending this argument further, let us look at what are the factors that control quality. By doing so we also get back to the idea behind the post i.e. the constraints on quality (more in context of software engineering). As I see it, the primary constraints that affect software quality will be:
These three constraints can be seen as the three nodes of the "Iron Triangle" of Software Engineering. Quality can be visualized as the area that is bound by these three constraints. Looking at the triangle, it becomes obvious that we need to be realistic with respect to the three constraints to get a decent coverage for quality. In absence of that, the area of the triangle will shrink and quality will suffer.
This brings us to the next question. What is acceptable Quality? Who makes the decision on what is acceptable Quality? Is there a way that will help us to make the trade-offs?
We will discuss these in subsequent posts.
Before we take this discussion further, we need to root our discussions on one golden rule - "Customer/User is the King" and in case of any trade-off, the trade-off will be made in the best interest of the Customer/User.
The second aspect we need to be clear on is, whether quality is an independent or dependent variable. I posit that, quality is a dependent variable and is always subject to constraints placed by other factors that the stakeholders of the software can control.
Extending this argument further, let us look at what are the factors that control quality. By doing so we also get back to the idea behind the post i.e. the constraints on quality (more in context of software engineering). As I see it, the primary constraints that affect software quality will be:
- Requirements or Feature set - The laundry list of items that need to be built. Under this title we can also include the scope creep that takes places during development.
- Schedule - The time available to build the feature set.
- Cost - This would include factors like the skill level and number of resources that can be deployed, the tools that can be used, the budget available, etc.
These three constraints can be seen as the three nodes of the "Iron Triangle" of Software Engineering. Quality can be visualized as the area that is bound by these three constraints. Looking at the triangle, it becomes obvious that we need to be realistic with respect to the three constraints to get a decent coverage for quality. In absence of that, the area of the triangle will shrink and quality will suffer.
This brings us to the next question. What is acceptable Quality? Who makes the decision on what is acceptable Quality? Is there a way that will help us to make the trade-offs?
We will discuss these in subsequent posts.
Comments
Post a Comment