This is a true story. The company names
have been changed.
The project
Acme Corporation, a software vendor,
was implementing their Sales Order and Payment Processing application at
Standard Limited. The product was very flexible, but was also being customized
to Standard’s needs.
The contract between Acme and Standard
was structured so that there were no progress payments. Payment from Standard
could only be requested after a successful User Acceptance Testing (UAT) phase.
The Standard project was estimated to
take six months to complete, but at the five-month mark, development was still
under way and the testing phase had not started yet.
A few resource changes
Acme had several staff on site doing
the implementation and custom development work at Standard. During the fifth
month, the project manager and architect were removed from Standard’s project
to work for another Acme client. A new project manager was assigned to the
Standard project, but the architect was not replaced.
Acme started to worry about Standard’s
ability to pay them, as Standard’s business was struggling in the marketplace. Acme
wanted to deliver the software and get paid before Standard ran out of money.
In addition, Acme was concerned that Standard might sue Acme for non-delivery
of the software if they didn’t finish soon. The new project manager was charged
with ensuring the project was completed as soon as possible, in order to avoid
the potential lawsuit, and to reduce the risk of non-payment.
The project manager assessed her team
and discovered they were poorly trained and had learned very little on the
project so far. The architect had been providing specific answers to questions
from the developers, without explaining the business and software design
background that would help them understand the product and their own work
better.
The project manager also learned that the
development team was sometimes building additional functionality than what had
been agreed in the contract.
Getting the work moving
The new project manager immediately re-focussed the development
team on the contract as the definitive guide to what was to be built, and
directed that no additional work was to be done.
In addition, the project manager
realized that a new architect, although not available to the project, was
critical to getting the job done. She evaluated the developers on the team and
found that one was a resourceful, determined person with good analytical
capabilities. This developer was re-assigned to the architect role.
The new architect did whatever analysis
was needed to resolve issues and was also able to teach what he learned to the
other developers. Progress was being made.
More resource changes
As the developers became more
competent, Acme management caused more staffing issues by reassigning them to other
Acme projects where there was a greater likelihood of being paid for the work.
The project manager had trouble maintaining any stability in the development
staff on the project.
During the sixth month, Acme announced
job cuts and laid off three of the project’s seven developers, without any
notice to the project manager.
At about the same time as Acme’s job
cuts, Standard announced that they were dissatisfied with the early results of UAT
and would do no further testing until the existing defects were fixed.
Although the client was not
contractually entitled to stop the testing phase, the project manager agreed
because she didn’t have enough developers to complete the fixes. Having the
testing stop allowed the corrections to be completed without new bugs being
added to the work list.
The project manager needed to get the
bugs fixed but was critically short of resources. Because the project was at
the bug-fix stage, the project manager decided that short-term resources were
adequate for completing the work. She approached other project managers at Acme
and asked to borrow resources for short periods of time. For example, if a
developer was not assigned for a few weeks prior to taking vacation in one or
two weeks, the project manager used that developer on the Standard project.
When the existing defects were fixed, UAT
resumed. The project manager continued to borrow developers for very short
periods to correct deficiencies.
Time to pay
When the UAT was completed, Acme
requested payment from Standard, but. Standard said there was no money to pay
Acme for the software implementation and development fees.
Acme issued a legal notice to Standard
that due to non-payment, Standard was not entitled to use the software.
Conclusions
The developer assigned to be the new
architect had been reluctant to take on the role, as he felt under qualified.
However, he was a good choice because he had the skills to figure out the
solution to issues, and as he learned, he shared his knowledge with the developers.
Developers who temporarily could not be
used on longer-term projects were a good solution to the problem of staffing
the Standard job. These resources were not earning fees on other projects; so
there was no additional cost to having them work on the Standard project.
The project manager had no support from
her own organization to provide adequate resources to the project. However, her
novel staffing approaches allowed her to complete the work so that a
non-delivery lawsuit was averted.
The project manager was wise to ensure
that the team delivered only what had been specifically contracted. Additional
scope takes time, and time was critical to avoiding a lawsuit.
It was common for Acme’s projects to
require significant customization and then run late and over budget. Acme
management frequently made things worse by removing resources before the work
could be completed.
Copyright
2015 Debbie Gallagher