1

There is a project team with a project manager and 5 development resources working on a Web 2.0 web application. The current project the team is working on is for a long term client who commissioned a desktop and mobile website that they will use to build brand recognition for a new product line they will be selling on a mobile and web ecommerce platform, which the team will build using open source tools.

Background:

  • Only two of the development resources have experience with building ecommerce solutions.
  • The other three development resources have never worked on an ecommerce platform.
  • The project manager has noted this as a risk, since there is a financial component to ecommerce platforms that can have serious security implications.
  • The project manager has completed the schedule and has loosely allocated most of the tasks to the 5 team members, with the highest risk items being assigned to the two ecommerce experts.
  • The software development methodology is closer to the waterfall model than an agile methodology due to the specific client and their need to avoid uncertainty.

The client has signed off on the project authorizing it to begin.

Problem: Hijacked Resources:

At the last minute, another project manager of another team convinced senior management to move one of the expert resources from this team and replace her with an intern. This project manager has a strong relationship with senior management, goes to lunch with them, and even sometimes hangs out with them outside of work. This PM has an unofficial reputation for stealing project resources and throwing his weight around using his influence.

With the client having already signed off on the project and an agressive, 9 month estimate, the project team is concerned they won't be able to meet the deadline because of the huge learning curve for the 4 inexperienced team members.

After speaking with senior management, the request to move the expert back to the team was declined.

How should the project manager reallocate the tasks that were assigned to the ecommerce expert who was replaced with an intern? Is there a specific strategy or methodology that should be followed to determine how the tasks should be assigned?

  • What's the existing software development methodology used within the team (or can that not factor in because the PM is assigning technical tasks instead of the tech team themselves having control over that)? – jcmeloni Jun 22 '12 at 2:14
  • In this particular case, it's more waterfall model. Although the organization does use a modified version of scrum for internally facing projects. Also, the PM is definitely wearing many hats. – jmort253 Jun 22 '12 at 2:18
  • "This project manager has a strong relationship with senior management, goes to lunch with them, and even sometimes hangs out with them outside of work. This PM has an unofficial reputation for stealing project resources and throwing his weight around using his influence." Just a note of caution, jmort. These observations have nothing to do with the situation. You must act on what is occuring now, not theories/rumours/claims of what has gone before. (You might well clearly see it this way already, but I was struck by the strong emotion and wanted to highlight it.) Best, – gef05 Jun 22 '12 at 22:35
  • @gef05 - Thank you for your comment. I agree 100%. The solution isn't to complain about the problem but to take action and fix it. I included this just to clearly show the cause of the problem. Looking back on it, there are many reasons why resources may be reallocated, personal influence or not. – jmort253 Jun 23 '12 at 0:36
3

This mitigation of this issue should have begun before your lost your resource. Losing resources--human, materiel, money--is an organic risk of all projects and mitigation begins at initial planning.

My basis of estimate includes the assumption that all capability enablers, humans being one of them, are average performing. I never plan around the perceived capabilities of the team or, worse, an individual. People leave, people die, there is no way you can make certain that the team used for planning will be the team used for execution. And, there is the often forgotten effect of regression to the mean, which essentially states your planned high performer has probability of performing worse this time than (s)he did last time. Finally, the word average means this is what is mostly observed and, therefore, what you will most likely get. For these three reasons, it serves no purpose to plan your targets based on anything but average performance.

An intern is quite a replacement. I'd work on finding another resource if you are able. An intern is there to learn, not perform, so this would be an unacceptable replacement. In fact, you cannot even consider this a replacement. Essentially, you are now operating with one less resource on your project. Everyone is replaceable, so there is a replacement out there. If you are unable to hire for some reason, then raise the risk for a late delivery, mitigate where you can, then raise and communicate early and often that you will be late when it becomes imminent.

Now, to the question of adjusting your schedule. If you meant adjusting your baseline, the answer would be no. This would be a cause of variance, not a condition to rebaseline. In terms of simply reallocating your staff to your work packages, I would simply go through the pain staking analysis of skill requirements per work package and align the resource(s) who exhibit the best match.

1

Agile doesn't necessary means risk or uncertainty. In fact I would strongly suggest that you embrace this change, and start working with a pair programming approach.

It will help you leverage your less experienced resources to higher levels of understanding of the platform.

You may face a reduced head count, meaning that 2 developers will be seen as one, with the implications this might have in certain corporate cultures. Still it'll be a good practice given your case. Also by implementing, let's say, Scrum, you could deliver the most valuable "requirements" first, leveraging the knowledge around the team so that for every sprint or iteration your team will know more and be more productive. Still you'll need a good agile coach or have the ability to have a good lead who understand this.

In summary, I would split the tasks into pair programming couples. Speed might be impaired at first, but you'll win in quality.

  • I don't think the PM had a lot of breathing room in choosing the original methodology, but with the changes that just occurred, I think that the pair programming approach could be quite valuable. The speed may be an issue, but the PM will just need to negotiate that part with the client and explain the situation. +1 – jmort253 Jun 22 '12 at 6:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.