Improving Application Quality
I recently attended an ACM Europe meeting, which took the form of a panel discussion. The topic was computer science research: what should its focus be and how should it be funded? The members of the panel and most of the audience had an academic background, as did Professor Wendy Hall, who chaired the event.
Each panel member made a short statement and then questions were requested. The panel statements and much of the discussion in response to questions were concerned with how to get funding, especially for continuing projects. This was not surprising in view of the composition of the panel and the audience.
I decided to ask a question that was somewhat wider in scope: what could the ACM as an organisation do to improve the quality of IT applications that form an increasingly important part of our lives? What research would be useful in pursuit of that goal? The question was well received, and resulted in a lot of discussion during the session and in the reception afterwards. The response to my question triggered this piece.
My view is that the applications on which we as societies depend are not good enough. I am not thinking about outright project failure but the quality of applications that make it into operation. There are too many that are difficult to use, have poor performance and are insufficiently secure.
What can be done to improve the situation? There are three areas I’d like to discuss, two technical and one non-technical. I’ll start with the latter.
Almost all significant policy initiatives from government, and business strategies in the private sector, depend to some extent on IT systems. A danger is that interference by senior people for political or personal reasons will lead to unrealistic expectations of what can be achieved, in time and functionality. We therefore need to ensure that there is a transparent, two-way exchange between those who want the systems and those delivering them. My previous piece, The best laid plans…, is an attempt to address this kind of problem.
Let me turn now to the technical points. First, it is essential to continue to enhance the methodologies and tools used to design, develop and test applications. Much of the discussion by the ACM panel in response to my question was around formal design and verification techniques. Further research into how to improve the way applications are developed is undeniably necessary – it can always get better. And of course those who want the applications must allow sufficient time to do the job properly.
My second technical point is that having a solid operating environment on which to build applications is very important. It cannot guarantee that applications built using it will be of high quality – it’s possible to write a bad application in any environment. But it certainly helps.
How does it help? The operating environment I have in mind contains the features required to underpin applications operating in demanding conditions. In particular, OS 2200 and MCP systems provide the functions necessary to deliver consistent performance, availability, stability, security and, in the rare event of a failure, rapid and effective recovery. Implementing these functions is difficult and so should not be left to application developers. The delivery of ClearPath systems as an integrated stack minimises the impact on clients’ resources for support and maintenance.
ClearPath application developers also have high-level development tools available in the form of EAE, AB Suite and BIS. These tools allow developers to concentrate on the business requirements, further reducing the need to be aware of the underlying infrastructure. The result contributes to application quality.