Systems Under Development Best Practices Symposium

Auditor General's Report on Systems Under Development

Introduction

In response to the concerns of the Public Accounts Committee, the Auditor General of Canada in his 1992 annual Report "committed to a program of reviewing the development of major systems in the government". We initiated this study to specifically review large multi-million dollar system development projects. We are still interested in smaller systems, since the total expenditure of these far outweighs that for major initiatives; these will be audited in our normal annual work in departments.

The OAG has always had an interest in auditing major computer systems under development. However, this was mainly on a one-time basis and depended on our comprehensive audit cycle. We will now be auditing these systems on a continuing basis at different points during the development process and our methodology will be updated to encompass this approach.

We approached this program of reviewing systems under development in stages. The first stage involved research with professionals in the public and private sectors to determine best practices. The second stage is the development of an audit methodology. This methodology will be used to audit several systems under development, with a chapter in the 1994 annual Report of the Auditor General. The Office will then continue value-for-money auditing of systems under development.

Our Study team was drawn from the OAG Computer Audit Group, and was assisted by several committees of senior advisors, to which we presented our preliminary findings for comment. In addition to an extensive literature search, we interviewed almost 70 people in 15 government departments and agencies. These organizations were selected on the basis of having done, or presently doing, systems audit work in the organization, or on the basis of their experience in developing major systems. In the private sector we also interviewed 16 people in 6 private sector companies and received briefs on systems development from 11 system integrators.

There is general agreement that the following activities represent "best practices", although everybody had their own ideas as to the best combination of these activities.

 

Common Themes / Guiding Principles

1. Put the Environment in Order

2. Good Project Management

3. Develop a Business Case

4. Committed User Involvement and Project Ownership

5. Senior Management Commitment

6. Leadership and People

7. Management of the HR Impact

8. Internal audit

Conclusion

During our interviews we found that a great many of the opinions offered on the subject of the systems development process were in direct contradiction to each other: a business case is essential or it is too restrictive; a formal Systems Development Life Cycle (SDLC) methodology must be used or it causes more problems than it is worth; cost/benefit analysis must be included or why do it at all if the cost of hardware is so low?

There is truly such an enormous range of initiatives under way in the government, from very small microcomputer applications to multi-million dollar mainframe and telecommunications applications, that it is impossible to lay out one fixed set of rules for all the players in the game. Our first concern, however, is in the development of high-risk, major computer systems. There is no "magic solution" to delivering "successful" systems, but there are surely commonsense recognized guidelines, based on proved management principles, that can ensure that a major project, once determined to be essential to the business, has more than a reasonable chance of being delivered on time, being within budget, and satisfying the user's requirements. An adaptive approach using selected components of a systems development methodology may be acceptable for small pilots or medium-sized projects; but, when proposed costs are in the Major Capital Project range ($100 million +), then project management and control issues become critical.

At the highest, most abstract level, there are in reality only two "best practices" for successful systems development: selecting the right project for development, and managing that project from the initiation stage through the implementation and evaluation stages.