SlideShare a Scribd company logo
8VLQJ 3HULRGLF $XGLWV WR 3UHYHQW &DWDVWURSKLF 3URMHFW )DLOXUH
Paul Dorsey - pdorsey@dulcian.com
Dulcian, Inc.

In the early part of the 17th century, Sweden endeavored to construct the grandest warship ever
built. It would be larger, heavier, and carry more firepower than any ship ever built. It was
covered in beautiful carvings so, not only would it be capable of destroying any enemy vessel, it
would do so in grand style. The construction of this ship consumed 5% of the country’s GNP. In
1628, the VASA set out on its maiden voyage. It sank to the bottom, killing 50 people, after
sailing only 1000 meters from the dock in a light summer breeze. The irony is that this was not
an unexpected event. The project made every mistake common to IT projects (scope creep,
change in project lead, using new technology, failure to follow a careful design). The worst part
was that although the ship failed when it was tested, no one informed management (the king).
Not only did the project fail, but 50 innocent lives were lost. This cautionary tale exactly
parallels some massive IT project failures (although rarely do IT failures kill more than careers
and profits).
Year after year, we continue to build the IT equivalent of the Vasa. The main difference between
the doomed historical ship and “IT Vasas” is that when a ship sinks, construction stops; on an IT
project, we continue to pump millions of dollars into a system after it has already failed. We
cannot prevent poor decisions, but we can prevent people from ignoring them.

0DQDJLQJ 6XFFHVVIXO 3URMHFWV
Several years ago, I was contacted by a graduate student who was working on a thesis comparing
system development methodologies. The student wanted to create a contingency model
indicating which style of development was appropriate for which type of project. I was asked to
give my opinion about when each proposed development methodology should be employed. I
thought it was an excellent question; however, I don’t think the answer I gave satisfied the
student very much. I replied that the software development method employed had very little
effect on project success. I have seen successes and failures using every method. If the
development team used no formal process at all, failure was guaranteed, but it did not seem to
matter which development method was used.
What I told the student was that project management is like leading a bunch of children on a
wilderness hike. Periodically, you should climb to the top of a tall tree and see if you are still
going in the right direction, find out if there are obstacles in the way, and make sure that the path
you are on will get you to your final destination. Climb back down from the tree, gather all of the
children (most will have wandered off into the woods), and point them all in the right direction
prior to moving on.
As simple as this description of project management sounds, it is shocking how often managers
do not follow it. Project managers may go for months (if not years) without taking stock of the
real status of a project. As a result, the architecture of the system may be unsound and failure
may be inevitable, but this critical information will not be discovered in a timely manner.
Frequently, an unsound system foundation is not discovered until there is an attempt to put the
system into production. Of the many shortcuts that are taken in the name of expediency, there is
none more dangerous than failing to make a periodic assessment of the overall project status.



,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
Auditing is the critical success factor in preventing massive failures. IT projects need to be
periodically examined to make sure they are on the right track. Failure to periodically assess
means that you could be building a system that will never work and be unaware of it.
These assessments can be internal, but IT professionals are notoriously poor at self-examination.
The most successful way to get developers to consistently test their own code is to force them to
write the tests before they write the code (the so-called “test-first” concept from the Agile
methodology). The official audit should not be done by anyone on the project team.
A project audit is a significant, substantial effort. It is not a review of one part of the system (a
security audit is not a project audit), nor should its scope be limited. The audit should answer the
question “Are we building a system that will meet user requirements?”

$XGLW RVWV
Useful IT project audits are both time consuming and expensive and will the delay the project.
They are intrusive, annoying and usually create political land mines. Assume that the audit will
consume 5-10% of the total cost of the system (excluding hardware). For systems that have been
stuck in analysis or development paralysis, the cost may be much lower. Therefore the actual
audit cost is likely to be around 5-10% of the current total productive work completed on the
project, which, unfortunately, may be far less than the total amount spent on the project.
Meaningful audits cannot take place without the participation of the project team. Team
members will need to walk the auditors through the system, prepare architectural overviews, and
educate the audit team.
Audits can also be very threatening to a project team. In the rare cases when they are conducted
at all, audits are usually only initiated when a project is known to be in trouble and management
is looking for a scapegoat, or wants to find a different solution.
Everyone connected to the project will declare an audit to be a waste of time and effort. Project
management will feel threatened and wonder why you do not trust them. The developers will
wonder why they need to help these outsiders when they should be coding.
Given the economic and political costs, it is little wonder that IT project audits are not as
common as they should be.

$XGLW %HQHILWV
An audit will tell you whether or not you are building a Vasa. Failing a $200 million project after
$20 million (rather than $300 million after cost overruns) is a huge benefit. Of course, the second
time you try to build the project may be no better than the first, but at least you will not be going
down a road that is doomed to failure.
There are hundreds of articles quoting industry project failure rates that vary from 20% to 80%.
These articles differ about what failure means, but regardless of the source of the statistics, there
are enough project failures to conclude that audits make good economic sense.
Periodic assessments can help prevent several common problems:
1. Ensuring that project milestones have actually been achieved. Assessments should be
   made:
   • when determining project scope


,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
• when the data model is thought to be relatively stable
   • after the basic user interface design is complete
   • after each major architectural decision.
   Such assessments are best made with the assistance of an outside auditor who is not
   otherwise connected to the project. The act of defending a decision to a third party often
   helps to focus the thinking of the team.

2. Averting unforeseen disasters. It is very easy to think that a project is going along smoothly
   when many people already know that it is doomed. Asking developers and users involved in
   the day-to-day project development process how things are going on a regular basis can help
   reveal problems looming on the horizon.

3. Inappropriate resource allocation. At the outset of a project, it is not always possible to
    accurately determine the number of hours or all of the resources required for each phase of
    the project. By taking time to frequently assess project status, tasks that have been omitted
    will be discovered and a reassessment of the outstanding issues will ensure that they are
    being addressed.
Audits do more than simply prevent disasters. They can also help to identify missed
opportunities and find places to improve even a very successful project. An audit will help the
existing team to take stock of the project and provide them with opportunities view the project
from another perspective that they might otherwise never have seen.

7KH 3ROLWLFV RI WKH $XGLW
The political impact of a project audit must always be taken into consideration. If the project
development team or the project manager is resistant to an audit, it is time to worry. A competent
IT professional should be proud of his/her work and be happy to get another team’s perspective.
If they resist an audit, this usually means that they already know what the audit will find and that
the result will not be positive.
It is important to ensure that the auditor is truly independent and brought in only to audit. There
should be no chance that the auditor can work on the project after the audit. There should be no
conflict of interest. The auditors should neither be partnered with, nor have an adversarial
relationship with the development team. On one audit (where litigation was likely), I was not
even told what consulting organization the previous team came from, and I had to perform most
of the audit from existing documentation.
Who does the auditor work for? This is a very important question. On one audit, I was brought in
by the prime contractor who had a bad relationship with the sub-contractor responsible for all of
the IT work on the project. I was told to make the report to the client as general and positive as
possible. In the report for the prime contractor, I was told to list everything that was wrong with
the system requiring correction. The point is that I was hired by the prime contractor as their
agent. Therefore, only in my interactions with the prime contractor was I a totally independent
auditor.
An audit is never totally objective. Biases always exist among the members of the audit team.
They bring their own way of doing things and their own views of the world. However, if you are



,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
building a Vasa that will never float, even a biased audit will reveal that valuable information.
An audit team with a different approach will help to bring new ideas to the project.

)LQGLQJ WKH 5LJKW $XGLWRU
This may be one of the more challenging aspects of performing a successful audit. IT projects
are so rarely audited that auditing is not a widely discussed or advertised service.
You may need to get a team to perform the audit whose members have never done a project
exactly like the one being audited. However, any reputable consulting firm should have some
experience of reviewing existing work as well as creating plans for assuming responsibility for
an existing project to go forward, which is effectively the same task as an audit.
You will not need a large audit team, but each member should be highly skilled. You will need to
make sure that each area of the audit has a technical lead who can evaluate the quality of the
system. Minimally, you will need the following resources:
1. Project Manager – This individual must have managed projects similar in size and scope to
   the one being audited. If he/she has never managed anything larger than a $1 million dollar
   project, that person is not a good choice to audit a $100 million dollar project.
2. Database Administrator (DBA) – A DBA is needed to audit the underlying database and
   make sure that the system is set up to conform to industry standards. This resource can also
   help evaluate the system backup and recovery procedures.
3. Application Architect – User Interface design and development is its own specialty. This area
   is just as important as the database. In Object-Oriented (OO) or Service Oriented
   Architecture (SOA)-driven systems where most of the logic is not coded in the database, this
   individual may be more important than a good DBA. Note that SOA and UI architecture are
   not two different areas that can be audited independently. The application audit must be done
   as a whole.
4. Security Specialist – Assessing system security (particularly web-based systems) is usually
   not within the skill set of most designers. You need to have a security specialist for this task.
   Experience with high-security military, medical, or financial systems is useful in selecting
   the appropriate specialist since security in those industries is vital.

When selecting the audit team, be sure to evaluate the actual individuals performing the audit
and not just their firm’s reputation. This is a very specialized operation that requires very high-
quality talent. You do not need an army of junior developers reviewing each Java class for
adherence to documentation and coding standards. An audit is not a total quality evaluation. It
should indicate the health of the project, not identify every undocumented class.

6WUXFWXULQJ WKH $XGLW
An audit should not be an isolated effort. In addition to substantial periodic audits, large projects
should have some level of independent continuous monitoring to make sure that the ongoing
management of the project is on track.
There are various sections within a system audit:
1. The first step for the audit team is to understand the system. The auditors should have a
   thorough knowledge of the system prior to critiquing it. This initial phase of the audit follows


,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
the same process as that of a new team taking over a project. The auditors formulate a project
   plan, begin reviewing documentation, and walk through the system architecture and features.
2. The audit should include scalability and performance tests. IT development teams are
   notorious for hiding system performance and scalability flaws.
3. Part of the review should also include direct interviews with users and observations of the
   working system.

.QRZOHGJH 7UDQVIHU
This step allows the auditors to understand the entire system architecture as if they were taking
over system development. Declaring that the level of understanding of the auditors must be
sufficient to take over development of the system helps to clarify the detailed knowledge needed
by the auditors. Many auditors do not try to really understand a system prior to commenting on
it. This makes their audits superficial and necessarily flawed. The goal of this phase is to gain an
understanding of the complete system prior to working with any or all of the individual system
areas.
The following areas should be reviewed for the knowledge transfer portion of the audit:
1. System Overview – Review the existing Strategy Document. This will allow the auditors to
    understand the project charter, roles, responsibilities, and core use cases to be supported.
2. Data Model Walkthrough – Review or create documentation describing each database table
    and attribute.
3. Review/Identify Transaction Use Cases – Review the requirements documentation or
    interview current personnel to identify how the use cases are supported by the current system
    and to understand how users interact with the existing system.
4. Review User Interface Code Architecture – This will help the auditors understand how the
    existing applications are built and maintained. Of particular interest is the amount of
    information being moved from the client to the application server and from the application
    server to the database.
5. Review Reporting Requirements/Architecture – Examine how the reporting requirements are
    met in the existing system.
6. Review System Architecture – This includes the information transfer/synchronization
    mechanism in distributed systems.
7. Review System Installation/Upgrade Mechanism. This requires installing the entire system
    on the auditor’s computers.
8. Internal Control review – Identify known exposures and match them to existing internal
    controls. This is a much broader review than simply examining what computer security
    controls are in place and includes business exposures such as human data entry errors and
    collusive fraud.
9. User Access review – Examine architecture controlling user names, passwords, roles,
    privileges and how these are controlled in the system.
10. Review process for handling system bugs and enhancement requests – Review the existing
    bug handling and configuration management processes.
11. Multi-Lingual capabilities (if applicable) – Review the current system's multi-lingual
    architecture and capabilities.


,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
12. Basic System Requirements – The number of users, bandwidth restrictions, transaction
    volumes, performance requirements should be quantified and evaluated.
13. Process Flows – Determine the current system process flows and how they are implemented.
14. Custom Framework – Review the application development framework and documentation
    for any custom frameworks.
15. Performance – Audit system performance to determine the number of users in the system,
    number and types of transactions performed, and the effectiveness of existing performance
    testing. Identify performance bottlenecks.
16. Standards – Review user interface coding standards and how these standards are
    implemented and enforced.
17. Training – Review existing training methods and trainer qualifications.

,QIUDVWUXFWXUH $XGLW
In this phase of the audit, examine each of the following areas from a technical soundness
perspective. Compare existing system practices to current industry best practices and document
any discrepancies.
1. System and User Documentation
      • Includes code commenting and training manuals

2. Data Model Audit – Examine the system model for the following:
      • Violations of database normalization rules
      • Appropriate level of abstraction
      • Consistency of naming conventions
      • Adequate documentation of the model
      • Consistency and appropriateness of data types
      • Flexibility to accommodate future changes to requirements

3. Database Review – Examine the following aspects of the database structure and design:
      • Appropriate usage of server-side code, particularly for batch routines
      • Quality/performance of SQL
      • Database performance including creation of appropriate indexes

4. User Interface (UI) Architecture Review – Examine the following aspects of the user
   interface code and design:
       • Binding framework
       • UI complex rule enforcement
       • Resulting network traffic
       • DML Operations
       • State management
       • Row caching
       • Appropriate use of relevant architecture
       • Code and documentation

5. Distributed System/ETL Audit
      1. Complexity and maintainability of code



,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
2.   Quality of architecture

6. Security Audit
      • User interface susceptibility to code injection and cross-scripting
      • Control/exposure matrix review
      • User privilege security review

7. Hardware/Software/Networking Review
      • Review existing hardware/software and networking equipment and assess suitability
         to meet system requirements

8. Backup/Recovery Procedures
      • Review plans for system backup/recovery in the event of system failure or damage

9. Appropriateness of system upgrade mechanism

6VWHP $ELOLW WR 0HHW XUUHQW DQG )XWXUH 5HTXLUHPHQWV
Examine the current set of system requirements; identify all of the use cases, and review a
sample of the use cases for suitability, specifically:
•   Compare documented requirements to the existing use cases and how they are handled.
•   Interview users to assess satisfaction with the existing system.
•   Determine whether or not the existing backup and recovery procedures are sufficient to meet
    maximum downtime requirements.
•   Assess flexibility of the system to meet new requirements.

)LQDQFLDO 5HYLHZ
Auditors should review how resources have been spent over the lifetime of the project, including
budgeted expenses versus actual expenditures for each year of the project.

$XGLWV RI RPPHUFLDO2II7KH6KHOI 276
6RIWZDUH 3URMHFWV YV XVWRP 6VWHP
'HYHORSPHQW 3URMHFWV
Given that COTS projects fail with the same regularity as custom development projects, the need
for an audit is just as great; however, the structure of a COTS audit is a bit different. If the
project uses mainstream COTS packages (e.g. Oracle or SAP), there is little need for a data
model audit because the strengths and weaknesses of those structures are well known.
Very serious attention should be given to any customization of the COTS:
    •   Were the customizations necessary?
    •   Were they appropriate?
    •   What will be the impact of the customizations on the ability to move to the next release
        of the COTS?
Most COTS projects have enough customization that they need the same level of scrutiny as a
custom development project.



,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
7KH $XGLW 5HSRUWV
A comprehensive audit should result in multiple reports. There is usually a high-level finding
report for top management to answer the big questions. This report should be written in terms
that non-technical professionals can understand. This high-level report should be no more than 2-
5 pages.
A detailed audit report should be written for the project manager. It should describe all major
system flaws in detail and discuss the architectural strengths and weaknesses of the system
design. The executive summary of the detailed report should be no more than 10-15 pages. A
complete listing of all observations, flaws, and suggestions might easily require 100 pages or
more.
The existing team should have access to the audit report and be given a chance to respond to it.
Existing team members should have participated in many parts of the audit and senior team
members should have been included in evaluative discussions of the system. The existing team
may not agree with the findings of the audit but, by the time the report is released, there should
be no surprises.
The existing team should be provided with an opportunity to write a response to the report to be
included with the final audit report.

$FWLQJ RQ WKH $XGLW
The most difficult part of the whole audit process is determining how to take corrective actions.
These actions may potentially result in discarding large portions of the existing system.
If an audit brings significant architectural weaknesses to light, the findings of the audit must be
validated by additional review (probably with a different audit team). Even if the existing team
agrees with the findings of the audit, major shifts in the direction of a large project should not be
undertaken lightly.
It might even be prudent to bring in another outsider to review the audit report to determine
whether or not its findings are legitimate. If the project being audited costs hundreds of millions
of dollars, some extra prudence is appropriate.
Once the audit report has been accepted, the basic sunk cost argument must be applied. The
amount of money already spent on the project is not relevant information. The decision about
how to proceed should be based on the lowest estimated cost to complete the project.
Technology may have advanced since the project’s inception. Therefore, starting over may be
the easiest way to proceed.
Sometimes calling something an “upgrade” rather than a “refactoring” or a “rewrite” is much
more palatable, especially to management. However, when some or all of an existing system is
not capable of meeting user requirements, the system must be modified whether the changes cost
$10 or $10 million.




,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
DVH 6WXGLHV
Most Financial Management Information Systems (FMISs) are never audited. An informal poll
at the 2007 ICGFM conference indicated that only 30% of systems typically receive a review.
Frequently, when an audit team is brought in, it is only after it is clear that the project is failing
and the government is looking to better understand the reasons for the failure. Even when an
audit (or “review” as it is frequently called) is done, it is rarely completed to the level of depth
described in this paper. Some audits are best described as “journalistic.” In these cases, the audit
team comes in for a few weeks, interviews all of the stakeholders and then reports on what they
said.

Even though most audits are not done to the level described in this paper, they usually seem to
come to the right conclusions and provide significant value to the project. However, some audits
can reach erroneous conclusions. Journalistic audits will usually report what any stakeholder
says, which may or may not be true or accurate.

Governments may not act upon the conclusions of the audit report, even when these conclusions
are correct. Their representatives may not agree with the report, or may be unwilling to accept
that a project that has already consumed so many resources is a failure. Audit reports including
good news that suggest next steps seem to be more likely to be accepted.

Gathering case study information is difficult. In this article, I can only report the names of
projects and their reviews when the audit report was favorable. Struggling or failing projects are
not usually discussed publicly.

Projects facing massive cost overruns that deliver only a small percentage of the user
requirements still may be reported as successes in presentations and in publications. No
government is anxious to publicize wasting significant resources on a failed project.

DVH 6WXG  (WKLRSLD
Ethiopia has been involved in a 12-year economic budget and finance reform led by a team from
Harvard University. As part of the project, a customized budget and finance software system was
built. When Harvard’s role on the project concluded, a detailed audit of the software was
performed. The only part of the audit process described in this article that was not done was the
evaluation of how well user requirements were met.

The conclusion of the audit was quite favorable. The system was well built, well documented,
and mostly conformed to industry standards. The entire system had been built for less than US
$2M (a comparatively very low cost for systems of this type). The network capabilities
throughout Ethiopia at the time required that hundreds of installations be deployed throughout
the country, since it was initially impossible to support a centralized environment. The long-term
goal of the government was to centralize when the infrastructure could support it. The audit
concluded that the existing system would probably not support a centralized deployment and
needed to be redesigned.

The government accepted the audit team’s recommendations and ultimately hired the audit team
company to manage the development of the redesign project. Although the audit had been quite


,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
thorough, when the team took over, they were surprised by how little they had learned about the
system during the audit process. A few areas of the system were far less well designed than
originally believed which demonstrates that even a substantial audit may not uncover all the
problems with a systems development project.

DVH 6WXG  7DQ]DQLD
For their FMIS, the Tanzanian government has deployed the finance and accounting functions
(General Ledger, Cash Management, Accounts Payable, and Accounts Receivable) of the
EPICOR Enterprise Resource Planning (ERP) application.

The system was implemented by a local vendor with funding from various donors. The FMIS has
been implemented in all ministries, departments, and agencies, as well as 21 sub-treasuries
located in various regions of the country. A scaled-down version of the system has also been
implemented by two-thirds of Tanzania’s local government authorities.

A major audit is planned for the future so a preliminary review was conducted by a single
external consultant. Various aspects of the program were reviewed including:

   •    Business processes, both automated (EPICOR and non-EPICOR) and manual
   •    Software modules and functionality
   •    Peripheral applications supporting the FMIS
   •    Hardware and infrastructure
   •    User and technical support capabilities
   •    Knowledge transfer and training
   •    Vendor relations (including contracting)
   •    Disaster recovery and security procedures

The audit did not conclude that the project was a failure but did suggest that the system requires
some significant work before it can be declared a success. Some of the key recommendations
included:

   1.   Resolving contractual agreements with vendor
   2.   Acquiring additional EPICOR expertise
   3.   Resolving long standing technical problems with FMIS application
   4.   Improving reporting functionality
   5.   implementing a disaster recovery plan
   6.   Expanding user and technical support training
   7.   Revising the budget planning process

Although the Tanzanian government did recognize that the FMIS had not yet achieved all of its
objectives, the government disagreed with many of the consultant’s findings. Donors were
convinced by the consultant’s findings and recommendations and continue to request that the
government act on these recommendations.




,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
DVH 6WXG  $QRQPRXV *RYHUQPHQW )0,6
The government has implemented a number of public expenditure reforms which are expected to
lead to improvements in fiscal management and service delivery. An FMIS for the central
government and several local governments had been implemented.

Many believed that the system has been successful thus far and performs reliably and
consistently. Despite this, many questions have been raised by some donor staff, especially
within financial management sector with regard to system’s lack of performance and/or its
unsuitability within the present environment.

The donor initiated a review to document the system’s present performance as well as
suggestions for its future functional and practical improvements. Three team members spent two
weeks in country reviewing the system.

The goals of the audit were as follows:

   1.   Review the FMIS
   2.   Review the system reporting functionality
   3.   Observe how the system is utilized
   4.   Evaluate the technical infrastructure

The major focus of the audit was to assess the status of the deliverables and milestones. It was
concluded that the system is a total success. The main recommendation was to continue on the
current path to deploy to the rest of the country.

Later a second audit was done as there were continuing questions about the quality of the system.
Two auditors spent two weeks reviewing the system. The second audit was far less
complimentary citing significant cost overruns and functional deficiencies.

DVH 6WXG  $QRQPRXV *RYHUQPHQW )0,6
In spite of spending millions of dollars and nearly 10 years trying to get an FMIS operational, the
project in question did not seem to be making material progress. Some modules were completed
and pilot tested, but the lack of networking infrastructure prevented the FMIS from being
deployed.

Two auditors were brought in for three weeks to evaluate the system. The audit report was
understandably critical. The report cited poor management, and an inadequate infrastructure to
support the project. Some module development made little progress due to lack of government
involvement.

It seems that there were two critical factors preventing project success:
     1. Many commercial FMISs require significant bandwidth. They assume network capability
        common in North America and Europe but less common in developing nations. This was
        a known issue and should have been recognized prior to spending millions of dollars on
        software development.



,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW

More Related Content

PDF
Dealing with Estimation, Uncertainty, Risk, and Commitment
PDF
Make_a_PM_Resolution_for_2007
PDF
One, No One, One Hundred Thousand Projects (Uno, Nessuno, Centomila Progetti)
PPTX
Business analysis1.9 - business side
PDF
PopcornFlow: Continuous Evolution Through Ultra-Rapid Experimentation
PPTX
Building a SIPOC with Matt Hansen at StatStuff
PPS
Accident inves
PPS
Accident Investigation
Dealing with Estimation, Uncertainty, Risk, and Commitment
Make_a_PM_Resolution_for_2007
One, No One, One Hundred Thousand Projects (Uno, Nessuno, Centomila Progetti)
Business analysis1.9 - business side
PopcornFlow: Continuous Evolution Through Ultra-Rapid Experimentation
Building a SIPOC with Matt Hansen at StatStuff
Accident inves
Accident Investigation

What's hot (20)

PDF
Blameless Post-mortems: Everything You Ever Wanted to Know
PDF
Brighttalk outage insurance- what you need to know - final
PDF
PDF
Mary Poppendieck: The Aware Organization - Lean IT Summit 2014
PDF
A Best of Breed Approach to Accelerate Projects with High Reliability
PDF
Brighttalk reason 114 for learning math - final
PDF
Measurement and Metrics for Test Managers
PDF
Brighttalk learning to cook- network management recipes - final
PDF
The Testing Planet Issue 10
PPTX
Building a Process Map with Matt Hansen at StatStuff
PDF
Theory of Management of Large Complex Projects - Introduction and Chapter 1
PPT
Dont Be On Time
PDF
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
PDF
STARCANADA 2015: Lightning Strikes the Keynotes
PDF
Opinion: Why healthcare.gov has so many problems
PDF
Creating An Incremental Architecture For Your System
PPT
Using periodic audits to prevent catastrophic project failure
PDF
wicked problems 20-may-14_rev-rkg
PDF
Measurement and Metrics for Test Managers
PDF
Theory of Management of Large Complex Projects - Chapter 3
Blameless Post-mortems: Everything You Ever Wanted to Know
Brighttalk outage insurance- what you need to know - final
Mary Poppendieck: The Aware Organization - Lean IT Summit 2014
A Best of Breed Approach to Accelerate Projects with High Reliability
Brighttalk reason 114 for learning math - final
Measurement and Metrics for Test Managers
Brighttalk learning to cook- network management recipes - final
The Testing Planet Issue 10
Building a Process Map with Matt Hansen at StatStuff
Theory of Management of Large Complex Projects - Introduction and Chapter 1
Dont Be On Time
[HCMC STC Jan 2015] Choosing The Best Of The Plan-Driven And Agile Developmen...
STARCANADA 2015: Lightning Strikes the Keynotes
Opinion: Why healthcare.gov has so many problems
Creating An Incremental Architecture For Your System
Using periodic audits to prevent catastrophic project failure
wicked problems 20-may-14_rev-rkg
Measurement and Metrics for Test Managers
Theory of Management of Large Complex Projects - Chapter 3
Ad

Viewers also liked (19)

PPT
Icgfm Conference Polls
PDF
Treasury reform in_nepal_a_case_for_government_credibility-baburam_subedi_en
PPTX
Strengthening the demand-side for improved public investment
PPTX
Investing to Invest Francais
PPT
Workshop Session II: Public Expenditure Financial Accountability (PEFA) Asses...
PPT
Fsai Presentation Engl
PPT
Stephen lande financial crisis and trade - final
PPT
Tue 0900 Nomvalo
PPT
10.45 12.30pm Participant Workshop Groups 1 2 3 4 Final
PPT
Ana cristina bittar de oliveira icgfm xbrl in brazil government english
PPT
El Gobierno para una ciudadanía Informada Kabondo
PPT
3.30 4.15pm Managing For Results In Pfm (Jean Baptiste Sawadogo)
PPT
Rssai Presentation English
PPT
Right to Information Legislation in India
PPT
Eduardo flores trejo. gema aragones icgfm social_controlmechanisms_armenia
PDF
Capacity Development Public Financial Management
PDF
Investigating Government Accounting Reform In The Greek National Health Servi...
PPT
Icgfm david ostermeyer keynote new methods of delivering development assistance
PPT
How the Financial Crisis has Changed the Market for Public Private Partnershi...
Icgfm Conference Polls
Treasury reform in_nepal_a_case_for_government_credibility-baburam_subedi_en
Strengthening the demand-side for improved public investment
Investing to Invest Francais
Workshop Session II: Public Expenditure Financial Accountability (PEFA) Asses...
Fsai Presentation Engl
Stephen lande financial crisis and trade - final
Tue 0900 Nomvalo
10.45 12.30pm Participant Workshop Groups 1 2 3 4 Final
Ana cristina bittar de oliveira icgfm xbrl in brazil government english
El Gobierno para una ciudadanía Informada Kabondo
3.30 4.15pm Managing For Results In Pfm (Jean Baptiste Sawadogo)
Rssai Presentation English
Right to Information Legislation in India
Eduardo flores trejo. gema aragones icgfm social_controlmechanisms_armenia
Capacity Development Public Financial Management
Investigating Government Accounting Reform In The Greek National Health Servi...
Icgfm david ostermeyer keynote new methods of delivering development assistance
How the Financial Crisis has Changed the Market for Public Private Partnershi...
Ad

Similar to Using Periodic Audits To Prevent Catastrophic Project Failure (20)

PPT
Spm unit 1
PPTX
Yale waterfall delivery approach training deck
PPTX
IT Project Management information techonology
PDF
Evaluating Project Success
DOCX
2 days agoShravani Kasturi DiscussionCOLLAPSETop of Form.docx
PDF
Introduction to Software Requirement Engineering.pdf
PPTX
Software estimating
PDF
Project rescue fix it ot kill it
PDF
Software projects can go well... ask me how
DOCX
hroughout the fifty-odd years of software development, the ind.docx
PPT
Breakthroughs In [It] Project Management Slideshare
PDF
What CFOs should ask their software development leaders
PPTX
The Project Management and Information Technology Context(1).pptx
PDF
Nine best practices of project management
PDF
What a waste of money! Orange Paper
PPTX
Why do the Projects fail
DOC
Software Project Management-An overview
PPT
Why Do So Many Software Projects Fail?
PDF
Project management roundtable summary final
Spm unit 1
Yale waterfall delivery approach training deck
IT Project Management information techonology
Evaluating Project Success
2 days agoShravani Kasturi DiscussionCOLLAPSETop of Form.docx
Introduction to Software Requirement Engineering.pdf
Software estimating
Project rescue fix it ot kill it
Software projects can go well... ask me how
hroughout the fifty-odd years of software development, the ind.docx
Breakthroughs In [It] Project Management Slideshare
What CFOs should ask their software development leaders
The Project Management and Information Technology Context(1).pptx
Nine best practices of project management
What a waste of money! Orange Paper
Why do the Projects fail
Software Project Management-An overview
Why Do So Many Software Projects Fail?
Project management roundtable summary final

More from icgfmconference (20)

PDF
2015 closing remarks_winter_conference_icgfm_maykoski_fr
PDF
2015 closing remarks_winter_conference_icgfm_maykoski_sp
PDF
2015 closing remarks winter_conference_icgfm_maykoski_en
PDF
Day3 sp4 chemonics-icgfm_dec2015_fr
PDF
Day3 sp4 chemonics-icgfm_dec2015_sp
PDF
Day3 sp4 chemonics-icgfm_dec2015_en
PDF
Day3 sp3-3 georgetown-panelandreamurta_en
PDF
Day3 sp3-4 georgetown-panelyonatonmorse_en
PDF
Day3 sp3-2 georgetown-paneltomcardamone_en
PDF
Day3 sp3-1 georgetown-paneljodivittori_en
PDF
Day3 sp2 nov 6 draft icgfm-wuertz_fr
PDF
Day3 sp2 nov 6 draft icgfm-wuertz_sp
PDF
Day3 sp2 nov 6 draft icgfm-wuertz_en
PDF
Day3 sp1 wright-membership_benefits_dec2015_fr
PDF
Day3 sp1 wright-membership_benefits_dec2015_sp
PDF
Day3 sp1 wright-membership_benefits_dec2015_en
PDF
Day2 sp5 23.10.2015-presentation-stateaid_taxationanddevelopmentinukraine_ief...
PDF
Day2 sp5 23.10.2015-presentation-stateaid_taxationanddevelopmentinukraine_ief...
PDF
Day2 sp5 23.10.2015-presentation-stateaid_taxationanddevelopmentinukraine_ief...
PDF
Day2 sp4 pres-washington_elettore_en
2015 closing remarks_winter_conference_icgfm_maykoski_fr
2015 closing remarks_winter_conference_icgfm_maykoski_sp
2015 closing remarks winter_conference_icgfm_maykoski_en
Day3 sp4 chemonics-icgfm_dec2015_fr
Day3 sp4 chemonics-icgfm_dec2015_sp
Day3 sp4 chemonics-icgfm_dec2015_en
Day3 sp3-3 georgetown-panelandreamurta_en
Day3 sp3-4 georgetown-panelyonatonmorse_en
Day3 sp3-2 georgetown-paneltomcardamone_en
Day3 sp3-1 georgetown-paneljodivittori_en
Day3 sp2 nov 6 draft icgfm-wuertz_fr
Day3 sp2 nov 6 draft icgfm-wuertz_sp
Day3 sp2 nov 6 draft icgfm-wuertz_en
Day3 sp1 wright-membership_benefits_dec2015_fr
Day3 sp1 wright-membership_benefits_dec2015_sp
Day3 sp1 wright-membership_benefits_dec2015_en
Day2 sp5 23.10.2015-presentation-stateaid_taxationanddevelopmentinukraine_ief...
Day2 sp5 23.10.2015-presentation-stateaid_taxationanddevelopmentinukraine_ief...
Day2 sp5 23.10.2015-presentation-stateaid_taxationanddevelopmentinukraine_ief...
Day2 sp4 pres-washington_elettore_en

Recently uploaded (20)

PPTX
fastest_growing_sectors_in_india_2025.pptx
PDF
Predicting Customer Bankruptcy Using Machine Learning Algorithm research pape...
PPTX
Basic Concepts of Economics.pvhjkl;vbjkl;ptx
PDF
Is Retirement Income a Three Dimensional (3-D) problem_ What is the differenc...
PPTX
Introduction to Essence of Indian traditional knowledge.pptx
PDF
how_to_earn_50k_monthly_investment_guide.pdf
PDF
Dialnet-DynamicHedgingOfPricesOfNaturalGasInMexico-8788871.pdf
PDF
final_dropping_the_baton_-_how_america_is_failing_to_use_russia_sanctions_and...
PPTX
social-studies-subject-for-high-school-globalization.pptx
PDF
Circular Flow of Income by Dr. S. Malini
PPTX
4.5.1 Financial Governance_Appropriation & Finance.pptx
PDF
Spending, Allocation Choices, and Aging THROUGH Retirement. Are all of these ...
PDF
Why Ignoring Passive Income for Retirees Could Cost You Big.pdf
PPT
E commerce busin and some important issues
PDF
ABriefOverviewComparisonUCP600_ISP8_URDG_758.pdf
PDF
NAPF_RESPONSE_TO_THE_PENSIONS_COMMISSION_8 _2_.pdf
PDF
caregiving tools.pdf...........................
PPTX
Globalization-of-Religion. Contemporary World
PPTX
Session 3. Time Value of Money.pptx_finance
PDF
ECONOMICS AND ENTREPRENEURS LESSONSS AND
fastest_growing_sectors_in_india_2025.pptx
Predicting Customer Bankruptcy Using Machine Learning Algorithm research pape...
Basic Concepts of Economics.pvhjkl;vbjkl;ptx
Is Retirement Income a Three Dimensional (3-D) problem_ What is the differenc...
Introduction to Essence of Indian traditional knowledge.pptx
how_to_earn_50k_monthly_investment_guide.pdf
Dialnet-DynamicHedgingOfPricesOfNaturalGasInMexico-8788871.pdf
final_dropping_the_baton_-_how_america_is_failing_to_use_russia_sanctions_and...
social-studies-subject-for-high-school-globalization.pptx
Circular Flow of Income by Dr. S. Malini
4.5.1 Financial Governance_Appropriation & Finance.pptx
Spending, Allocation Choices, and Aging THROUGH Retirement. Are all of these ...
Why Ignoring Passive Income for Retirees Could Cost You Big.pdf
E commerce busin and some important issues
ABriefOverviewComparisonUCP600_ISP8_URDG_758.pdf
NAPF_RESPONSE_TO_THE_PENSIONS_COMMISSION_8 _2_.pdf
caregiving tools.pdf...........................
Globalization-of-Religion. Contemporary World
Session 3. Time Value of Money.pptx_finance
ECONOMICS AND ENTREPRENEURS LESSONSS AND

Using Periodic Audits To Prevent Catastrophic Project Failure

  • 1. 8VLQJ 3HULRGLF $XGLWV WR 3UHYHQW &DWDVWURSKLF 3URMHFW )DLOXUH Paul Dorsey - pdorsey@dulcian.com Dulcian, Inc. In the early part of the 17th century, Sweden endeavored to construct the grandest warship ever built. It would be larger, heavier, and carry more firepower than any ship ever built. It was covered in beautiful carvings so, not only would it be capable of destroying any enemy vessel, it would do so in grand style. The construction of this ship consumed 5% of the country’s GNP. In 1628, the VASA set out on its maiden voyage. It sank to the bottom, killing 50 people, after sailing only 1000 meters from the dock in a light summer breeze. The irony is that this was not an unexpected event. The project made every mistake common to IT projects (scope creep, change in project lead, using new technology, failure to follow a careful design). The worst part was that although the ship failed when it was tested, no one informed management (the king). Not only did the project fail, but 50 innocent lives were lost. This cautionary tale exactly parallels some massive IT project failures (although rarely do IT failures kill more than careers and profits). Year after year, we continue to build the IT equivalent of the Vasa. The main difference between the doomed historical ship and “IT Vasas” is that when a ship sinks, construction stops; on an IT project, we continue to pump millions of dollars into a system after it has already failed. We cannot prevent poor decisions, but we can prevent people from ignoring them. 0DQDJLQJ 6XFFHVVIXO 3URMHFWV Several years ago, I was contacted by a graduate student who was working on a thesis comparing system development methodologies. The student wanted to create a contingency model indicating which style of development was appropriate for which type of project. I was asked to give my opinion about when each proposed development methodology should be employed. I thought it was an excellent question; however, I don’t think the answer I gave satisfied the student very much. I replied that the software development method employed had very little effect on project success. I have seen successes and failures using every method. If the development team used no formal process at all, failure was guaranteed, but it did not seem to matter which development method was used. What I told the student was that project management is like leading a bunch of children on a wilderness hike. Periodically, you should climb to the top of a tall tree and see if you are still going in the right direction, find out if there are obstacles in the way, and make sure that the path you are on will get you to your final destination. Climb back down from the tree, gather all of the children (most will have wandered off into the woods), and point them all in the right direction prior to moving on. As simple as this description of project management sounds, it is shocking how often managers do not follow it. Project managers may go for months (if not years) without taking stock of the real status of a project. As a result, the architecture of the system may be unsound and failure may be inevitable, but this critical information will not be discovered in a timely manner. Frequently, an unsound system foundation is not discovered until there is an attempt to put the system into production. Of the many shortcuts that are taken in the name of expediency, there is none more dangerous than failing to make a periodic assessment of the overall project status. ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 2. Auditing is the critical success factor in preventing massive failures. IT projects need to be periodically examined to make sure they are on the right track. Failure to periodically assess means that you could be building a system that will never work and be unaware of it. These assessments can be internal, but IT professionals are notoriously poor at self-examination. The most successful way to get developers to consistently test their own code is to force them to write the tests before they write the code (the so-called “test-first” concept from the Agile methodology). The official audit should not be done by anyone on the project team. A project audit is a significant, substantial effort. It is not a review of one part of the system (a security audit is not a project audit), nor should its scope be limited. The audit should answer the question “Are we building a system that will meet user requirements?” $XGLW RVWV Useful IT project audits are both time consuming and expensive and will the delay the project. They are intrusive, annoying and usually create political land mines. Assume that the audit will consume 5-10% of the total cost of the system (excluding hardware). For systems that have been stuck in analysis or development paralysis, the cost may be much lower. Therefore the actual audit cost is likely to be around 5-10% of the current total productive work completed on the project, which, unfortunately, may be far less than the total amount spent on the project. Meaningful audits cannot take place without the participation of the project team. Team members will need to walk the auditors through the system, prepare architectural overviews, and educate the audit team. Audits can also be very threatening to a project team. In the rare cases when they are conducted at all, audits are usually only initiated when a project is known to be in trouble and management is looking for a scapegoat, or wants to find a different solution. Everyone connected to the project will declare an audit to be a waste of time and effort. Project management will feel threatened and wonder why you do not trust them. The developers will wonder why they need to help these outsiders when they should be coding. Given the economic and political costs, it is little wonder that IT project audits are not as common as they should be. $XGLW %HQHILWV An audit will tell you whether or not you are building a Vasa. Failing a $200 million project after $20 million (rather than $300 million after cost overruns) is a huge benefit. Of course, the second time you try to build the project may be no better than the first, but at least you will not be going down a road that is doomed to failure. There are hundreds of articles quoting industry project failure rates that vary from 20% to 80%. These articles differ about what failure means, but regardless of the source of the statistics, there are enough project failures to conclude that audits make good economic sense. Periodic assessments can help prevent several common problems: 1. Ensuring that project milestones have actually been achieved. Assessments should be made: • when determining project scope ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 3. • when the data model is thought to be relatively stable • after the basic user interface design is complete • after each major architectural decision. Such assessments are best made with the assistance of an outside auditor who is not otherwise connected to the project. The act of defending a decision to a third party often helps to focus the thinking of the team. 2. Averting unforeseen disasters. It is very easy to think that a project is going along smoothly when many people already know that it is doomed. Asking developers and users involved in the day-to-day project development process how things are going on a regular basis can help reveal problems looming on the horizon. 3. Inappropriate resource allocation. At the outset of a project, it is not always possible to accurately determine the number of hours or all of the resources required for each phase of the project. By taking time to frequently assess project status, tasks that have been omitted will be discovered and a reassessment of the outstanding issues will ensure that they are being addressed. Audits do more than simply prevent disasters. They can also help to identify missed opportunities and find places to improve even a very successful project. An audit will help the existing team to take stock of the project and provide them with opportunities view the project from another perspective that they might otherwise never have seen. 7KH 3ROLWLFV RI WKH $XGLW The political impact of a project audit must always be taken into consideration. If the project development team or the project manager is resistant to an audit, it is time to worry. A competent IT professional should be proud of his/her work and be happy to get another team’s perspective. If they resist an audit, this usually means that they already know what the audit will find and that the result will not be positive. It is important to ensure that the auditor is truly independent and brought in only to audit. There should be no chance that the auditor can work on the project after the audit. There should be no conflict of interest. The auditors should neither be partnered with, nor have an adversarial relationship with the development team. On one audit (where litigation was likely), I was not even told what consulting organization the previous team came from, and I had to perform most of the audit from existing documentation. Who does the auditor work for? This is a very important question. On one audit, I was brought in by the prime contractor who had a bad relationship with the sub-contractor responsible for all of the IT work on the project. I was told to make the report to the client as general and positive as possible. In the report for the prime contractor, I was told to list everything that was wrong with the system requiring correction. The point is that I was hired by the prime contractor as their agent. Therefore, only in my interactions with the prime contractor was I a totally independent auditor. An audit is never totally objective. Biases always exist among the members of the audit team. They bring their own way of doing things and their own views of the world. However, if you are ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 4. building a Vasa that will never float, even a biased audit will reveal that valuable information. An audit team with a different approach will help to bring new ideas to the project. )LQGLQJ WKH 5LJKW $XGLWRU This may be one of the more challenging aspects of performing a successful audit. IT projects are so rarely audited that auditing is not a widely discussed or advertised service. You may need to get a team to perform the audit whose members have never done a project exactly like the one being audited. However, any reputable consulting firm should have some experience of reviewing existing work as well as creating plans for assuming responsibility for an existing project to go forward, which is effectively the same task as an audit. You will not need a large audit team, but each member should be highly skilled. You will need to make sure that each area of the audit has a technical lead who can evaluate the quality of the system. Minimally, you will need the following resources: 1. Project Manager – This individual must have managed projects similar in size and scope to the one being audited. If he/she has never managed anything larger than a $1 million dollar project, that person is not a good choice to audit a $100 million dollar project. 2. Database Administrator (DBA) – A DBA is needed to audit the underlying database and make sure that the system is set up to conform to industry standards. This resource can also help evaluate the system backup and recovery procedures. 3. Application Architect – User Interface design and development is its own specialty. This area is just as important as the database. In Object-Oriented (OO) or Service Oriented Architecture (SOA)-driven systems where most of the logic is not coded in the database, this individual may be more important than a good DBA. Note that SOA and UI architecture are not two different areas that can be audited independently. The application audit must be done as a whole. 4. Security Specialist – Assessing system security (particularly web-based systems) is usually not within the skill set of most designers. You need to have a security specialist for this task. Experience with high-security military, medical, or financial systems is useful in selecting the appropriate specialist since security in those industries is vital. When selecting the audit team, be sure to evaluate the actual individuals performing the audit and not just their firm’s reputation. This is a very specialized operation that requires very high- quality talent. You do not need an army of junior developers reviewing each Java class for adherence to documentation and coding standards. An audit is not a total quality evaluation. It should indicate the health of the project, not identify every undocumented class. 6WUXFWXULQJ WKH $XGLW An audit should not be an isolated effort. In addition to substantial periodic audits, large projects should have some level of independent continuous monitoring to make sure that the ongoing management of the project is on track. There are various sections within a system audit: 1. The first step for the audit team is to understand the system. The auditors should have a thorough knowledge of the system prior to critiquing it. This initial phase of the audit follows ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 5. the same process as that of a new team taking over a project. The auditors formulate a project plan, begin reviewing documentation, and walk through the system architecture and features. 2. The audit should include scalability and performance tests. IT development teams are notorious for hiding system performance and scalability flaws. 3. Part of the review should also include direct interviews with users and observations of the working system. .QRZOHGJH 7UDQVIHU This step allows the auditors to understand the entire system architecture as if they were taking over system development. Declaring that the level of understanding of the auditors must be sufficient to take over development of the system helps to clarify the detailed knowledge needed by the auditors. Many auditors do not try to really understand a system prior to commenting on it. This makes their audits superficial and necessarily flawed. The goal of this phase is to gain an understanding of the complete system prior to working with any or all of the individual system areas. The following areas should be reviewed for the knowledge transfer portion of the audit: 1. System Overview – Review the existing Strategy Document. This will allow the auditors to understand the project charter, roles, responsibilities, and core use cases to be supported. 2. Data Model Walkthrough – Review or create documentation describing each database table and attribute. 3. Review/Identify Transaction Use Cases – Review the requirements documentation or interview current personnel to identify how the use cases are supported by the current system and to understand how users interact with the existing system. 4. Review User Interface Code Architecture – This will help the auditors understand how the existing applications are built and maintained. Of particular interest is the amount of information being moved from the client to the application server and from the application server to the database. 5. Review Reporting Requirements/Architecture – Examine how the reporting requirements are met in the existing system. 6. Review System Architecture – This includes the information transfer/synchronization mechanism in distributed systems. 7. Review System Installation/Upgrade Mechanism. This requires installing the entire system on the auditor’s computers. 8. Internal Control review – Identify known exposures and match them to existing internal controls. This is a much broader review than simply examining what computer security controls are in place and includes business exposures such as human data entry errors and collusive fraud. 9. User Access review – Examine architecture controlling user names, passwords, roles, privileges and how these are controlled in the system. 10. Review process for handling system bugs and enhancement requests – Review the existing bug handling and configuration management processes. 11. Multi-Lingual capabilities (if applicable) – Review the current system's multi-lingual architecture and capabilities. ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 6. 12. Basic System Requirements – The number of users, bandwidth restrictions, transaction volumes, performance requirements should be quantified and evaluated. 13. Process Flows – Determine the current system process flows and how they are implemented. 14. Custom Framework – Review the application development framework and documentation for any custom frameworks. 15. Performance – Audit system performance to determine the number of users in the system, number and types of transactions performed, and the effectiveness of existing performance testing. Identify performance bottlenecks. 16. Standards – Review user interface coding standards and how these standards are implemented and enforced. 17. Training – Review existing training methods and trainer qualifications. ,QIUDVWUXFWXUH $XGLW In this phase of the audit, examine each of the following areas from a technical soundness perspective. Compare existing system practices to current industry best practices and document any discrepancies. 1. System and User Documentation • Includes code commenting and training manuals 2. Data Model Audit – Examine the system model for the following: • Violations of database normalization rules • Appropriate level of abstraction • Consistency of naming conventions • Adequate documentation of the model • Consistency and appropriateness of data types • Flexibility to accommodate future changes to requirements 3. Database Review – Examine the following aspects of the database structure and design: • Appropriate usage of server-side code, particularly for batch routines • Quality/performance of SQL • Database performance including creation of appropriate indexes 4. User Interface (UI) Architecture Review – Examine the following aspects of the user interface code and design: • Binding framework • UI complex rule enforcement • Resulting network traffic • DML Operations • State management • Row caching • Appropriate use of relevant architecture • Code and documentation 5. Distributed System/ETL Audit 1. Complexity and maintainability of code ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 7. 2. Quality of architecture 6. Security Audit • User interface susceptibility to code injection and cross-scripting • Control/exposure matrix review • User privilege security review 7. Hardware/Software/Networking Review • Review existing hardware/software and networking equipment and assess suitability to meet system requirements 8. Backup/Recovery Procedures • Review plans for system backup/recovery in the event of system failure or damage 9. Appropriateness of system upgrade mechanism 6VWHP $ELOLW WR 0HHW XUUHQW DQG )XWXUH 5HTXLUHPHQWV Examine the current set of system requirements; identify all of the use cases, and review a sample of the use cases for suitability, specifically: • Compare documented requirements to the existing use cases and how they are handled. • Interview users to assess satisfaction with the existing system. • Determine whether or not the existing backup and recovery procedures are sufficient to meet maximum downtime requirements. • Assess flexibility of the system to meet new requirements. )LQDQFLDO 5HYLHZ Auditors should review how resources have been spent over the lifetime of the project, including budgeted expenses versus actual expenditures for each year of the project. $XGLWV RI RPPHUFLDO2II7KH6KHOI 276
  • 8. 6RIWZDUH 3URMHFWV YV XVWRP 6VWHP 'HYHORSPHQW 3URMHFWV Given that COTS projects fail with the same regularity as custom development projects, the need for an audit is just as great; however, the structure of a COTS audit is a bit different. If the project uses mainstream COTS packages (e.g. Oracle or SAP), there is little need for a data model audit because the strengths and weaknesses of those structures are well known. Very serious attention should be given to any customization of the COTS: • Were the customizations necessary? • Were they appropriate? • What will be the impact of the customizations on the ability to move to the next release of the COTS? Most COTS projects have enough customization that they need the same level of scrutiny as a custom development project. ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 9. 7KH $XGLW 5HSRUWV A comprehensive audit should result in multiple reports. There is usually a high-level finding report for top management to answer the big questions. This report should be written in terms that non-technical professionals can understand. This high-level report should be no more than 2- 5 pages. A detailed audit report should be written for the project manager. It should describe all major system flaws in detail and discuss the architectural strengths and weaknesses of the system design. The executive summary of the detailed report should be no more than 10-15 pages. A complete listing of all observations, flaws, and suggestions might easily require 100 pages or more. The existing team should have access to the audit report and be given a chance to respond to it. Existing team members should have participated in many parts of the audit and senior team members should have been included in evaluative discussions of the system. The existing team may not agree with the findings of the audit but, by the time the report is released, there should be no surprises. The existing team should be provided with an opportunity to write a response to the report to be included with the final audit report. $FWLQJ RQ WKH $XGLW The most difficult part of the whole audit process is determining how to take corrective actions. These actions may potentially result in discarding large portions of the existing system. If an audit brings significant architectural weaknesses to light, the findings of the audit must be validated by additional review (probably with a different audit team). Even if the existing team agrees with the findings of the audit, major shifts in the direction of a large project should not be undertaken lightly. It might even be prudent to bring in another outsider to review the audit report to determine whether or not its findings are legitimate. If the project being audited costs hundreds of millions of dollars, some extra prudence is appropriate. Once the audit report has been accepted, the basic sunk cost argument must be applied. The amount of money already spent on the project is not relevant information. The decision about how to proceed should be based on the lowest estimated cost to complete the project. Technology may have advanced since the project’s inception. Therefore, starting over may be the easiest way to proceed. Sometimes calling something an “upgrade” rather than a “refactoring” or a “rewrite” is much more palatable, especially to management. However, when some or all of an existing system is not capable of meeting user requirements, the system must be modified whether the changes cost $10 or $10 million. ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 10. DVH 6WXGLHV Most Financial Management Information Systems (FMISs) are never audited. An informal poll at the 2007 ICGFM conference indicated that only 30% of systems typically receive a review. Frequently, when an audit team is brought in, it is only after it is clear that the project is failing and the government is looking to better understand the reasons for the failure. Even when an audit (or “review” as it is frequently called) is done, it is rarely completed to the level of depth described in this paper. Some audits are best described as “journalistic.” In these cases, the audit team comes in for a few weeks, interviews all of the stakeholders and then reports on what they said. Even though most audits are not done to the level described in this paper, they usually seem to come to the right conclusions and provide significant value to the project. However, some audits can reach erroneous conclusions. Journalistic audits will usually report what any stakeholder says, which may or may not be true or accurate. Governments may not act upon the conclusions of the audit report, even when these conclusions are correct. Their representatives may not agree with the report, or may be unwilling to accept that a project that has already consumed so many resources is a failure. Audit reports including good news that suggest next steps seem to be more likely to be accepted. Gathering case study information is difficult. In this article, I can only report the names of projects and their reviews when the audit report was favorable. Struggling or failing projects are not usually discussed publicly. Projects facing massive cost overruns that deliver only a small percentage of the user requirements still may be reported as successes in presentations and in publications. No government is anxious to publicize wasting significant resources on a failed project. DVH 6WXG (WKLRSLD Ethiopia has been involved in a 12-year economic budget and finance reform led by a team from Harvard University. As part of the project, a customized budget and finance software system was built. When Harvard’s role on the project concluded, a detailed audit of the software was performed. The only part of the audit process described in this article that was not done was the evaluation of how well user requirements were met. The conclusion of the audit was quite favorable. The system was well built, well documented, and mostly conformed to industry standards. The entire system had been built for less than US $2M (a comparatively very low cost for systems of this type). The network capabilities throughout Ethiopia at the time required that hundreds of installations be deployed throughout the country, since it was initially impossible to support a centralized environment. The long-term goal of the government was to centralize when the infrastructure could support it. The audit concluded that the existing system would probably not support a centralized deployment and needed to be redesigned. The government accepted the audit team’s recommendations and ultimately hired the audit team company to manage the development of the redesign project. Although the audit had been quite ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 11. thorough, when the team took over, they were surprised by how little they had learned about the system during the audit process. A few areas of the system were far less well designed than originally believed which demonstrates that even a substantial audit may not uncover all the problems with a systems development project. DVH 6WXG 7DQ]DQLD For their FMIS, the Tanzanian government has deployed the finance and accounting functions (General Ledger, Cash Management, Accounts Payable, and Accounts Receivable) of the EPICOR Enterprise Resource Planning (ERP) application. The system was implemented by a local vendor with funding from various donors. The FMIS has been implemented in all ministries, departments, and agencies, as well as 21 sub-treasuries located in various regions of the country. A scaled-down version of the system has also been implemented by two-thirds of Tanzania’s local government authorities. A major audit is planned for the future so a preliminary review was conducted by a single external consultant. Various aspects of the program were reviewed including: • Business processes, both automated (EPICOR and non-EPICOR) and manual • Software modules and functionality • Peripheral applications supporting the FMIS • Hardware and infrastructure • User and technical support capabilities • Knowledge transfer and training • Vendor relations (including contracting) • Disaster recovery and security procedures The audit did not conclude that the project was a failure but did suggest that the system requires some significant work before it can be declared a success. Some of the key recommendations included: 1. Resolving contractual agreements with vendor 2. Acquiring additional EPICOR expertise 3. Resolving long standing technical problems with FMIS application 4. Improving reporting functionality 5. implementing a disaster recovery plan 6. Expanding user and technical support training 7. Revising the budget planning process Although the Tanzanian government did recognize that the FMIS had not yet achieved all of its objectives, the government disagreed with many of the consultant’s findings. Donors were convinced by the consultant’s findings and recommendations and continue to request that the government act on these recommendations. ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 12. DVH 6WXG $QRQPRXV *RYHUQPHQW )0,6 The government has implemented a number of public expenditure reforms which are expected to lead to improvements in fiscal management and service delivery. An FMIS for the central government and several local governments had been implemented. Many believed that the system has been successful thus far and performs reliably and consistently. Despite this, many questions have been raised by some donor staff, especially within financial management sector with regard to system’s lack of performance and/or its unsuitability within the present environment. The donor initiated a review to document the system’s present performance as well as suggestions for its future functional and practical improvements. Three team members spent two weeks in country reviewing the system. The goals of the audit were as follows: 1. Review the FMIS 2. Review the system reporting functionality 3. Observe how the system is utilized 4. Evaluate the technical infrastructure The major focus of the audit was to assess the status of the deliverables and milestones. It was concluded that the system is a total success. The main recommendation was to continue on the current path to deploy to the rest of the country. Later a second audit was done as there were continuing questions about the quality of the system. Two auditors spent two weeks reviewing the system. The second audit was far less complimentary citing significant cost overruns and functional deficiencies. DVH 6WXG $QRQPRXV *RYHUQPHQW )0,6 In spite of spending millions of dollars and nearly 10 years trying to get an FMIS operational, the project in question did not seem to be making material progress. Some modules were completed and pilot tested, but the lack of networking infrastructure prevented the FMIS from being deployed. Two auditors were brought in for three weeks to evaluate the system. The audit report was understandably critical. The report cited poor management, and an inadequate infrastructure to support the project. Some module development made little progress due to lack of government involvement. It seems that there were two critical factors preventing project success: 1. Many commercial FMISs require significant bandwidth. They assume network capability common in North America and Europe but less common in developing nations. This was a known issue and should have been recognized prior to spending millions of dollars on software development. ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW
  • 13. 2. The project never seemed to be well supported by government. There were inadequate resources devoted to the project and a lack of leadership was evident. RQFOXVLRQV Stopping from time to time, stepping back and asking “Is this system ever going to work?” is the key to not being surprised by a massive system failure. There are a few important points to keep in mind: 1. Audits need to be performed by outside resources. Keeping them truly independent is a critical success factor. 2. Audits will not take the place of good design and should only comprise a part of the overall quality assurance strategy of the project. 3. Audits are large, substantive efforts. A superficial audit may be worse than no audit at all since it may provide a false sense of security. 4. Both COTS and custom developed systems require audits. Audits are not a substitute for good architecture and project management. The best defense against project failure is to build a good system that does not fail in the first place using proven architecture, good project management and a capable team. However, the failure rate of projects continues to be alarming. Audits, though unpopular, expensive and intrusive, are the last defense against massive project failure. ,QWHUQDWLRQDO -RXUQDO RQ *RYHUQPHQWDO )LQDQFLDO 0DQDJHPHQW