Showing posts with label project management. Show all posts
Showing posts with label project management. Show all posts

Tuesday, July 23, 2013

Recovering Failed Projects

What does a project failure mean? For the project manager, a definition can be not meeting the triple constraint criteria: scope, cost and time. On the other hand for the customer is more important the business value delivered by the project. Therefore the business value along with the triple constraint are defining the project success or failure criteria.  
There are several reasons for a project failure. Most of them are related to the:
  • Requirements: missing, incorrect or ambiguous requirements, lack of stakeholder involvement in the requirement definition.
  • Enterprise environmental factors: Improper processes to which the project must comply, lack of support from the top management, etc.
  • Resources: not enough or lack of ressources, high turnover rate, not the right resources.
  • Project Management: unrealistic estimates, tight schedules, scope creep, communication issues, lack of stakeholder management, lack of the risk management, wrong assumptions, wrong type of contract.
  • Technology: Not the right technology, usage of immature technologies
There are 4 steps for fixing a project: 
  1. Understand the project. 
  2. Audit the project 
  3. Find trade-offs and prepare a recovery plan. 
  4. Align trade-offs with the stakeholders.
  5. Fix the root causes of the issues which caused the project failure. 
  6. Deliver according with the recovery plan.
1. Understand the project

       The first step in recovering a project is to understand the project. Thus you have to:
  • Check the project history
  • Determine the project objectives.
    Determine the business needs.
  • Determine the assumptions and constraints
  • Make a stakeholder analysis (Who are the stakeholders? What interests do they have in the project? How is their influence in the project?).
  • Understand the company processes and their impact on the project. 
2. Audit the project 

In this step you have to find an answer to the following questions: 
  • Where is the project staying from the point of view of schedules and costs? How big are the variances? An answer can be given using the earned value calculation (assuming you apply a classical project management) or a release burndown chart in the case you are using an agile methodology as Scrum.
  • Is the current scope still valid?   
  • What is the priority of each feature which needs to be delivered? You should be able to set priorities at least at the following levels: high priority (must have), medium priority (nice to have), low priority and not needed.
  • How the key stakeholders (customers, users, top management, development team) are seeing the project? Are they happy with the project? If not, what is the reason? Furthermore, are there powerfull stakeholders which are opposing the project. Is there enough support from the project sponsor?
  • How does the issue log looks? Are there old unresolved issues? The issue log, if a such issue log exists, can provide valuable information about day to day project work.
  • Are there people issues in the project? Are the team members motivated? Do you have the right people in the team? How is the team's work-life balance? How is the team morale? You have to involve here the full team.
  • Is there any risk with major impact occurred? Does the project have any risk management proceses?
  • How is the quality of the deliverables? Are there any quality management processes embraced? 
  • Are the company policies and processes appliable to the type of the executed project?   
You might need to consider other areas, as well. But after finding an issue you have to conduct a root cause analysis.

3. Find trade-offs and prepare a recovery plan

After auditing the project, you might discover that the initial targets of the project cannot be reached without to do some tradeoffs. In simple situations you can fix the found project issues and then try to reach the initial goals by doing a „fast tracking“ of the remained work packages (execute the work packages in parallel and not in sequence) and by „crashing“ (put more ressources on the work packages located on the critical path). But in complex situations you might need to do much more. Thus in this third step, trade-off phase, you have to: 
  • If the scope is changed, plan to deliver the new scope.
  • Prepare the trade-offs related to the scope. In the previous step you prioritized the remaining features/work packages as: high (must have), medium (nice to have), low priority and not needed.
  • Determine what is more important for the customers. Can the budget be increased? Can the schedule be extended? Can we still achieve a higher business value with a smaller scope, while keeping the same cost and deadlines? 
  • Determine, prioritize and plan the steps to be done in order to fix the root cause of the current situation.
  • Determine the new risks, reassess the old risks and prepare a plan to deal with them.
  • Assemble a recovery plan.
4. Align trade-offs with the stakeholders.

In this step you have to get a buy-in from the stakeholders for your recovery plan. If it is it still possible to save the project, you have to sincerely ensure them that the situation can be fixed and you have a plan for fixing it. The customers shall agree with the proposed trade-offs. You may:
  • Negotiate with the stakeholders a smaller scope, for example without the low priority features.
  • Negotiate an increase of the project budget.
  • Negotiate an extension of the project deadlines.
  • Negotiate a combinations of all from above, but each of the variables to a lower extent. 
The recovery plan will be updated according with the result of the trade-off negotiations. 

5. Fix the root causes of the issues which caused the project failure.

Now that you have an approved recovery plan, you can start to fix the root cause of the issues which caused the project failure. You might need to:
  • Discuss the learnt lessons with the team.
  • Present to the team the agreements reached with the stakeholders.
  • Add, remove, train team members. Start building your team. 
  • Change the way how the project is managed.
  • Improve the processes which are governing the project (related to change management, quality, risk, type and extent of the project management processes).
  • Allow the right level of stakeholder involvement in the project. Fully engage the sponsor and other important stakeholders to secure their support for the project.   

6. Deliver according with the recovery plan

In the last step, the team shall work to deliver the project deliverables according with the recovery plan. But this time the project will be under a higher scrutinity and you, as a project manager, have to:
  • Enforce the new agreed processes. Check their effectivity periodically, propose and apply improvements.
  • Measure regularily the project progress against the plan and execute corrective actions in case of variances.
  • Do a "Fast Tracking"  of the work packages or "Crash the schedule" to win time.  
  • Perform risk management.
  • Solve the issues timely according with their priority.
  • Ensure an efficient communication with the team and the stakeholders.
  • Manage the stakeholder expectactions.
  • Build and motivate the team. Insulate the team from the external pressure.
  • Use an issue log.
  • Measure team performance.
  • Create forecasts.
  • Asses the quality and apply preventive and corrective actions.   

In conclusion, recovering a failed project is a complex activity which requires audit, stakeholder negociations, replanning and a lot of support from the stakeholders, especially from the customers and top management. For any project have to be done periodically sanity checks to discover as early as possible the signs of a failure. In that case, corrective and further preventive actions have to be done immediately. If done too late it's not possible to guarantee that a successfully recovery can still be achieved. 

Saturday, July 7, 2012

Best Practices in Managing Projects with Distributed Teams


We speak about distributed teams when the project teams are located in different geographical locations. Having distributed teams brings advantages as reduced costs (especially in offshoring) but also a better usage of the talent pools from different locations.

Unfortunately there are additional risks in such projects. Most of them are caused by the communication issues and cultural differences.  Bellow I will list and describe some best practices to avoid or to mitigate those risks.

  • Choose a management style which is compatible with the culture of the teams. For example you might need to micro-manage in south-asian cultures, but in western cultures you need to allow the self-management of the teams. 
  • Understand cultural differences of the involved teams. This is extremely important when you have offshore development teams.  Everything might depend on it: management style, communication, the way how the teams can be motivated, team stability, etc. 
  • Reduce coupling between sites. A remote team shall be able to implement a task with minimal help from other teams. That’s important because the communication needs are much bigger in comparison with the colocated teams. The communication issues are accentuated when the teams are located in different time-zones . Furthermore the effort to coordinate the development effort across sites will be substantially lower when the tasks across sites are proper decoupled. 
  • Plan for more coordination effort between sites. 
  • Dedicate more effort for the verification and validation of the deliverables. Verify and validate often! Due to the communication issues or cultural differences can happen that a task is not correctly understood or does not meet the quality standards. Therefore plan for a bigger testing team, adopt an iterative development methodology with a short release cycle.   
  • Create a shared collaboration platform. Use a distributed revision control and source code management system (ex: GIT, Subversion, etc), distribute information on platforms which are available to all teams ( ex: WIKI, Sharepoint, etc) 
  • Use appropriate technologies to improve communication between project sites (messengers as Lync, telephones, live meetings). The communication technologies have to be compatible across sites. 
  • Plan for social activities to increase the cohesion of the teams. As an example plan for more travel between project sites, execute very early team building activities. 
  • Plan for more formal communication. For example, due to the communication constraints, you need to better specify the requirements or the work packages. 
  • Maintain visible an overview of the project organization. Every team member shall know who to contact in order to solve a problem. 
  • Improve language skills of the team members.. 
  • When planning meetings consider the time differences between sites. For example do not set up meetings at a time when is late evening or night at a remote location.

In further articles I will add more details to some of described best practices. The projects executed with distributed teams are more difficult to manage, therefore a proper understanding of these best practices can improve the project outcomes.


Friday, December 30, 2011

Communication Plan. Do you have one?


    The statistics show that a project manager spends more than 90% of the working time communicating. In addition, a poor communication is considered a common cause for the project failure. Therefore it is very important to have a good communication in your project.

    But how to ensure that the communication is properly done? A good idea is to do some planning for your communication. The plan shall cover what information to distribute, to whom, when, how and how often you need to distribute an information.

    In the first step you need to determine what is needed to be distributed and to whom. Thus you have to determine the project stakeholders and to analyze what information do they need. This is the most complex step and requires a lot of attention.
    In the next step you have to determine when and how often you have to deliver the information. That is also dependent by the stakeholder's needs. For example you can send to the upper management or to the customer an weekly report, other stakeholders may be notified only when a milestone is reached.
    Very important is also the modality of information distribution. Thus in some cases you have to use a formal communication (written or verbal) and in other cases an informal communication (written and verbal). The choose between formal and informal communication is dependent by what you need to communicate and to whom you communicate.
    Also the communication technology is very important, especially in the projects with virtual teams. An important factor in choosing the communication technology is the urgency of the communication and the availability of the technology.

    Not many project managers are using a communication plan. Maybe for a smaller project with only a few stakeholders, a communication plan is not compulsory. But for a medium to large project, a communication plan is essential for the project success. A larger scale project has a big number of stakeholders and not providing the right information at the right moment can have important consequences and is a potential source of conflict.

Saturday, October 15, 2011

Best practices for creating a Work Breakdown Structure


In an earlier article, I described why a WBS is so important. But in order to be a usefull tool, you shall respect some best practices. I will discribe bellow some of those.
  1. Use a top-dow approach. Begin at the project goal level and break the work successively to lower levels of definition.
  2. Create it with the input from domain experts and team members.
  3. Do not include any work which is not part of the project.
  4. Cover the entire scope of the project at least at the upper level of the WBS (In a iterative development aproach, the WBS is developed iteratively, thus the entire scope will be only at the end of the project available). But in early phases, the entire scope of the project can be covered in the in the high level WBS components.
  5. Each component of the WBS, excepting the highest one, is a part of the parent WBS component.
  6. The lowest level of the WBS shall have the following properties:
    • It is possible to estimate its need for ressources, duration and costs. Aggregating this information for each lowest level work package you can calculate the ressources, duration and costs for the entire project.
    • The start and the end of the execution can be clearly defined.
    • It's realization can be outsourced. That is true mainly for work packages to an upper level in a WBS. The outsourcer can further decompose that work package.
    • It has a deliverable or a clear part of it. The deliverable is a prove that the work package is complete.
    • It can be completed within reasonable time limits. There is no universally accepted rule regarding the length of an work package. However, it  shall not exceed 1-2 weeks to complete.
    • Specific to the software development projects, it can be executed by a single developer.

Wednesday, September 21, 2011

The Work Breakdown Structure (WBS): Why a WBS is so important?

The Work Breakdown Structure (WBS) is, no doubts, the most valuable project management tool. According with the definition from PMBoK (Project Management Body of Knowledge), the WBS is a deliverable oriented hierarhical decomposition of the work to be executed by the project team to achieve the project objectives and to create the requested deliverables.
It is a good practice to use a WBS for any project, even if a project is a small one. But why a WBS is so important? What are the benefits of using a WBS for your project?
First of all, through logical decomposition, a project manager or the project team is able to determine all the work which is needed to fulfill the project objectives and to deliver the project deliverables. Through successive decomposition the work is decomposed in smaller, more manageable, work packages. Those resulting work packages can be further used for ressource estimation, scheduling and cost estimation. It is so because it is much easier to estimate the smaller pieces of work. In addition for having a solid ground for your planning, by having a good foundation for your estimations, you can confidently go to your managers to request more ressources, more time and bigger budget.
Furthermore, it helps to understand much better the project. By assesing each work package, and the relationships between them, you can understand the risks for your project. In addition since the WBS covers the entire scope of the project, you can asses correctly the impact of the scope changes.
Not to neglegt are the advantages which a WBS brings to the communication. Stakeholders can easier understand your project having in front a WBS showing the work packages which have to be executed. Furthermore, team members can understand the big picture and their role in the project.
But how can you create a good WBS? What are the best practices for creating it? We will have a look about in the next episode regarding WBS.