Address
New York 500 East 83rd Street
NY 10028
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Address
New York 500 East 83rd Street
NY 10028
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Software development project audits are performed to provide an independent assessment of whether a project follows established development methodologies and procedures, meets organizational needs, and includes adequate security and management controls. This article discusses the various steps of a software project audit, including planning, methodology assessment, review of the various development stages, and reporting of results.
Determining which development project needs to be audited should be based on the annual audit plan, the criticality and risk of the application, and any compliance requirements. For instance, if the audit is part of a regulatory compliance effort such as SOX, a sample of financially significant projects will need to be selected according to established sampling criteria. Once a project is selected, the audit should be planned by identifying the following:
As a first step, auditors need to contact the project manager and business owner to inform them of their involvement in the project. Doing so will enable management to keep auditors updated on any project meetings and planning sessions and help them obtain the documentation they need to perform the audit. It will also establish senior management support to allow the audit to be successful and the audit recommendations to be implemented.
As a general rule, it is important to become involved in the project as close as possible to the start date to ensure that issues are addressed early and that adequate controls are built into the application. This is because it is much more expensive to retrofit fixes and controls into existing applications than to ensure they are there in the first place.
The first step in the audit is to determine whether the organization has a formal Software Development Life Cycle (SDLC). This is the structured methodology that guides the development of application systems. It typically begins with the project initiation and extends through the feasibility study, business requirements, functional specifications, development, testing, implementation, and post-implementation. For each phase, auditors need to ensure the following:
Finally, auditors need to review any documents or examples that are available as part of the SDLC. Two important documents include checklists that cover each phase of the process and templates that are associated with project deliverables.
If an SDLC methodology is not in place, the audit can be conducted against the organization’s current best practices with a recommendation that an SDLC be developed and implemented to guide future software projects.
A software development project is usually initiated through a formalized project request by management. Auditors need to ensure that the project request is present and includes the following:
As a general best practice, IT departments should have a formalized system to receive, organize, and prioritize user requests. The auditors should determine if the timeframe within which the request was approved was adequate and whether the users were notified of any decision in a timely manner.
The feasibility study is a preliminary assessment that determines a project’s viability, whether to proceed with system development, and any alternative approaches. This is generally required for major development or enhancement projects to ensure the solution chosen is economically or technologically appropriate. When reviewing a feasibility study, auditors need to determine whether it addresses the following areas:
Business requirements describe current and future business needs to ensure they are understood and addressed before developing the system. They detail the business functions the system is required to support, usually expressed in terms of broad outcomes rather than specific functions the system must perform. Auditors need to identify if they:
The functional specifications document describes in detail a product’s intended functionality from a technical point of view. In this document, business requirements are analyzed and converted to produce a preliminary design of the proposed system. As part of the audit process, auditors need to determine whether the functional specifications include the following elements:
Before actual programming can begin, a system design document is created that provides a detailed technical description of the proposed software and gives the software development team overall guidance on the actual software architecture. This document also describes the desired software features in detail and serves as inputs for one or more software programs. As part of their work, auditors need to review the system design document and check that:
Note that any changes to functionality during the system design phase should require the functional specifications document to be updated and reviewed by the user. This should be addressed through the established change management process. As far as the actual programming effort is concerned, auditors need to make sure that development takes place in an environment that is separate from the production environment and that the development staff do not have access to production. Finally, if the programming effort is partially or completely outsourced to a third party, auditors need to assess the adequacy of and compliance with outsourcing controls.
A testing strategy must be developed and followed for new or updated applications. At a minimum, testing should consist of the following:
Throughout the testing phase, auditors need to identify whether written test plans and scripts are available and adequate. For instance, test plans should include the test set-up and scope, testing procedures and data, expected results, and sign-off from the appropriate staff. In addition, auditors need to determine whether all testing is performed in a test environment that is separate from the production environment, whether test results are logged, and whether tests having unexpected results are adequately re-tested. Keep in mind that nothing should be installed in the production environment until it has been successfully tested in a test environment and formally approved by the business user(s).
If the system being developed requires data to be converted from an existing system, auditors need to obtain and review the conversion plan. At a minimum, auditors need to determine if:
In this phase, the new system is installed and made operational in a production environment. The phase is initiated after successful user acceptance testing and sign off. Documentation should have been developed and users trained before being given access to the system. Auditors need to check the following:
A post implementation review is performed to ensure that the system adequately meets the requirements of the business. After a few months of live operation, auditors should be able to determine if the expected benefits of the new system were realized and users are satisfied with the new system. At this stage, auditors need to review the problems that occurred throughout the project and whether the subsequent actions taken were adequate. If differences remain between expectations and actual results, auditors need to determine whether they are due to:
Each of these items can help auditors evaluate the current situation and offer guidelines for future projects.
While conducting an audit, auditors can submit interim reports as issues are identified or in a final document that lists all the issues raised during the review. In either case, the audit plan should include timely notification of any control weaknesses so that they can be resolved prior to system implementation.
Audit reports should address risk and issue causes, effects, and suggested mitigation actions; IT control strengths and weaknesses; and lessons learned that can be applied to future projects. In addition, auditors need to discuss their findings with management and obtain their commitment to ensure that corrective actions are implemented and deadlines for remedying significant deficiencies are followed. To this end, auditors should follow up after an appropriate period of time to make sure that issues were resolved satisfactorily.
This article outlined the steps and activities to successfully perform a software project audit. By following a systematic approach, auditors can help provide an accurate and objective assessment and increase the likelihood of the project’s success. In addition, audit observations and recommendations will help the organization avoid repeating earlier mistakes in future software development projects as well as produce useful best practice guides. By providing an independent assessment of a software project, auditors can make a significant contribution to IT project success.