Friday, October 5, 2012

TCPI (To Complete Performance Index) in Brief


In my PMP Workshops many times project managers share the challenges they have in completely understanding the term TCPI (To complete Performance Index). Often most of the project managers find the concept complex and difficult to apply in a real time scenario. In this article I have attempted to make it simple. Before going into details first let's understand what TCPI is and how it is related to CPI (Cost Performance Index)

What is TCPI?

To-Complete Performance Index (TCPI) is the estimate of cost performance required for the project to meet the project’s budget goal. In simple words TCPI is the Cost efficiency at which you need to run the project in order to be within the budget.

 The two important points to be interpreted from this definition are;

 • If the CPI of your project is equal to or more than one, which means your project is moving within the budge. In this situation you can complete the project within approved budget; i.e. BAC.

 • If the CPI of your project is less than one, which means your project is overshooting the budget. In this situation if the BAC seems unachievable the project manager should negotiate a new budget with the senior management .The new budget will be EAC and now your objective should be to try to complete the project within this new approved budget.

How would you derive the formula for computing TCPI?

 Based on the above two points the formula for To-Complete Performance Index (TCPI) will be;

 TCPI = (Work Remaining)/(Budget Remaining)

 If you’re under budget

 • TCPI = (BAC–EV)/(BAC–AC)

If you’re over Budget

 • TCPI = (BAC–EV)/(EAC–AC)

 
Conclusions


 • If To-Complete Performance Index (TCPI) is less than one, then your project is in good shape.

 • If To-Complete Performance Index (TCPI) is greater than one, then you’ve to perform with better cost performance efficiency than the efficiency at which the work that has been completed.

• And finally if TCPI is equal to one then it’s OK even if you continue to work with same cost performance efficiency.
 
Example:

You have a project to be completed in 12 months and your BAC is $100,000. Three months have been passed and $40,000 is spent but while tracking you found that only 25 % of work is completed so far. As a project manager you know that you can’t improve CPI beyond 1.1.

Based on the above situation do you think it is possible to complete the project in the available budget or you have to re-negotiate with for a revised budget?
 
You can discuss it with me at pankajsh10@yahoo.com

Thursday, September 8, 2011

An energetic and enthusiastic project management consultant and trainer with over 15 years of  practical ‘hands-on’ project and program management experience in managing and directing mid and large sized IT program/projects involving distributed teams in Manufacturing, HR and healthcare verticals across US, Europe and UK geography.

Pankaj Holds Master degree in computer engineering from Birla Institute of technology and Science, Pilani (India) and is PMP, Prince2 and ITIL certified. Enriched with long industry experience, coupled with excellent professional track record, Pankaj is extremely passionate about sharing his professional knowledge and experience. He has coached employees from the companies IBM, Accenture, Deloitte, Birlasoft, HCL, TCS and Indian defense forces (Army, Navy and Indian Air force).  Presently he is Chief Technology Officer for Connoisseur Consulting Solutions Pvt Ltd and in the current role he is responsible for IT and business Strategy management.

Friday, February 18, 2011

Managing Enterprise Environmental Factors for the project

Project managers generally focus on factors internal to the project while managing processes during project life cycle. Many times, despite their best efforts the project outcome doesn’t meet the expectations of the stakeholders. If you delve deeper into this problem you will find that it is due to ignoring the factors outside the project that have significant influence on the success of project. These factors are Enterprise Environmental Factors and they present challenges on all the projects bigger or smaller in every industry and have significant influence on the success of project.

In this article I have shared some of the key enterprise environmental factors that a project manager must address, their impact on the project and how he/she should influence them.

Organization Culture
This includes following factors, they can directly impact the motivation level of a team member , attrition rate and the productivity at team and individual level

• What is the level of openness towards new ideas, what is the openness in terms of relationship with superior?
• How strict the company is in enforcing policies and procedures?
• Work Authorization System, Are there Daily and weekly reports and structured status meeting to provide timely updates on project status?
• Working and non working hours.
• Risk tolerance
These factors directly impact the performance at team and individual level. An open culture where team members have clarity on project vision and how it is related to their personal goal has positive impact on project performance. To ensure this the project manager must communicate with the team on regular basis , constantly remind them about the project’s vision, prepare the career development plan of team members and plan structured review of their work.


Human Resource and Personnel Administration
Human resources and Personnel Administration related Enterprise Environmental Factors include

• Skill level of the resources in the project team and in the organization
• Policy for hiring and training
• Culture and Time Zone in case of Project teams distributed across multiple geographies
Awareness on the above factors helps Project manager in designing appropriate strategies and influencing the senior management to bridge the skill gap (through training or acquisition) and scheduling the project taking national holidays of cross cultural team into consideration

Infrastructure

It is important for a project manager to ensure that the required infrastructure for executing the project is in place and its cost is planned in the budget. This includes but is not limited to the following

• Desktop and Server machines to be used by team members
• Servers for inspection, backups and maintaining organizational process assets
• Projectors and conference rooms
• Internet connections and the available bandwidth
• Software licenses

Infrastructure related pre-requisites must be considered right from the planning phase of the project, in fact immediately after collect requirements and define scope phase is complete. Unavailability of adequate infrastructure on time can impact project’s critical path hamper the project’s performance.
It is important for a project manager to create a check list of infrastructural items required based on requirements and scope of the project and ensure their availability.

External Stakeholders

The decision that a project manager takes have impact on people, they can be internal as well as external to the project. Depending on the decision a project manager takes these people can become his strong supporters or blockers for the project. The project manager has to manage their expectations really well in order to succeed.

Some examples of external stake holders are:

• The other teams depending on the project e.g. Other teams that will use the tool developed by the project team,
• someone who is from the senior management but not part of the core project team,
• Customer, Vendor & Partner, Government etc

A stronger relationship with external stakeholders helps in winning their support and impacts the outcome of the project positively.

Marketplace conditions

Marketplace condition refers to business environment e.g. Technology trends, Availability of resources, Competitors strategy, legal implications of the project and government rules or regulatory restrictions that can impact the project. It is important for a project manager to be aware of business conditions that impact the project. Some of the key things that he should be aware of are.

1. Competitor’s strategy, it is critically important for the projects that are for a customer who has deployed multiple vendors for different projects. E.g. Pricing or technology strategy from a particular vendor can motivate the customer towards him and result in loss of project.

2. Technology trends in the market, a project can be done using multiple technologies, however over the period of time the business scenario changes, the new technology comes in and older one becomes obsolete. Awareness on technology trends in the market helps in providing right solution to the customer in terms of fulfilling his business need, reducing total cost of ownership and improving the quality.

3. Availability of human resources with the skills required their prices and sources from where they need to be procured. This helps in managing the time required for planning and acquiring the project team and in mitigating risks related to delay in acquiring the project team.

4. Vendors available for procurement of resources and their pros and cons. Procurement has impact on cost, schedule and quality of the project. Selection of right vendor reduces the efforts required to administer procurement and impacts the above mentioned constraints positively.

5. Legal implications of the project

6. Governmental rules and regulation or regulatory restrictions that could impact the project.


Friday, September 26, 2008

Virtualization benefits for QA

1 Introduction
Increasingly software development companies are focusing towards products that can run on multiple platforms and integrates well with the other applications. Early visibility of working software, Time-to-market and the quality of the product being a key concern has lead to a paradigm shift towards agile development methodologies. This demands availability of QA environment in early stages of SDLC.
The demand of early availability of complex QA environment has posed a major challenge related to the associated appraisal cost (cost of QA).
Virtualization overcomes this challenge by providing a mechanism that allows ability to simulate different environments and experiment with different scenarios, without significant expansion of hardware and physical resources.
This article discusses the benefits of virtualization for QA


2 What is Virtualization?
Virtualization is the creation of a virtual version of something, such as an operating system, a server, a storage device or network resources.
Using virtualization different operating systems and softwares can be configured in a single machine instance. This helps in testing the application against different environments and experiment with different scenarios, without significant expansion of hardware and physical resources. Any defects related to operating system or browser incompatibility can be detected in early stages of SDLC.

3 The Reality
By and large development shops are forced to buy servers for testing purposes. It results in organizations having plethora of servers that are utilized less than 20%. They're only required when the QA team needs to test a new release against a particular. The disadvantages of this approach are:
· Cost of hardware increase
· High server to staff ratio
· Reduced ROI
· As the cost involved is huge the decision to procure the hardware is generally delayed and the team has to wait long for hardware to perform real time testing.
· Difficulty in testing the software under varying hardware configurations E.g. to validate how the system works when memory allocated is increased or decreased.

4 Major Benefits of Virtualization
Development and Test Lab Infrastructure:
· Significant cost benefits can be achieved by Pooling servers, networking, storage & other resources and sharing them across development and test teams.
· It also provides on-demand access to a shared library of complex environment giving the developers and testers instant use of the resource they need.
· The server-to-staff ratio is greatly reduced and also helps in accelerating the development lifecycle.

Portability Testing
· A tester or developer can test the application for multiple platforms with a single machine.
· There is an additional advantage if developers perform the portability testing, the feedback cycle is shortened. If the code does working correctly, the developer knows what has changed since the last working build and can figure out what needs to be changed
· An additional benefit of this approach is that developers can develop for multiple platforms and multiple browsers with no additional purchase of hardware.


Platform Standardization:
· Virtual softwares allow varying of the hardware configuration available for use e.g. the amount of RAM available for use by an application can be increased or decreased to check the application’s performance under varying conditions. This helps in testing an application in a standard platform that has reduced resources and thereby helps in determining the memory requirements for an application to perform optimally.

Defect Snapshots
· Virtualization gives QA engineers an ability that they have historically lacked: capturing the entire state of the machine at the point where a bug manifests. This is possible because the entire VM can be saved at any time in its current state to a single large file. Once saved this way, the VM can be made available to developers who can now see for themselves how the problem manifests. At sites that use defect-tracking software, it is easy to place a URI to the saved VM in the defect report, and thereby greatly improve the quality of the information exchanged between QA and the development teams.

Centralized Configuration Management
· Complete virtual machine environment is saved as a single file; easy to save, move, and copy.
· Standardized virtualized hardware is presented to the application to ensure compatibility to the application to ensure compatibility

5 Virtualization trend in Software Industry
· Virtualization market will grow to $11.7B by 2011!
· More than three-quarters of all companies with 500+ employees today are deploying virtual servers.
· Customer satisfaction is high.
· Survey respondents currently using server virtualization technologies report that they expect 45% of new servers purchased next year will be virtualized.
· More than 50% of all virtual servers are running production level applications, including the most business critical workloads
· Source: IDC


6 Implementation approach
I would suggest the following approach for implementing virtualization in any organization
· Determine the Capabilities Your Organization Needs: Build a requirements matrix and determine the types of testing and usage patterns typically seen in your organization.
· Software for Virtualization: Some of the popular softwares for virtualization are:
o VMware
o Microsoft
o XenEnterprise
o Swsoft Virtuozzo
o Virtual Iron
Depending on the business and technical requirements at organizational level a choice of one of these can be exercised.
· Evaluate Total Cost of Ownership (TCO): Build a Total Cost of Ownership model. Be sure to include software, hardware, implementation, and administration costs.
· Conduct a Trial Project: Conduct a proof-of-concept or trial project using your short-list of solutions.
· Integrate into the QA Process: Once you’ve tested and selected your solution, evaluate your current test practices and update them to reflect the new virtual lab capabilities and invest in training your team before rolling out the solution broadly.

7 Summary
There are many good reasons to adopt virtualization. The cost and testing benefits alone (portability, verification of the correct platform, testing under constrained physical resources, etc.) make virtualization preferred option. On-demand availability and the defect-snapshot capability are additional productivity boost.

Tuesday, March 11, 2008

Cost of quality

Competitive environment and increase in customer’s demands have led quality becoming focus area of the Software companies. Most of the large organizations have already implemented Quality frameworks such as CMMI, ISO and Six Sigma, now it has become focal point of the small and mid-sized organizations. Statistics have shown that the simple presence of these frameworks doesn’t guarantee a good return on investment. The success depends on the effectiveness of the framework implementation i.e. alignment of the framework process with the business needs and how religiously they are followed.

In order to maximize ROI out of any quality framework the organizations must track the cost of quality continuously and maintain their cost of quality at an optimum level. What is this optimum level and how to find it out? Before delving into this, let’s understand what is cost of quality?

Cost of quality of a software product comprises of four components: prevention costs, appraisal costs, internal failure costs, and external failure costs. Each of these is discussed in details below.

Prevention costs are investments made ahead of time in an effort to ensure conformance to requirements. Examples include activities such as orientation of team members, training, quality planning, and the development of project standards and procedures.

Appraisal costs include the money spent on the actual testing activity (Unit,Integration and system testing). Any and all activities associated with searching for errors in the software and associated product materials falls into this category. This includes all testing: by the developers themselves, by an internal test team, and by outsourced software test organization. This also includes all associated hardware, software, labor, and other costs. Once a product is in the coding phases, the goal is to do the most effective appraisal job, so that internal failure work is streamlined and well-managed and prevents skyrocketing external failure costs.

Internal failure costs are the costs of coping with errors discovered during development and testing. These are bugs found before the product is released. As we mentioned previously, the further in the development process the errors are discovered, the more costly they are to fix. So the later the errors are discovered, the higher their associated internal failure costs will be.

External failure costs are the costs of coping with errors discovered after the product is released. These are typically errors found by your customers. Example: processing customer complaints, customer returns, warranty claims, product recalls. These costs can be much higher than internal failure costs, because the stakes are much higher. Errors at this stage can also be costly in terms of your company’s reputation and may lead to lost customers.

Organizations generally are reluctant to invest in Prevention costs because they rarely have a quantifiable way to evaluate what their "failure" costs really are. Studies have shown that the further along in the process that quality is worked into the product or service, the higher the cost of quality. For example, if a system were to be delivered untested to a customer, the cost of quality to that point would be minimal. However, once the system went live and the inevitable bugs appeared, the operational costs to the customer, rework and damage control costs, and the resulting cost to the professional reputation of the delivery organization, would far outweigh any prevention or appraisal costs that might be incurred upfront.





The diagram above illustrates the relationship between the cost of product and the quality of performance.

It highlights three important points.

1. Insufficient investment in quality management results in excessively high costs related to defect correction.

2. There is a point above which additional investment in quality management proves uneconomical.

3. There is a level of service quality at which the total cost of quality is minimized.Finding this optimum level and then operating at, or above, this level should be our goal.In order to operate at this optimum value the organization’s accounting system needs to track all the components of cost of quality.

The conclusion is that we should try to reduce the overall cost of each product or service, by establishing the optimum level of preventive and appraisal cost that minimizes resultant error costs. The net result of quality improvement should be a re-allocation of costs across the cost of quality categories resulting in a reduction in the overall cost of quality.



Monday, March 10, 2008

Why Software projects fail?

We all have heard the following statement before in project management books and literature, at seminars, symposia, and in professional certification classes.
“25 percent of all software projects fail!” or “80 percent of all software projects fail to meet schedule and cost objectives”
It's not uncommon for projects to fail. True project success must be evaluated on all three components scope, time and cost. Even if there is a failure vis-à-vis any of these components, a project could be considered a "failure."
There are many reasons why projects fail; the number of reasons can be infinite. However, if we apply the 80/20 rule the most common reasons for failure are following

Lousy Project Management

  • Inadequately trained and/or inexperienced project manager
  • No formal project management methodologies and best practices aligned to the company's specific needs are used to assist project performance.
    A project plan that is non-existent, out of date, incomplete or poorly constructed and just not enough time and effort spent on project planning.
  • inadequate communication, tracking and reporting; not reviewing progress regularly or diligently enough
  • Ineffective scope ,time and cost management
  • Lack of leadership and/or communication skills
  • Ignoring project Warning Sign or no risk management
  • Poorly defined roles and responsibilities
  • Goals and success criteria of the project not clear to the team
  • Team conflicts resulting into major issues.

Project managers will need to ensure that project cost, scope, and time are optimally balanced to achieve the desired deliverables and the desired time. Effective planning and monitoring are necessary to help develop a strong start for the project. However, project managers must remain aware and anticipate change and perform re-planning which is necessary throughout the project. Project manager should identify the warning signs such as anticipated delay in an activity or resource unavailability for some period that affects the critical path etc at early stages and take measures to mitigate risk.

Failure to set and manage expectations

  • Mismatch in expectations for schedule, budget and deliverables between customer and the project team.

Project managers should collaborate with key stakeholders in defining reasonable project schedules and deadlines to ensure that business conditions and requirements are met and better manage expectation levels.. Additionally, all people involved in the project effort should have periodic joint sessions, to ensure the same communications on project expectations are received by everyone.

Inadequate Requirements management

  • No clear definition of the project's benefits and the deliverables that will produce them.
  • Failure to adequately identify, document and track requirements
  • Scope creep (increase in the scope) during the life cycle of the project not properly managed and integrated with the change control systems.
  • Lack of Change Management Process.

Scope changes can significantly impact the cost, schedule, risks and quality of the entire effort. Project managers should watch out for early and frequent changes to the project scope.

Project managers should collaborate directly with key project stakeholders to define specific detailed project requirements and deliverables. Defining specific project requirements is necessary to maintain alignment of project tasks to desired business outputs, as well as to ensure that projects have clear and specific project objectives established.
A formal and structured change management process is necessary to ensure effects of any changed requirements are properly analyzed, prioritized, and balanced according to the project’s budget, schedule, and scope.
Inadequate budget forecasting due to any of the following reasons.

  • Unrealistic schedule/timelines committed to the customer
  • Poor effort estimation, scheduling and budgeting.

Inappropriate staffing

  • Required resources underestimated and scheduled inaccurately.
  • When managers fail to provide timely, adequate and properly trained resources.

Technology

  • Technical Lead inexperienced in the technology or new to the domain.
  • Technology or Architecture chosen not in alignment with the business needs or project goals.

Software development methodology

  • Absence of a sound development methodology.
  • Software development methodologies exist but are not religiously followed.

Insufficient quality assurance and quality control

  • Absence of testing methodologies.
  • Absence or very less time allocated for verification and validation.



Saturday, June 30, 2007

Agile methodologies

How many times following situations have occured in your projects?
The project had already consumed 30% of the total efforts, as a Project /Program manager,
1. When you have asked your team about the status of the project, the answer was, things are going pretty much fine, team is working very hard, We have finalized high level architecture, we are about 80% done with use cases, 50% with class and sequence diagrams. However, when you have asked customer about the performance of the team, the answer was, he doesn’t see much progress vis-à-vis efforts consumed so far.
2. When you had shown your first deliverable to the client the feedback was, it’s not what I was expecting and the out come was a lot of rework (which varies from rework in requirement analysis to rewriting the code) and lost customer confidence.
Why it happened?
  1. Availability of no real data on the implemented features or the status of development in terms of working software.This makes management of the project difficult as there is no data to manage the project.
  2. Larger time period of development iterations that has created a mismatch between expectations in terms of requirements between project team and the customer.

How Agile methodologies Solves these Problems?

In Agile methodologies primary measure of progress is working software and emphasis is on customer satisfaction through quick deliveries and developing software in short cycles, called iterations which typically last one to four weeks. Each iteration produce completely developed and tested feature which is a small subset of whole.

Agile software development is a style of software development characterized by an emphasis on people, communication, working software, and responding to change. The most popular Agile methodologies in use are Extreme Programming (XP), Scrum, Feature Driven Development (FDD), Lean Software Development, Agile Unified Process (Agile UP or AUP), Crystal, and Dynamic Systems Development Method (DSDM). Details available at http://en.wikipedia.org/wiki/Agile_software_development.

Key Project Management Principles while following Agile methodologies.

Clarity of vision

  1. Reinforce the guiding vision at every opportunity – examine project decisions to see whether they line up with the vision.

Project Planning and Tracking

  1. A project plan with clearly defined deliverables (work packages) for each iterations is a must. These deliverables should be further broken down into activities for the tracking purpose.

  2. Tracking the progress vis-a-vis the plan baseline on regular basis. The frequency(daily or 2-3 times a week) of this will vary depending on the nature of the project.

  3. Immediate root cause analysis if there is a delay in the completion of an individual activity and analysis of its impact on the delivery of the work package and the final product.

Team Work and Collaboration

  1. Continually encourage teamwork and collaboration. Talk to your team members one-on-one as often as possible to keep a pulse on the heartbeat of the project. Watch for signs of stress – rising tempers, fatigue, etc, and deal with them quickly. Keep abreast of technology so that you can interpret the “tribal language” of your software developers.

  2. Establish simple rules, but take every opportunity to conduct process reflections: regularly examine what works and what needs improvement. Act with courage to make changes when you feel they are necessary.

  3. Work relentlessly to break down the barriers to information sharing. Keep apprised of cultural sensitivities, egos, and other such factors that may impinge upon its success. Operate with a light touch. Intervene quickly, but wisely to solve personnel issues. Motivate and reward initiative, but manage expectations. Recognize and encourage self-organization, but disallow cliques.