At some point in your career you will be asked to manage a project. This can be intimidating, it can be scary, but it doesn’t have to be. We can leverage some time-honoured techniques, and adapt them to the unique approach required for software projects to deliver on time, on budget, and with success.
This article is a collection of techniques I’ve learned for managing projects over time, that attempts to combine agile best practices with project management best practices. If you study project management to any level of depth, it is inevitable that you will come across the Project Management Institute, or PMI. The PMI is a global professional body that provides training and certification in project management topics. PMI provides different certification options, including some for Agile processes and Scrum.
The PMI maintains a set of best practices for project management that it publishes in guidebook format called the Project Management Body of Knowledge (or PMBOK). Though I’m generally skeptical of the actual value of certifications, the body of knowledge produced by PMI has some great tips and best practices for fledgling project managers. Although it may be overkill to adopt the entire PMBOK to a simple software project, you will be surprised how paying some level of attention to each of the phases will make your work and projects go much smoother.
The Five Phases of Project Management
The PMBOK defines a process for projects that includes five phases.
- Initiating a project means recognizing that a new project exists and clearly setting out the scope, deliverables, and expectations.
- After initiation comes planning — clearly defining the work breakdown, roadmap, and project plan. Most project plans involve some form of Gantt chart or roadmap, though I would suggest tailoring this to your company needs if you are working in a more “agile” setting.
- During this phase, the project team spends most of its time completing work, coordinating with people, helping to ensure quality work, keeping track of resources, and updating stakeholders.
- Monitoring and Control
- In parallel with execution, the project team tracks the progress of the project based on the original project plan. This includes tracking the schedule, budget, and scope of the project to make sure it is on track.
- Closing a project involves delivering the final results, measuring success, and compiling lessons learned for future projects.
Now that we know a bit about the overall process, lets dive in to each of the phases and relate them to some actual, practical things you can do the next time you are faced with leading a project for your team.
Goal: Develop a clear and shared set of expectations.
Getting a project started off on the right foot is likely the most important part of project planning — if the runner doesn’t come off the starting block strong, they have a poor chance of winning the race.
The biggest thing you can do at this stage is to set very clear project expectations. The questions you will need to answer are:
- Who will this project impact?
- Who determines success?
- What are their expectations?
- What are the project limitations?
The key insight to gain from this list of questions is that you are not usually able to answer them by yourself. You will need to ask key people, often in leadership positions, what they think. To do this, take two steps: first, identify key stakeholders, and second interview them.
Step 1: Identifying key stakeholders
The questions you need to answer involve people and their view of the project. So the first step to complete is identifying the people that will matter to the project. The book Project Management for the Unofficial Project Manager calls this process the “stakeholder DANCE”.
After brainstorming a list of people involved in some way in the project, narrow that list down to the most important ones by mapping them to some portion of the dance:
|Decisions||Make the decisions that control or influence the project budget.|
|Authority||Have permission to grant authority to proceed with the project.|
|Need||Directly benefit from or are impacted by the project and consequently need to know all about it.|
|Connections||Are connected to the people, money, or resources required to remove roadblocks or exert influence to ensure project success.|
|Energy||Have positive or negative energy that could affect project success.|
This list of people are the ones that can make or break the project for you. You need to make sure you are considering their needs and desires from the project, and that you are keeping them up to date on how the project is proceeding.
Usually, the stakeholders that are required to make decisions, have authority, or that need to know are easy to identify, and the stakeholders that have the connections and energy to make the project successful are a bit harder to identify. However, ignoring these people risks putting the project in jeopardy. Don’t ignore these people! Stakeholders with the right connections and the right energy greatly influence the project’s success.
Step 2: Interviewing stakeholders
After you’ve identified key stakeholders, you want to get as much input from them as possible to make your project a success. The best way to do this is to simply ask them. As nerve wracking as this may seem, most stakeholders will welcome to chance to speak about their wants, needs, and desires for this project. If you are having trouble getting started, keep in mind that most senior leaders want you to succeed, and are happy to help if they can.
Keep in mind that executives can be busy, so you need to be brief about the point of the interview, and clear about the benefit. To be a great interviewer, you need to be prepared — know what you want to get out of the time you have, prepare a few good questions, and be prepared to listen well.
Feel free to use this template, or adapt it to your own needs.
- Introduction. First, clearly state that it is important to you to
get the opinion of the stakeholder
- “I know this project means a lot to you, so I want to make sure I have all the information I need to make it successful”.
- “I want to make sure I completely understand your expectations, so we can be successful”.
- “You play an integral part in the success of this project and I want your input”.
- Project Purpose. Understand why we are doing this project in the
- “How does this project affect your department’s goals for the year?”
- Description. Details about the project that are important to this stakeholder.
- Desired Results. Details about the project that are important to this
- “What would make this project a success to you?”
- “Are there specific measures our outcomes that we must accomplish?”
- Exclusions. Anything we don’t need to cover, or will explicitly not be part of this project.
- Constraints. Any restrictions or limitations on the project.
- “When do we need this done by?”
- “What budget do we have for this?”
- “Which teams are supporting us?”
- Communication Needs.
- “What do you need to know as the project proceeds?”
- “Your time is important. How would you like us to keep you informed about our progress? Email? Stakeholder Meeting?”
Step 3: Developing a scope statement
With the interviews you’ve conducted with key stakeholders, you likely have a good idea of the shape and form of the project: what’s required, by when, and with what resources you have available to help. The next step in the initiation phase is to distill the information you’ve gathered from the interviews into a single scope statement.
The good news is you can use the same template you developed for stakeholder interviews to develop your scope statement.
- Project Purpose
- Desired Results
- Specific and measurable deliverables
- Things out of scope
- Who? How? How often?
- Acceptance Criteria
- Who needs to sign off? How?
Step 4: Getting approval
This is the last step in the initiation phase. After you’ve done your interviews, collected your data, and distilled that into a single scope statement, you need to go back to your key stakeholders and get them to approve your scope statement.
This step is important. It forces the key stakeholders to agree on a single version of what the project entails, it eliminates up front any confusion about what the project will deliver, and it forces any difficult prioritization, budget, and resource questions to the front of the process.
Getting sign-off and approval on your scope statement can involve simply forwarding the final version to each stakeholder for approval, or having a short group meeting to go over it with the key stakeholders in the room. This will vary depending on the scope and importance of the project.
Goal: Create a clear roadmap for success
After you’ve spent the time getting the project off on the right foot, the next phase of project management is planning. Planning is typically associated with Gantt charts and project schedules connected to milestones. Before we jump there, let’s use some of what we learned in our interviews to make our planning more complete.
Step 1: Create a communication plan
Based on stakeholder interviews, we know what communication needs each of our stakeholders have. Now, we can take those needs and create a communication plan around them. This might include a weekly status update via email, a monthly stakeholder meeting that includes a progress update and opportunity to ask questions, or maybe a simple wiki that is updated ad-hoc with project results. The important part is that stakeholders feel included, and that their communication needs are met.
To create a communication plan, list all of your stakeholders, all of your usual communication methods, and a typical set of frequencies when you communicate. Then you can put it all together to create a table that forms your plan. For example, if you are working on an important project where you need to keep the executive team in the loop, as well as update the broader organization, your communication plan might look something like this.
|Daily||Project team||Stand-up meeting|
|Weekly||Executive group||Weekly status email|
|Quarterly||R&D organization||All hands presentation|
Step 2: Create a project plan
This stage is where many well-intentioned unofficial project managers go astray. It is tempting to start working on a detailed project schedule, with breakdowns of individual tasks, along with dates, dependencies, and team members.
Before we get to the actual plan, I would encourage you to read Stepping Stones not Milestones, for a way of thinking about project planning that is more in tune with the results-oriented real world, and is still compatible with most planning tools and the expectations of senior leaders in your organization.
Here’s the problem with arbitrary project milestones: They’re kinda useless. Sure you need to figure out a project plan and do some estimating and track progress and send out emails to half the company about how you just successfully completed Milestone M2b and are making great progress towards Milestone M3. Milestones are good for tracking execution, but do they actually help de-risk a project or eliminate unknown unknowns? Not really.
For any project with some level of complexity, it’s naïve to lay out a plan by picking a point of completion somewhere in the future and moving in a straight line towards it. Instead, we need to chart a path that includes some level of uncertainty and learning along the way, and that incorporates learning into the process.
An analogy I like here, that feeds directly into the idea of stepping stones, is a Chinese proverb about crossing the river by feeling the stones. If the goal is to cross a river, you would not just take a straight line through it, instead, you take a step, find stable footing, and then adjust your path based on what you see from this new vantage point.
Similarly, you want to structure a project around stable points that allow you to learn as much as possible while advancing towards the ultimate goal. So what makes a good stepping stone? I will copy here directly from James Cowling:
- Stepping stones are a cohesive, concrete deliverable. They involve the completion of something, generally a simplified version of a final system.
- Stepping stones deliver real value. If the company decides to pull the plug on the project, we should have got something out of the stepping stone version. This could be a system that works at smaller scale or a useful standalone component.
- Stepping stones reside along that path towards the goal. The road to success will likely take a meandering path, but each step should be directionally consistent with where we want to go.
- Stepping stones allow us to learn something! By building a smaller version of the project, we drastically reduce the scope of unknown unknowns. Problems that seemed open-ended and intractable at the start now just seem like obvious next-steps once the solution space has been trimmed down.
With a set of stepping stones in place, you can do the work to break it down into tasks and work items that team members can complete. There is much prior art on how to do this, so I won’t go into depth here.
At a high level, you need to:
- Identify the tasks that need to be completed to create a stepping stone.
- Identify dependencies between these tasks.
- Sequence the tasks that are dependencies of one another.
- Estimate the duration of each task.
While breaking down tasks and estimating time, keep focused on stepping stones, and adjust the plan as needed based on what you learn along the way.
Step 3: Create a risk management plan
We’ve all heard the adage that “Anything that can go wrong, will go wrong.” Unfortunately, this applies to your project too. No matter how much effort you have put into the plan, something will come up to derail it.
To create your risk management plan, you first need to identify all the risks that you can. Brainstorm until you get a complete list, then take the time to rank each risk by the impact it would have on the project if it happened, and the likelihood that it will actually happen.
Impact can be ranked on a score from 1 (low impact) to 4 (worst case scenario). Estimate how serious the impact would be to the success of the project. Likelihood is also ranked on a score from (1 a small possibility) to 4 (fairly likely). You can use the following tables as guides.
|Likelihood Rating||(The likelihood that the risk will occur at some point.)|
|Impact Rating||(The potential business impact associated with an identified risk.)|
By multiplying impact and risk, you obtain a risk score. Anything ranking 12 or higher will likely require a mitigation plan detailing what you will do should that event take place. By creating a table multiplying likelihood by impact, you can visually score risk like this:
Goal: Keep people engaged towards success with consistent accountability
There has already been a lot written been about executing on software projects. I tend to support the general principles of Scrum and would recommend that unless your team already has experience with a different framework. Two items to keep in mind, that Scrum promotes, are having a regular cadence of accountability, and adjusting to the feedback you receive by delivering incremental stepping stones.
Step 1: Schedule accountability check-ins
Scrum builds this in to the daily stand-up and retrospective rituals. Whether you use scrum or not, keeping a regular cadence of visibility and accountability produces reliable results and high performing teams.
The key to getting the most out of weekly or daily meetings is to remove the idea of “status updates” from them, and instead focus on accountability. Instead of listening to other people drone on about what they have been working on, while everyone else is disengaged, focus on how team members can help each other and clear the path when necessary. Do it quickly and stick to the agenda.
The goal of the accountability session is to enable the whole team to see the project or deliverable as a whole, report on the commitments they made and how they are doing at delivering on those commitments, identify any impediments to getting work done, and keeping the project moving along by identifying next steps and new commitments.
These sessions can be completed fairly quickly by focussing on three things:
- Are we meeting the goal? Are we on schedule?
- How are we progressing on our current commitments?
- What can we do next to move forward?
Step 2: Adjust to feedback from delivering stepping stones
No plan survives first contact with the enemy. Despite all of your careful planning, things will go astray once you begin delivering value. Stakeholders and early adopters will provide feedback to you, and it is up to you to incorporate that feedback into future iterations while keeping the overall goal in mind. Remember to cross the stream by feeling the stones.
Sometimes, receiving feedback can be hard, especially if it results in a significant change in direction. Remember to always demonstrate respect for the person delivering the feedback, listen carefully before speaking, and clarify any expectations.
Monitor and Control
Goal: Keep stakeholders happy with transparent communication
During the planning phase, you should have developed a communication plan. The monitor and control phase includes executing on that communication plan to make sure that all stakeholders are kept up to date in ways that make sense to them.
Step 1: Regular status reports
Status reports should be delivered at the cadence that was decided during project planning, and in a way that makes sense to the audience. Typically, this is through a weekly report or monthly status meeting.
A good status report will provide at a glance information on overall project health, and the status of any key deliverables. Keep in mind a traffic light. If you are reporting green, it means that everything is on schedule with no risk, yellow means we need to pay attention to make sure things stay on track, and red means something is wrong, and you need help from the stakeholders to get things back on track.
Goal: Measure success and get better
Step 1: Confirm the project is done
The first thing to do when a project is complete is to verify that it is actually done. Have you completed everything you set out to do? Are people happy with the result?
Some simple questions you can ask are:
- Did we meet the goals of the project?
- Are stakeholders happy?
- Did we deliver on time?
- Did we deliver on budget?
At this point, review your scope statement from the beginning of the project, and compare it to what you delivered.
Step 2: Document lessons learned
By completing this project, you inevitably learned a few things. Gather together the project team and complete a simple retrospective template.
- What was done well?
- What needs to be done better or differently next time?
- What was expected? Unexpected?
- How or what should we change in the future?
Step 3: Celebrate success
Lastly, celebrate your success! Publish your results. Let everyone in the company know you delivered and what you accomplished. Encourage management to acknowledge the team.
And enjoy what you’ve done!