Software Quality -- Service Quality; What's the Difference?
We have spent so many years talking about building high-quality software products that it is easy for us to lose sight of one very important fact: The software products that we build do not stand alone. They are only parts of the IT Services on which our customers depend to be able to do their jobs.
ITIL (The Information Technology Infrastructure Library) shows us how the software that we build fits into the larger context of IT services. ITIL is a process model for IT Service Management. It describes all of the processes that are required to provide valuable services to our IT customers.
And what is the important message that we need to learn? It is that a high-quality application will not meet the needs of our customers if it exists in a context that is otherwise quality-challenged. And more importantly, we are unlikely to understand all of the quality attributes that are required of our software unless we examine them while considering the entirety of those IT Services.
ITIL shows us how to do this.
ITIL In a Nutshell
The British government originally developed ITIL in the 1980's to improve the performance of government IT service groups. Since then, it has evolved and matured as many governments and companies across Europe have embraced and supported it. It has just begun making inroads in the US in the past few years, as organizations have discovered and capitalized on its benefits.
ITIL is a library of documents that describe all of the processes involved with IT Service Management. As the graphic shows, this library is centered around two core books (Service Delivery and Service Support) that describe the core IT Service Management processes.
- Service Delivery comprises the proactive processes for ensuring that IT Services are aligned with business needs and financial constraints.
- Service Level Management -- Agree to and document business customers'
requirements for IT services, and monitor actual performance against them.
- Financial Management for IT -- Account for the cost of IT services
and make that information available for decision-making purposes. (Also
charge users for IT services if such an arrangement is in force.)
- Capacity Management -- Balance demand against cost to ensure that
appropriate IT service capacity (e.g. processor cycles, network bandwidth,
disk space) is always available.
- Availability Management -- Balance demand against cost to ensure
appropriate levels of availability (e.g. 24x7, 99.95%) of IT service.
- IT Service Continuity Management -- Coordinate with Business
Continuity Management to ensure that IT services can be maintained or
recovered as needed by the business in case of disaster.
- Service Support comprises the more reactive processes for ensuring that IT Services actually meet the business needs.
- Incident Management -- Restore IT service as quickly as possible when
a service interruption occurs.
- Problem Management -- Identify the root causes of IT service
interruptions, devise work-arounds, and recommend permanent resolutions.
- Change Management -- Consider all changes to IT Services,
approve them, and schedule them for implementation.
- Release Management -- Ensure that releases of new or changed services
do not adversely impact day-to-day operations.
- Configuration Management -- Manage the database of all of the IT
service configuration items (including hardware, software, people,
facilities, etc.).
Several other books support those two core books, including:
- Security Management -- Ensure that the IT services meet all security requirements (including those imposed by the business customers, the organization itself, and government regulation).
- ICT Infrastructure Management - Maintain and operate the IT infrastructure (including hardware, networks, operating systems, telecommunications, etc.)
- Application Management -- Maintain the portfolio of applications that are used by IT service customers and run on the IT Infrastructure.
The Application Management process includes all activities that surround building and maintaining the applications. This includes projects to develop new applications, enhance existing ones, fix bugs in them, or upgrade them, as can be see by the inclusion of "Requirements, Design, Build and Deploy" under Applications Management in the graphic.
What is IT Service Quality?
We generally think of "quality" as either meeting a business need or satisfying requirements. These definitions apply to IT Services just as they do to anything else. The ITIL Service Level Management process is responsible for translating each IT customer's business needs into statements of IT Service Requirements, and ultimately, Service Level Agreements (SLA).
Those SLA's become the basis for judging the quality of service delivered to each IT customer. This means that IT Service Quality is not just a matter of lots of capability, fast responses, high availability, etc. IT Service Quality is a matter of ensuring the capabilities, response times, availability, etc. that the business needs as documented in the SLA's.
For example, suppose a business customer needs a specific service to be available 24-7 with 99.9% up time. In response to this need, the IT environment is run so that the Application server is up 99.9% of the time, and the Database server is up 99.9% of the time, and the network is available 99.9% of the time. In this case, the Service Quality is lacking, because the business customer's need for 99.9% up time is impossible. The actual up time of the service is 99.9% times 99.9% times 99.9%, or 99.7%. That is, instead of being down fewer than 9 hours per year, it would be down more than 28 hours per year!
IT Service Quality must be measured from the perspective of the ultimate customer of that service. The quality of the individual pieces drives the quality of the service, but is not the ultimate measure of service quality.
How does Software Quality relate to IT Service Quality?
The software applications that our business customers depend upon figure into the quality equation in exactly the same way as does every other component of the IT Service. If the software does not provide the capabilities and attributes that the business needs, then the service will rightly be judged as poor-quality. But just because the software does what it is supposed to, doesn't mean that the complete service will meet the business need.
The software is only one component of the over-all IT Service, and it is the quality if the service as seen and used by the ultimate IT customer that counts. Judging the software independently of the rest of the IT infrastructure will give us a false sense that the customer's needs will be satisfied. In the example above, if the software application works 99.9% of the time, then the overall service availability drops to 99.6%, meaning in almost 35 hours of down time per year!
In addition, application capabilities that go beyond the actual business needs do nothing to improve IT Service Quality. The time and effort that we might spend on "bells and whistles" yields no benefit at all if the business requirements for the IT Service exceeds what is delivered.
Finally, it is easy to overlook some software application requirements if they are not examined in the context of the over-all IT environment. ITIL dictates that all of the processes must be represented in the initiation process for any new or changed application. Service Level Management, Capacity Management, Availability Management, Security Management, and the others all figure into the overall requirements for the software. By doing this, ITIL ensures that the application requirements are as complete as possible so that the resulting service is more likely to meet the actual business need.
Software Quality Drives Service Quality
ITIL makes it clear that the quality of our software applications is an important driver for the quality of the IT Services we provide to our end users. It is not the only piece of the puzzle. Rather, the software must be considered in the context of the entire IT Service.
When IT Service Management informs our software development and maintenance processes, we are more likely to meet our business customers' needs. And that is the definition of "high-quality".