Left shifting

The following entry is a part of the Pattern Library. The Pattern Library records the common patterns of events that have the potential to lead to project failure

Name : Left shifting
Scope : Event pattern (sets pattern of events for complete project)

In brief :
Key strategic, architectural and organizational decisions are ignored in favour of diving into the hard core development activities.

Description :
Some project decisions are more significant than others.  A decision’s relative significance can be thought of in terms of its ‘sphere of influence’ (i.e how many other project decisions will be influenced by or based upon that decision).

The sphere of influence a decision has can be plotted as a horizontal line.  On the left side are those decisions affecting only one small part of the system (such as the wording to be used for a specific error message), on the right are the decisions affecting the complete project (such as the project’s goals).  All decisions made in a project fall somewhere along that line.

The decisions at either end of the line have different characteristics.  Right side decisions are typically the “big picture” decisions such as business goals, critical success factors and architectural decisions.  Left side decisions are very detailed and usually focus on the system’s physical implementation.

Left shifting occurs when the team downplays the strategic right side decisions in favour of focusing on the detailed, implementation oriented, left side decisions.  The failure to address right side decisions results in flawed implementations that singificant reduce the value the system brings.

Typical sequence of events :

  1. A project is initiated
  2. Key strategic, business, organizational and architectural decisions are skipped or downplayed
  3. Team rapidly moves into the development of individual functions
  4. Illusion of progress is created as functions are developed
  5. Affect of missing right side decisions shows through in later stages of the project (failure to meet performance goals, solution poorly aligned with business needs, etc)
  6. Team takes on significant levels of rework to try to address the problems
  7. Major delays and budget overruns incurred as effect of rework takes hold.

Negative effects :

  1. Failure to align the project with the business goals
  2. Failure to establish non-functional requirements (quality attributes)
  3. Poor architectures which result in
    1. More code being developed than was really needed
    2. Poor system performance
    3. Slow development of functions built in the later stages of the project
    4. Significant future maintenance costs
  4. Reduced productivity due to a failure to organize effectively

Common Root Causes :

  1. Lack of effective leadership
  2. The perception that cutting code is the only measure of progress
  3. Gravitation (hard core technical focus draws team into what they perceive as the concrete work of developing code)
  4. Schedule pressure

Suggested Actions :

  1. Establish effective leadership that has the experience to understand the dangers of left shifting
  2. Establish clear ownership of right side strategic decisions and elevate the formality of making them
  3. Fight for time to conduct an initiation phase in which right side strategic decisions are clearly address
  4. Conduct stakeholder workshops at the start of the project to ensure key right side decisions are openly discussed