Week 1
Week 1
Commonly, projects limp to the finish line, late, overbudget, and after crushing the
morale of everyone involved. Done, but maybe not done well. These projects typically
have three attributes:
Poor requirements from the project customers
Poor communications through the project manager
Poor morale from the project team
The saddest of projects are the ones that never make it to the finish.
This bunch misses deadlines, blows budgets, or experiences a radical change of scope so often
that no one (not even the PM) knows exactly what the project should be creating anymore
Failed projects usually have some, if not all, of these attributes:
No clear vision of what the project priorities are
Lack of leadership from the project manager and/or sponsor
A timid project manager
Lack of autonomy for the project manager
Starting and Finishing Software Projects
All projects pass through five process groups as defined by the Project Management
Institute.
A process group is a mini life cycle that moves the project one step closer to
completion.
Process groups are cycles because the processes don’t just happen once; they are
repeated throughout the project as many times as needed.
The processes flow organically, in the order that best suits the needs of the project. It
is not recommended to keep repeating some of these stages. However if your project
isn’t going according to plan you will have to do just that.
All projects, software and otherwise, go through these project management
processes. Each of these project management processes has its nuances.
Initiating: That’s really where you are now. The project is in the process of getting
selected, sponsored, funded, and launched.
Planning: As you can see in Figure 1-4, planning is an iterative process. Planning
basically determines how the project work will get accomplished.
Executing: After you get a plan, your project team does the work.
Controlling: Your project team does the work, but you control them.
Closing: After the project work has been completed, you tie up loose ends and close
out the software project.
Understanding What Makes Software
Project Management So Special
There’s nothing special about software project management that changes the Iron
Triangle or the five process groups.
What is special about project management, however, is the nature of the work.
Just as the particulars of designing a new warehouse, building a house, or creating a
prototype for a remote controlled airplane are unique, so is the creation of software:
Software development is weird and requires a specialized skill set to do it well.
Software creation is tough.
Software development can be boring, routine, and mind numbing.
Software creation can create challenges within the development of the code.
Breaking Moore’s Law
in 1965, Gordon Moore wrote a scientific paper called “Cramming More Components
onto Integrated Circuits.”
The synopsis of his paper is that the number of transistors per integrated circuit could
double every two years.
The theory became known as Moore’s Law.
The importance of Moore’s Law in software project management is that more
transistors per circuit mean faster processors. Faster processors mean more elaborate
software. More elaborate software means we need faster processors.
Because information technology (IT) drives many businesses today, there is a direct
connection between the speed of technology and an organization’s bottom line.
Between the two is the software the organization relies on. Consequently, businesses
demand software that’s reliable, secure, and scalable.
Dealing with Moore
As your project moves towards completion, chances are there will be leapfrogs in the
technology you’re dealing with.
There’ll be new versions of operating systems, service packs to address problems in
versions of software your software relies on, and more.
Part of software project management is to have a plan to address these potential
changes.
Every (yes, every) software project manager should have an allotment of time added
to the project schedule specifically for planning and responding to Moore’s Law.
What if you are not given enough time? What do you do?
By relying on historical information, you can help your project adjust to Moore’s Law.
If you have documented instances of past projects that failed because of a lack of time
to respond to changing technology, use it.
If you have records of your past projects, you can show how the project would have, or
at least could have, been more successful with this allotment of time.
This is a good time to remind you to save your project documentation so that you and
other software project managers can use it for the same purpose in the future.
If you don’t have these project records, well, there’s good news and bad news. The bad
news is that it’s hard to argue for additional time for planning without proof of why the
time will be needed.
The good news is that you can start now. Without the additional time allowed for your
project, here’s what we recommend:
Do a thorough risk assessment. Document how the risks due to changes in
technology could contribute to failure.
Document lost time. Document any lost time tied to technical changes (research,
team training, subject matter experts, and so on).
Document lessons learned. Begin your lessons learned documentation, a document
that highlights all the lessons learned, with attention to technology changes, at the
start of the project, and as your software project progresses, complete your lessons
learned documentation.
Communicate proactively. Communicate to your stakeholders when changes to
technology enter and influence your project.
Identifying the Project Purpose
Successful projects, and, by default, successful project managers, have to start by
ironing out a few details. Make sure these questions are asked and successfully
answered:
Why is the project being initiated? You first have to know the project purpose.
Does everyone agree on this purpose and goals? There must be consensus on what
the project will create and its goals. If not, you can count on trouble before the project
is complete.
Your fundamental purpose, at this point in the project life cycle, is to understand why
the project is being initiated.
But another crucial element to successful project management is to be in tune with
the structure of your organization.
Talking to the Stakeholders
When a project is being initiated, you want to capture as much information as possible
about the project goals to get a clear picture
Stakeholders, from your customers to senior management, will have different
concepts about what signifies that a project is complete. Here are five questions every
project manager should ask stakeholders:
What are the factors for completion? You should ask this key question far in advance
of starting the project work.
As a project manager you need to know what the project will accomplish and be able to plan
how to get there.
Starting a project without knowing what the end result should be is like building a house
without blueprints.
What is the goal of this project? Knowing the project’s goal helps you and the team
plan.
For some projects the goal will be to win new customers, or to make internal processes more
efficient, or to solve a problem.
What are the areas of the organization that this project will affect? The answer to
this question tells you who you need to communicate with.
It also brings to attention that there may be stakeholders who aren’t attending meetings and
should be.
What is the project priority? Chances are good you’ll be managing more than one
project at a time, and there are equal chances that your project team members will be
on multiple projects as well.
When you consider these odds it’s best to know your priorities so you know where to spend
your energy.
What is the accepted range of variance? The range of variance is the +/– value
associated with the budget and the schedule.
Reaching project consensus
To reach project consensus, your goal is to find common ground, and then to address
ancillary requests that don’t infringe, change, or drive out the original project purpose.
There are several approaches to accomplishing this goal:
Conduct interviews: This is fundamental business. You and the key stakeholders must
meet several times before the project work begins so that you can discuss the project
goals and determine whether both parties are in agreement to the project
deliverables.
Do root cause analysis: If your project is to create software that solves the problem of
multiple databases and recursion issues, a root cause analysis can help you design a
solution by examining potential causes to specific problems.
Do business analysis: Some organizations use a business analyst to serve as the
liaison between the project manager and the key stakeholders.
A business analyst can lighten the burden of the project manager by gathering and
prioritizing the project needs for the project manager and the key stakeholders.
Walk a mile in the stakeholders’ shoes: Sometimes the easiest approach to reaching
consensus is to experience the pain the project customer is experiencing. If the
stakeholders need an application to take orders via the Web, experience how they take
orders now.
If the stakeholders hate their current toolbars, macros, or forms, monkey around with
the current software interface.
If you can see things from their perspective, it’ll help you solve the problems faster.
Initiating the project
The first process group is initiation. When a project is initiated, it is being considered; it
hasn’t been officially launched. Projects get initiated to fulfill many different needs,
some of which we’re sure you’ve experienced, and most of which can be addressed
with software:
A problem needs to be solved.
An opportunity needs to be captured.
A profit needs to be made.
An existing environment needs to be improved.
A process needs to be speeded up and/or made more efficient.
At the initiation stage, the PM must make an effort to understand the reasons the
project is necessary. Knowing why the project is being created will help you ask the
right questions to help the customer get to the desired solution.
After you identify the need that the software project is engineered to answer, you
need to deal with some mechanics of project management:
Conducting a feasibility study: In formal project management a feasibility study
examines the high-level goals of the project, the needed resources, and any other
factors that could influence the project’s success.
The point of a feasibility study is to determine whether this project can feasibly accomplish
the time, cost, and scope objectives.
Sometimes the project isn’t feasible and the idea is tanked, outsourced, sent back to the
drawing board, or even broken down into multiple projects.
Determining the project deliverable: If the project is deemed feasible, then a product
description is created. The product description is an early rendition of the product
scope.
The product scope for most software projects consists of the design documents that
detail the end result of the software project.
In some instances, the product scope is very detailed — down to the color scheme,
button fonts, and graphics.
In other instances, the customer leaves the details to the project team, choosing instead
to focus the product description on detailing the ideal functions of the software.
Creating the project charter: A project charter is written by the person who has the
authority within an organization to authorize the project to move forward.
This individual has the positional power to authorize resources and funds.The project
charter may be written by the project manager, but is signed by someone with more
power in the organization than you.
This person typically becomes the project sponsor.
Technically, the charter should be signed by a person whose role in the organization is higher
than all managers that may have employees on your project team.
A project charter accomplishes the following:
It identifies the project manager in writing.
It identifies the project sponsor in writing.
It authorizes the project manager to spend organizational resources on the project.
It describes the product. That’s right; the description you worked so hard to create
goes in the project charter.
It specifically identifies the business need that the project was undertaken to address.
If you have a business case, you can pull information from there.
Planning the Project
The second process group, the planning process, determines how the project will move
forward after the project feasibility, description, and charter are complete.
The planning process group gets the project rolling in a big way.
Planning isn’t a one-time deal. Planning is an iterative (or repeated) process that
happens as many times as it must throughout the project life cycle.
You instinctively plan and restructure your plan all the time, stepping back, examining
the problem, and then creating and refining the solution.
The point of planning in software project management is to communicate exactly
what you’ll be doing in the project. It’s a guide for all future project decisions.
Examining project planning approaches
Planning can be done in a lots of ways. You and your team can sketch out a plan on the
back of a napkin to create a formal detailed approach to delivery.
Or you can follow one of these formal project management planning methodologies:
Rolling wave planning: Waves crest before they fall. The concept of the rolling wave
approach is to crest with planning and then go do the work.
You have several successions of planning and executing your plan. This is a fine approach
in a software project.
Scrum: Scrum calls for quick, daily meetings with members of the project team.
The focus of these meetings is simple. You identify what each team member has done so
far, what team members will be doing today, and what issues need to be solved in the
next week or so.
Extreme programming: This software creation approach calls for rounds of planning,
testing, team involvement, and execution.
Communication and teamwork are paramount in this approach, which puts a primary
focus on customer satisfaction.
Executing the project
Execution, the third process group, is all about getting things done.
You authorize the project work to begin and your project team goes about the
business of designing, building, and testing the project’s creation.
This is the meat of the project — doing the work.
In this process group, you’re also tackling some other key activities:
Beginning your procurement activities, if needed
Working with your organization’s quality assurance programs
Communicating project information to appropriate stakeholders
Managing project risk assessments
Developing the project team
Managing conflicts among the team and among stakeholders
Controlling the project
The executing process group’s twin process is controlling, which is the fourth process
group.
Controlling is all about ensuring the project is done according to plan. You control stuff —
quality, scope, budgets, the schedule, risks — and you get to monitor performance.
Don’t forget to document all these changes in performance so that you can write up a
thorough lessons learned document later.
The reason we relate controlling and executing is that they (more than all the other process
groups) depend on each other.
As your project team executes the project plan, you control the work by ensuring the
quality is present as planned.
You ensure that the costs are kept in check, and that the schedule is consistent, as planned.
Closing the project
The fifth process group, closing, for good project managers, involves lots of activities,
including the following:
Tying up loose financial ends: Doing your final math to see where the project stands
financially, verifying the procurement documents, verifying the deliverables, and so
on.
Unveiling the product to the customer for final acceptance: When the customer is
happy, he or she signs off on the project.
Finalizing the project documentation: Final reports on the project team, including
time spent on the project, final costs, and so on, need to be completed, as well as the
lessons learned documentation.
Finally, you can archive the project records, and if you’ve been working on gathering
historical documentation all along, this part should go surprisingly smoothly
Moving on: And then the project manager and the project team go on to other
projects. Well, not yet. Don’t forget to celebrate with your project team for a job well
done!
If the project is a success, it’s because of everyone’s great effort; if the project fails,
then it’s your fault, and your fault alone.
That’s just the way project management goes. It’s not always fun, not always
rewarding, and it’s never easy.
Writing the Product Description
One of the key activities for the project manager, the key project stakeholders, the
customers, and in some instances, the project team is writing the product description.
You have to write the product description during the initiation stage because it
officially captures what the project will create.
Verbally everyone can agree on what the project will create, but to have it on paper
makes it official.
The product description is also known as the product scope.
Every product scope should include the following:
Overall function of the software
Features of the software the project will create or revise
Purpose of the project work (whether it’s to solve a specific problem, seize a particular
opportunity, or what have you)
Any optional or desired components that may be incorporated into the product based
on the project manager’s discretion
Metrics for product acceptance (speed, reliability, and consistency, for example)
Process to Project Completion
Finding the ideal tools
Tools are the things you need to get the project work done. They can include anything from
hardware (two monitors, faster processors) to the language you’ll be using to develop the
software.
Development language: You need to know which code will deliver the product the fastest,
and which code will deliver the best product for the customer.
Hardware: Most of the hardware is difficult to come by nowadays. Ensure every hardware
required comes on board.
Training: If some or all members of the project team don’t know how to do the work, train
them or send them to training. This is part of team development, the cost of quality, and it
has huge effects on team morale.
Other resources: Typically, when people think of resources they think of people, but
resources are also things. And the things you want on your wish list are items that
keep your developers happy. So the resources you want here can range from sodas
and pizzas to reference books and Internet subscriptions to relevant IT Web sites.
END OF PRESENTATION