Dec 19, 2008

On Managing Complexity...

By Ian Whittingham, PMP in Gantthead

They are emblematic of the challenges of creating massive computational power, of visionary ambition thwarted by technological insufficiency. Debates over why they were never constructed and assembled during their designer’s lifetime break between the limits of manufacturing competency and the novel intricacy of their technical design. But in the end, it was a lack of sponsorship and the withdrawal of government funding that relegated an innovative turning point in the history of computing to a tantalizing “What if…?

Today, however, if you are anywhere in the vicinity of Mountain View, California, you have a unique opportunity to see for yourself what might have been. For over 100 years, the Difference Engine and the Analytical Engine--those legendary computational machines of mathematician and mechanical engineer Charles Babbage--existed as nothing more than blueprints and engineering drawings.

A combination of political, financial, engineering and legal issues are generally held to have been responsible for preventing Babbage--apparently a difficult man to work with--from constructing those steam age ancestors of today’s silicon chip computers. But through the sponsorship of another computer visionary (Nathan Myhrvold), a working version of Babbage’s Difference Engine No. 2 has now been fully realized and is on exhibit to the public at the Computer History Museum until May, 2009.

Many moving parts

Watching the highly synchronized movements of the many moving parts in Engine No. 2 is a mesmerizing experience, its 8,000 components the very image of mechanical order triumphing over mathematical complexity. In the world of computing, managing complexity at the machine level is something we all take for granted. But in the world of project management, it is something we are confronted with in a variety of hidden guises.

“Many moving parts” is an apt description of what complexity feels like for many project managers. Although it is difficult to pin down exactly what it is, we know it when we see it. We often experience it in the sometimes-chaotic juggling of requirements, resources and timelines that a particular project seems to create in its wake. Complexity manifests itself in many different ways, and there is a growing body of literature and research devoted to the understanding and modeling of how complexity impacts projects.

For the most part, complexity in projects--certainly where IT is concerned--tends to be synonymous with technological complexity. Even the historical example of Babbage’s difference engines appears to confirm that assumption. For many years, the failure of Babbage to actually build one of his engines was attributed to the limitations of Victorian technology.

The blueprints for the engines’ components called for a degree of manufacturing precision that was not possible to achieve with contemporary mechanical processes. Thus, excepting some partial mechanisms, none of the engines was ever fully manufactured and assembled. However, it was not simply the complexity of the engines’ technological requirements that sank Babbage’s grand project. Other factors were at work, too.

But before we look at those, how do we recognize that complexity, in general, might be present in a project we are working on? How does complexity manifest itself in a project that has many moving parts? While there is no single complexity indicator, complexity creates effects that ripple through a project in perceptible ways, of which the most common is ambiguity.

In general, ambiguity usually signals that there is some element of complexity present in a project. If you look at project planning and control techniques, one way of describing their purpose is the purging of ambiguity from the project and replacing it with clarity and certainty. (In fact, one way of viewing the process of progressive elaboration--of “developing in steps and continuing by increments”, emphasized in the Guide to the Project Management Body of Knowledge--is as a general purpose technique for driving out ambiguity from projects.)

Ambiguity is present when requirements are being interpreted in multiple ways or appear fuzzy and fluid in their definition. Or the sequence and order of project tasks keeps changing or appears disjointed. Or the objectives of the project itself are unclear or, even worse, unknown. Or at the participant level, when you find yourself in a project meeting and you have no idea what anyone is talking about or why you are there.

Ambiguity, incomprehension, opacity…these are some of the effects of complexity. (They can also arise in badly managed projects where the root cause is often discovered to be some element of complexity.) So, if these are representative of what the effects of complexity feel like, where do we locate the source of complexity that gives rise to these effects?

Accounting for the moving parts

Evaluating projects for sensitivity to complexity is not generally performed, either during project initiation or at post mortem reviews. There is no PMBOK knowledge domain that is devoted to complexity. The argument for supporting the view that no such special treatment is required is that complexity can be effectively analyzed and managed through the standard project knowledge domains: scope, time, cost, quality, risk, etc. Integrate these elements effectively, and you can manage any complexity that the project may create (so runs the logic of this argument).

However, I know that when assigned to a new project, many project managers like to ask the reasonable question: “Just how complex is the delivery of this project?” Intuitively, we know that complexity is the biggest constraint on project execution, and our instinct to account for it cannot always be satisfied by the standard project measures of time, scope and cost.

Failure to manage complexity implies a level of risk to completing a project successfully. Thus, how complexity impacts a project is usually represented in terms of ability to influence and control the impact in the same way that risk management assessments weigh the probability of the risk event occurring and the severity of its impact should it occur. A similar weighting approach can be applied to evaluating complexity.

The objective of such an assessment is to identify where a project may be most sensitive to the effects of complexity--that is, what aspects of project execution are likely to be most challenging to achieving the project’s desired results? The criteria that are applied in the evaluation, and how each criterion is weighted for sensitivity, should be determined by the needs of the performing organization, as appropriate to its own project management methodology. The table below provides some sample criteria that might be used to perform a typical complexity sensitivity assessment.


Table 1: Complexity Sensitivity Assessment

COMPLEXITY CRITERIA

Example of low IMPACT

L

2

3

4

H

Example of high IMPACT

Technology Assets and Standards

Technical work required to achieve results reuses pre-existing capabilities and core technologies. Strong adherence to standards and policies. Process and methodology are well understood.

X

Work required is technically difficult and is new to the company. Technology is immature. New or multiple interdependent capabilities will need to be developed and deployed. Tactical workarounds may be required to bridge gaps while strategic solution is developed.

Organizational Complexity

Work can be achieved with a small group of geographically co-located staff, reporting to the same management group and adopting common working practices.

X

Many different parts of the organization will need to be engaged. Delivery depends on integrating many geographically and functionally dispersed groups. There may be conflicting priorities. Working (cultural) practices may be very different between groups.

Organizational Stability

There are existing groups in place who are responsible for delivering the components of the project solution. They can commit experienced and knowledgeable resource at the right time.

X

The delivery groups are in transition (onshore vs. offshore). Accountability and control may be an issue during the life of the project. Shortage of experienced or knowledgeable resource may constrain deliverables.

3rd Party Involvement

This is an internal project, wholly under the control of internal and directly contracted resources.

X

A number of external parties are involved in delivery, either through partnership, recent acquisition or purchase of technology or services. An acquisition is anticipated during the life of the project.

Managing Expectations

There is some degree of flexibility in meeting the end date of the project. Trade-offs between functionality, quality and cost can be made without compromising the expected project deliverables.

X

There is an immovable, hard end date that must be met. The date is unrealistic. Quality, functionality or performance will be significantly compromised to meet the target end date.

Project Duration

This is a 6-month project and therefore would expect little impact from major, external change factors.

X

This project is expected to last more than 2 years and is therefore likely to be subject to major external change impacts that are not known and cannot be accounted for at the start of the project.

Sponsorship and Priority

Clearly sponsored by a single group or individual who has the ability to supply funds and resources and maintain priority. Project has a recognized and acknowledged priority within the company.

X

Sponsorship is ambiguous with several interested parties, none of whom have this as their top priority. Project has no company mandate or priority and is subject to discretionary funding, ad hoc resourcing and arbitrary decision making.

Dependencies

The project has no external, in-bound dependencies.

X

The project is dependent on multiple external projects run by different groups whose goals and priorities are not aligned with this project’s objectives.

Another way of looking at each of the complexity criteria selected is as a barrier to achieving the project’s goals. A low barrier may be negotiated without significantly impacting project performance. A high barrier represents a potential roadblock that needs to be removed, through adjustment to the project schedule, resourcing, funding, organizational structure or whatever combination is required to manage the sensitivity of the criterion’s impact on project execution. But the most important part of this kind of analysis is to ensure that all factors that may introduce complexity into the project are included in the scope of the evaluation.

Construction of the Difference Engine No. 2 in 1991 by London’s Science Museum, using techniques available to Victorian engineers, proved that it could, in fact, have been constructed at the time when it was conceived by Babbage. It was not simply technological complexity that had defeated him, but rather a combination of other complexities related to sponsorship, funding and support by the British government of the day

With rigorous exactitude, Babbage accounted for the many moving parts that his calculating machines required in order to operate and function correctly. Unfortunately, in his visionary zeal he neglected to account for the complexity of those other moving parts on which so many projects depend for their delivery and success.

Dec 18, 2008

Post Implementation Audit...

[Source: Blogpost by Eric Kimberling]

It's easy to forget that successful ERP implementations don't end at go-live. If anything, it's after the system is implemented that makes or breaks the success of the system.
However, most companies fail to conduct a post-implementation audit to see how their ERP systems are fitting in with the business. Inevitably, there are going to be ongoing changes and adjustments to optimize the way the system is operating and to improve the way it supports your business.

Therefore, conducting a post-go-live audit is very important. In particular, these audits should focus on three key areas:

1. Baseline and post-go-live performance measures
Every ERP project should have a solid business case well before the system is selected or implemented. However, the only way to understand the level of ERP business benefits is to measure performance before and after go-live. It is important to establish baseline performance levels, then compare those to the performance levels after go-live. This will help identify areas of under-performance and opportunities for ongoing improvement.


2. Identify ongoing training opportunities
No matter how well you've prepared and trained your employees, there will be a decrease in productivity immediately after go-live. They key is to minimize this drop and help them to eventually be more productive than they were before ERP. Post-implementation audits should explore areas where employees are under-trained or could benefit from ongoing training. This will help optimize the business benefits of your ERP system in the longer-term.


3. Identify opportunities to improve business processes
Just because you have implemented ERP doesn't mean that your business processes are going to be perfect. There are always going to be process inefficiencies and breakdowns that can be improved. By working with employees to identify process pain points and following this up with root cause analysis for these pains, you will identify opportunities to improve your processes and make them more efficient and effective.

The above three steps are important steps to ERP benefits realization and part of an ongoing organizational change management program. The focus is to leverage the investment you have made in ERP technology to realize a strong return on investment.

Dec 12, 2008

Software Practices for Performance Based Management


[Source - SPMN,

http://www.spmn.com/16CSP.html]



Dec 5, 2008

Data migration Strategy (Contd.)

Continuing from the earlier post on Data Migration, here is the concluding piece on various Data Migration Strategies (by Soumendra Mohanty inDM Review Special Report, May 2004):


In Part 1, we discussed what could be the phases in a typical data migration project. The same questions will keep on coming back to the project managers again and again-

  1. How am I going to determine the performance criteria?
  2. What are the risks and how am I going to manage those?
  3. Do I have a failure mode effect analysis document which captures the failure modes and does a cause and effect analysis?

There are many other questions that arise. Let us look at the different strategies and checkpoints which are an integral part of a data migration project.


While implementing data migration architecture, the data migration team has to take a number of considerations. Following are a few of such considerations:

  • Data volume analysis
  • Source system and target system processing power
  • Complexity of data mapping rules and business rules


Point-to-Point Data Migration Architecture

If during transformation, several records are normalized into separate database records that will result in a significant increase in the overall data volume, extract data from the source system(s) as is and move it to a staging area in the target system, then apply cleansing and transformations locally.

Highlights:

  • Reduced network round trip
  • Local transformations means the actual data migration process is over, data has actually reached the targeted server.
  • Leverage processing power of target server


Hub-Spoke Data Migration Architecture

Figure 2 shows partitioning source data and preconverting the historic data in the source environment and supports any number of source and target systems (spokes) while managing the overall ETL processes through a hub.

Highlights:

  • Can accommodate any number of sources and/or targets
  • Data rules are kept at a separate layer
  • Load balanced on target server

1. Making Sense of Data Migration

The biggest challenge with a data migration project is: Making the target system understand what the source system is telling it.

Here are a few key practices and issues with data migration projects.

Comprehensive Mapping. Every data field that is going to be migrated from the source system to the target system must be defined and examined to ensure compliance with field lengths, data types, domain values permitted, system rules, integrity checks and any other possible issues.

A detailed data map is critical to understanding where information is going as well as whether there are any known or avoidable obstacles in the way of successfully arriving there.

A good data map will detail an in-depth cross-referencing of all mutual fields across the source system and the target system. Ideally it should include:

  • Names of applicable to and from fields
  • Lengths and data types of these fields
  • Any logic involved in mapping such as string truncations or validations against any business rules

Extract Validation. Data in source system is known to contain problems or can be unknowingly incorrect due to many possible factors including human keying-in errors and/or a lack of checks and accountability particularly in less sophisticated systems. Any validation rules that can be utilized to locate and fix these problems should be performed on the first-pass data extract extending the process to multiple iterations if required.

It is common that some errors will not surface until others have been identified and fixed. Whereas the source system may ignore the discrepancies with, for example, items like same persons billing address recorded different in different files or database tables, the target system, potentially having better business rules, may opt for a Type I or Type II slowly changing dimension implementation for the same address change. Data validation and clean up is an essential and key component of a good migration plan.

Quality Transformation. Data extracted from the source system needs to be transformed or translated into a format that the target system can import and understand. This transformation will not only the defined data mappings, but will also execute any underlying business logic functions that may be essential to populating more complex data structures.

Fortunately, these stages can be efficiently performed by technically advanced ETL tools such as Informatica, Ab Initio, DataStage, etc.

So far we have discussed the technical aspect of data migration. However, as with many IT projects, the what, where and when is just as important as the how. When dealing with the management aspect of a data migration project, following issues should be considered.

2. Phased or Big Bang Approach?

When choosing to migrate data from one system to another, does it make sense to try to accomplish this all at once or move data over through a controlled phase of multiple releases?

Naturally there will be pros and cons to both options, considering which approach will best fit your organization needs to be evaluated on a variety of factors.

Some examples of these factors can be as straightforward as how much data there is to migrate or as seemingly abstract as the amount of training effort it will take to make a "big bang" worthwhile to your organization in terms of the ROI.

3. Stakeholder Expectation

How long will the migration take place? How many internal resources must the client IS team commit to the migration and for what period of time? What is the impact on the other business-critical processes? What is the cost?

The answers to these questions should all be addressed before a single object is extracted or a single transformation is designed. A data migration project cannot succeed if it is poorly scoped therefore project schedules, estimated level of effort, costs and resource requirements should be all provided and adhered to.

4. Rollback

When importing data into a target system, what happens if the data migration fails? Are we prepared to either utilize existing transaction rollback functionality or do we have capacity to design and build our own if none exists? How do we manage the client expectation in such cases? Do we have a mitigation plan in place? Have we discussed these with the client IS team and business users?

Answers to these questions gives us an additional layer of security and contributes a lot in terms of executing the project in time, within the budget as well as managing customer expectation all along.

5. Scalability

Naturally, when one starts to talk about data migrations with information owing back and forth, and how this will improve business, the issue of scalability is bound to surface.

As a manager, just as you should ensure that you have the infrastructure in place to support foreseeable growth, you should also ensure that your data migration can be leveraged for this growth as well.

6. Replication

The issue being: what happens in case of disaster or irrecoverable system failure? Commonly this issue will rear its head during a data migration project - typically born from the pressure placed on the manager to get a migration right so that 100 percent production is never at a stake.

Migrating data to a backup system at the same time as a new target system should be seriously considered to add one more layer of security and ensure that the disaster recovery plan is in place.

Data migration is an important aspect of most software development efforts yet that importance is often overlooked or inadvisably minimized. It is the rare software development effort indeed where the eventual measure of success is not in some way dependent upon the accurate migration of data. The reason for this is quite simple - opting for a new system is a business decision having its own priority. However, migrating historical data to make the new system work may not be a top priority factor, rather making the new system work and sustain the business critical processes are the top most factors.

The success of the data migration project lies in a seamless data movement and always remains on the shadow of implementing the new system.

Following are few common risks that will summarize the data migration project discussion we had so far.

Failure to treat data migration as a project unto itself. Data migration is complex undertaking that should not be regarded as merely a peripheral effort to the main development project. The data migration effort should be treated as a complete sub-project with a defined process, a thoughtfully derived time and cost estimate, and a series of phases that can be tracked or managed.

Underestimating the time and cost of data migration. It is important to perform a reasonably diligent survey of source systems in order to determine the quality of those source system's documentation and source data. If the source system does not have up-to-date data documentation in the form of data model and data dictionary, the task of determining the structure and data types of the desired source data and it's mapping to the target data will be increased in time and cost. If the source system has less stringent data quality requirements than the target system or if the data quality of the source system has been allowed to lapse over time, the actual act of performing the migration will take longer time due to the need to perform post-migration data clean up.

Lack of end-state data quality. If the migration effort does not formally specify the level of end-state data quality and the set of quality control tests that will be used to verify that data quality, the target domain may wind up with poor data quality. This will negatively impact the perceived outcome of the development effort.

Failure to support the organizational support. When the complexity and importance of data migration is not adequately appreciated it may be difficult to gain organizational support for that data migration, especially in terms of funding and resources. It may be even more difficult to garner a positive level support in separate organizations that have primary responsibility for the source data. This can happen when the organization supporting the source data feels threatened by the new system or it can happen simply because the migration effort is not a top priority for that organization.

Lack of appreciation for the complexities of data mapping. The central effort of data migration is understanding the source data and developing the mapping that allows the data in the source domain to be accurately transformed and moved to the target domain. There are many factors affecting mapping that can be ignored:

  • Ensuring that the semantics sense of a given attribute is correctly mapped: the same datum may carry a different name in the source domain than in the target domain; the source domain and the target domain may carry the same name for what is conceptually a different datum.
  • Understanding that the number of entities and their respective relationships may be vastly different between the source domain and the target domain.
  • Strategies and extensions may have to be developed to handle certain intractable mappings if they are discovered. An attribute may exit in the source domain that does not exist in the target domain and vice versa.

These issues and subsequent impacts may manifest themselves in both quantitative and qualitative ways:

In quantitative sense this can result in:

  • Costs associated with error detection
  • Costs associated with error rework
  • Costs associated with error prevention
  • Time delays in operations
  • Costs associated with delays in processing

In a qualitative sense this can result in:

  • Difficult and/or erroneous decisions
  • Organization wide data inconsistency
  • Low acceptance level by users of the new system

The most important factors in mitigating the risks of data migration are to treat the data migration as a project and to use a sound methodical process having the following KPIs:

Data Profiling - Gain a complete understanding of the content, structure, quality, and integrity of the data of the source system.

Data Mapping - Develop an accurate set of data mapping specifications from the source system to the target system.

Migration Approach and Architectural Considerations - Whether point-to-point migration or hub-and-spoke migration, this needs to be evaluated and carefully articulated.

Development - Selecting an ETL tool to automate the migration process and make it more scalable should be a high-priority item.

Quality Assurance - Conduct mock migrations, pilot migrations before the final migration run; this will ensure that the migration process is robust and trusted.

Blog Archive