The triple constraint involves making tradeoffs between scope, time and cost for a project. It is inevitable in a project life cycle that there will be changes to the scope, time or cost of the project. However where most projects fail is that when one of the areas changes and appropriate adjustments are not made to the other areas. For example, if a deadline is moved up, what actions are needed with regards to cost or scope to ensure the deadline is met without compromising the quality of the product.
Successful project management requires that all knowledge areas (scope, time, cost, quality, human resource, communications, risk, procurement, project integration) be managed effectively. Some of the items that came out of the reviews are directly related to the above knowledge areas, areas of which there needs to be improvement.
Defining and managing all the work required to successfully complete the project.
Charters
should be developed for each project.
A
formal process should be developed for change management including
the estimate in cost of making the change.
Scope
of the project needs to be clearly defined in the project charter.
To avoid scope creep, any changes to scope must be documented and a
formal approval must be obtained before changing the scope of the
project.
Need to determine who can make decisions and differentiate based on magnitude of decision. Not every project decision should go to the Steering Committee.
Time Management
Estimating how long it will take to complete work, develop project schedule, and ensure completion.
Project Schedule – for each project a project schedule should be defined early on. Tasks should be identified down to the task/person level. Project schedule templates (plans for software upgrades, software development etc…) should be developed so that project managers have a “pool” to pull from.
All projects that have more than 5 resources and have duration of longer than 1 month should utilize Microsoft Project to develop a project schedule.
Requirements should be done prior to development work.
In areas where business changes are needed, significant time should be allotted to do this.
Include entire project team in planning. This will help minimize tasks being overlooked in the plan.
Break the project into small pieces. Not all functionality has to be delivered with one release.
Time needed for the project by the various resources needs to be better identified. Often the time is underestimated.
Preparing and managing a budget
Budget
guidelines need to be established prior to project
Need
to determine who has the authority to make certain budget decisions
A budget identifying the total cost of ownership of an application should be developed. Some costs that need to be identified and budgeted for are:
Consultants
– as we continue to purchase more applications. Our
dependency on consultants will continue. This needs to be
budgeted as a recurring cost with each upgrade.
Maintenance
agreements will be a recurring cost of owning purchased
applications.
Travel and professional development – the skills needed to support these new applications requires staff to learn new technology as well as develop partnerships with other institutions utilizing the same software. This is a recurring cost and should be budgeted for accordingly.
Ensures the project will satisfy stated or implied needs
A formal customer sign-off process is needed.
Ensure the scope statement has specific measures of success so that it is easier to determine if a project has been successful at meeting the objectives.
Making effective use of people.
Knowledgeable
resources should be identified for the project team and involved as
soon as possible. If staff are unable to devote time necessary,
then tasks should be prioritized.
End
users should be involved early in the project and updated
throughout.
If
a project requires some special skills (i.e. knowledge of SQL
etc..), staff need to have the training made available at the right
time. This may be something that should be included in the project
plan – training assessments of project team.
Staff
should be given release time for participating in projects spanning
a long time or requiring significant staff effort.
Clearly define staff roles and responsibilities.
Generating, collecting, disseminating, storing project information.
A
communication plan should be developed to outline what gets
communicated to whom and who is responsible for the communication.
For example, what information gets communicated to the Steering
Committee?
Sponsor
Meetings - regular meetings should be established with sponsor to
ensure they are aware of project status. Frequency should be based
on project size and turnaround time. The larger the project, the
more infrequent (monthly) the meetings should be. Format of agenda
should be consistent.
Team
Meetings - regular meetings should be established with project team
to ensure tasks completed, that they are aware of important
deadlines etc…Agendas should be developed and minutes should
be completed with action items.
Point
of Contacts – POCs should be identified for major groups (i.e.
IT, testers, business areas etc…). Sometimes it is difficult
to ensure if people read email regarding important dates etc…The
POC is responsible for ensuring their area is aware of information
relating to them.
Majordomo
- mail lists may also be developed so that the project team can
communicate freely with each other.
Identifying, analyzing, and responding to risks
Risks
need to be identified prior to project. In addition, procedures on
how to handle these risks if they arise need to be documented.
Staff turnover will most likely occur on projects spanning a long time. A management plan needs to be devised on how new staff will be brought up to speed.
Acquiring or procuring goods and services that are needed from outside the organization
It may be necessary to hire outside consultants for larger projects. This may allow implementations to run smoother as the consultants can alert us to issues.
Overarching function that affects and is affected by all other knowledge areas.
Close
interaction with vendor is needed to understand changes with new
versions (i.e. what current functionality won’t exist in new
version)
Project Plan should be developed and include:
Overview
of the project - description, sponsors, stakeholders,
deliverables
Organizational
structure of the project – authority of project manager and
steering committee, responsibilities and communication for the
project, reporting structure of project
Management
and technical approaches – management objectives, project
controls (status reports, how to handle changes), risk
management, project staffing plan, technology methodologies
Scope
management plan – WBS (work break-down structure) or high
level task list, key deliverables
Project
schedule – summary and detailed
Budget – summary and detailed, assumptions
A
project should be broken down into small manageable pieces rather
than implementing everything at once.
Periodic
reviews should occur to determine if the project should continue.
Testing
Should
be detailed – scripts should be developed for minimal
testing. This doesn’t mean that other testing is not also
needed.
Parallel
testing – when at all possible, it is best to be able to
test the old version in conjunction w/ the new version. This
helps identify gaps.
Issue list should be maintained throughout project to ensure issues are resolved before implementation or at least be aware that those issues exist.
Instances
(QA/DEV/Production) – when testing, instances need to be
compatible to ensure the needed functionality is transferred from
one version to the next.
Issues
found after testing should be included in test scripts to detect
in future upgrades/enhancements to the system.
Training
Evaluations may be needed to determine if there is additional training that is needed. Be careful in assumptions regarding knowledge level of the users.
Adequate time should be allowed for training. A common theme in all feedback was that there wasn’t enough time for testing. Need to identify a “rule of thumb” for project managers to use as a guide.
QA
instance needs to be “frozen” when training material
development starts.