Do you have a Chief Software Quality Officer?
Software quality has moved out of the back office to center stage as software becomes the personification of business. Do you have the position of the chief quality officer within your IT organization? I would guess that this is not a position that appears on anyone’s organizational chart. Typically, the QA department has been one of the least visible parts of most IT organizations. In many instances, QA experts are brought in at the last stage of bringing a project to fruition. No one really looks forward to the lone voice pointing out that something doesn’t seem quite right. After all, there are smaller staffs to do an increasingly large list of projects. At the same time, I don’t know any CIO who would say that quality isn’t extremely important.
I contend that as organizations increasingly embrace service oriented architectures and web services interfaces, they will have to put as much attention on quality assurance as they do development. It will come as no surprise to anyone that applications that used to be hidden neatly behind firewalls are exposed to customers, partners, and suppliers. Companies have been forced to expose applications to their constituents in order to be dynamically responsive. To be dynamically responsive, organizations need to be able to leverage their computing resources to respond in real time to opportunities and threats. Insightful organizations are making the transition to Dynamic Response through the adoption of Service Oriented Architectures (SOA) and Web Services interfaces.
How does quality change with this technology innovation? When organizations begin to move from traditional applications development techniques to SOA, they are focused on creating components of software that can be reused in many different situations. For example, a financial services company might create a “service” or component that handles order processing. This service has been designed to be used in every application where an order process is required rather than having developers write a program from scratch each time. In addition, the order processing service has been so well designed so that the company can offer order processing as a service – and a revenue source – to other companies. In other cases, this service will be a critical part of a partnership. For example, companies like Federal Express have partnerships with thousands of companies who need package delivery services for products they sell online. Therefore, Federal Express needs to have an application that can sit on all of their partners online sites. If the shipping business service that Federal Express places on all its partner sites suffers from bugs or performance abnormalities, business is at risk. This is where quality comes in.
This approach towards reusable components or services changes what quality assurance is all about. In traditional method of testing for quality and reliability assumes that you can develop once, test once, and move on. With new generation component or service based applications, development cycles are cyclical requiring an iterative testing process. Clearly, the environment for quality in application code is changing requiring a new approach to quality assurance. How should you approach this area? Below are some of the best practices for Quality Assurance in the Dynamic Response era: Create a cross-functional task force that focuses on the role of QA software development. This insures that quality is discussed with members of the business unit, not just the development team. Educate the application development and deployment teams on the role of QA in their success. With sufficient education, QA members will be consulted early and often. Insure that QA management is part of the team determining the new vision of applications. When QA management is part of development, the resulting applications are easier to fix and test. Educate business management on the importance of quality testing. Business management can become a key ally in assuring software quality To impress upon the business the importance of quality, tie quality initiatives into corporate imperatives such as Sarbanes Oxley and HIPPA. As software continues to expand in importance to corporations, quality will continue to move out of the shadows into the forefront of the IT organization. Innovative CIOs understand that the additional leverage and benefit they are beginning to achieve through Service Oriented Architectures and online partnerships are only as good as the quality of those components. As these set of software components are reused in many different situations, a single error can cascade to impact quality across a vast value chain. With this in mind, it might be a good idea to appoint a chief software quality officer.