Why haven’t the traditional top ten areas of emphasis over the last 25 years resolved the problems
with project success rates?

The depiction below is a compilation of the Chaos study recommendations published over the years.

In 1994, as the first Chaos study was being published, I had 20 years of experience in project
management. I was certified in the Department of Defense (DoD) at the highest level and managed
projects in the billions of dollars. I could not argue that all of the recommendations above were
anything but appropriate at that time. I also could not see how the recommendations could resolve
what I saw was evolving particularly in larger projects. IM was phasing in at the time and accelerated in
the early 2000s when the dot com bubble occurred due to the significant turn away from details and
documentation toward a move fast, try something, break things fast and refactor, and other traits that
pushed the level of engineering to the side for many companies. Once the engineering skills were lost,
then the management layer also failed to understand the level of detail necessary for a system to
succeed and the tendency for IM to be prevalent became closer to rampant.

I still can’t argue against most recent recommendations. A team can implement every one of these
recommendations and still fail dramatically. These recommendations seem targeted at making a lot of
people feel more comfortable while they are failing. None of them are bad and most of them will help
in one way or another, but the product may still be very challenged to meet expectations unless the IM
problem is resolved. Since 2005, I have implemented a personal set of practices to counter the impacts
of IM. I have done this on my own teams and on other vendors’ teams as well. Where the practices
were resisted by other vendors, the projects were still colossal failures. Where the practices were
embraced, the products were successfully deployed and most are still in operation today.

What were the practices to counter IM?

The practices to help counter the effects of IM are focused on clarification and reduction of ambiguity in
any project. Complexity of projects will require greater diligence in using the practices with multiple
teams.

The practices include:

 Keep small teams collocated and increments of progress small.

 Coordinate business agreement with requirements, acceptance criteria and designs prior to
coding.

 Verify code implementation incrementally for business usability to achieve objectives.

When complexity and size become part of the equation, a couple of other practices are essential:

 Leads for teams concurrently develop modular design.

 Use Foundation First principles to ensure each module is in harmony with others for: data
owned and used, communication of state and action, consistent usability, and security.

Review again the top ten recommendations in the section above. Some of these practices might be
considered part of these ten recommendations; however, without being explicit, it is possible to put all
of the recommendations in place without incorporating any of these practices. Management will need
to learn that doing things that tend to make them feel good without seeing the product incrementally
satisfy the business need is just placating behavior. The practices are explained below with greater
detail to enhance use of the practices and to recommend moving away from management placating
behavior to practices that will remove ambiguity and tame complexity focused on delivering business
results.

What are the detailed explanations for the practices to defeat IM?

While detailed explanations follow, it is important to treat these explanations like project requirements
and take them through the same practices to ensure the all users are clear on what is required. We
have to stop acting like communication is perfect and everyone understands what I am communicating,
even when I don’t get to details.

1. Keep small teams collocated and increments of progress small: It is wise to keep teams
collocated. If all disciplines are not possible to collocate, then developers are most important.
The developers should also be full time. Less than full time is highly disruptive to quality of
implementation. You can have multiple small teams, but then ensure that practices 4 and 5 are
incorporated. Increments of progress should also be small. Small is relative. Agile would use a
two-week time box of effort. Shorter would not be appropriate. Longer might be necessary
with a lower competency team that is learning, but I would not recommend anything greater
than four weeks. It is too difficult to perform the other practices at the level of detailed
coordination and level of understanding required to ensure success.

2. Coordinate business agreement with requirements, acceptance criteria and designs prior to
coding: Activity is required to ensure that business requirements indicate what a user needs to
do within the system being implemented to achieve their work objectives. Always clarify each
requirement with acceptance criteria. If you are going to be true to the practice #1, the
requirements also have to be broken down to a level where they could be completed within the
small increment of progress. Then, design documentation for the increment has to be available.
The documentation, at first, can be draft versions that the business agrees could fulfill the
requirement and the team understands sufficiently to implement. Inevitably some of the design
will need to change, but without initial drafts, the likelihood of successful implementation is low.
Every resource would just implement what they believed to be right; however, without
coordination all resources could be implementing in a different way. The design is just enough
to prevent that opportunity to diverge. A more complete design can be done for the as built
capability when complete.

3. Verify code implementation incrementally for business usability to achieve objectives:
Acceptance test needs to occur with each increment at the level for which the acceptance
criteria were defined. It is OK to identify new requirements or criteria for future increments.
Acceptance can be conditional on the aggregation of capability to fulfill the business needs so
that the system would have to eventually be a complete and operational system. Without
incremental acceptance you cannot verify that you are on the correct path and satisfying what
the business needs in pieces. You also cannot give the business the opportunity to continue to
evolve their needs with the implemented system, which is often critical to get to an acceptable
final system. Technical resources should also test and verify that algorithms and business rules
are appropriately applied in these same small increments so that corrections can take place
early and often.

4. Leads for teams concurrently develop modular design: When a system exceeds one small team,
it is best to organize with multiple small teams focused on separate sections or modules for an
application or system. The teams coordinate their internal work and the leads of the teams
meet to ensure the boundaries for sections they own are clear for all other pieces under
development. At the point of integration testing across teams, include the business as well to
ensure the totality of business expectation is clarified for the way the solution works overall.

5. Use Foundation First principles to ensure each module is in harmony with others for: data
owned and used, communication of state and action, consistent usability, and security:
Multiple teams that do not communicate have proven to be a disaster. They key to
communication though is not a set of random meetings where IM takes place. Each team needs
to have boundaries established to prevent the problems that generally occur. Systems often
duplicate data. Only clear definition of which system or module owns responsibility for which
data can avoid this problem. Systems often fail to interoperate. Only clarity surrounding the
means used to coordinate the state of items shared and the sequence of activity where
meaningful can help to control this situation. Usability is in the eye of the users and consistency
requires feedback across teams to help implement business desires. The Americans with
Disabilities Act (ADA) standards need to be applied from the very first screen built so as not to
build a change nightmare for later. Standards can help the most with security; and, sharing
techniques applied in code will maintain consistency throughout an application.

Conclusion:

Improvement focus at a management or project management level is always a good thing to engage in.
Believing that this will improve the level to which technology projects are delivered is significantly
misleading if control is not placed at the communication level of implementation between the business
and implementation team. While the top ten recommendations may make an organization feel better
as they attempt project implementations, the right practices to reduce the most significant problem of
communication are much more essential to success. Informed Misperception is a significant culprit in
technology implementation projects for many reasons. These reasons must be overcome with the right
implementation practices.