How to Plan a Project - Software Project Management: Part 1
Software project planning, from tasks and milestones to budgeting and risk management. Discover how to navigate challenges and set high-level milestones for successful project execution.
A project plan is like a complex number; it has a part that is real and a part that is imaginary, and it is very difficult to predict what's going to happen next when the project starts.[1] So, in order to achieve some form of attainable sanity and SMART goals, project managers try to plan projects with the most tried and tested ways out there, which would be feasible to launch their project successfully in the future.
As projects and their project managers tend to manage different projects in different ways in different companies around the world, no project plan will be the same. Certainly, every project plan gets moulded to each project's requirements. However, there are 5 most common elements of a project plan constantly connected to every project plan that are inevitable for any project plan to exist.
Key Elements of Software Project Plan
- Tasks - work to do
- Milestones - completed work that makes sense
- Documentation - RACI chart, charter, budget and risk management plans
- People - team members assigned to work
- Time - estimated dates to start, reach milestones and end the project.
Each project you work on will be different, but here are some general steps on how to create a project plan that are applicable to most projects.
1. Assign a Project Manager for the project.
2. Approve project's goals, scope and deliverables.
3. Assess skills of people and assign team members.
4. Schedule: Create a timeline of the project.
5. Budget: Calculate total cost to complete the project.
6. Risk Management Plan: Assess probable risks and create early plans to mitigate them.
7. Start with a Kick-off meeting with team, stakeholders and sponsors.
8. Identify key checkpoints and set high-level milestones in the project.
A project plan is useful for any sized project because it helps you to work towards the boundaries and milestones of your project and most primarily a scheduled timeline with important events like release and launch dates.
A team may start to plan their software project with these 3 preliminary steps:
- Assign a Project Manager
- Approve project goals, scope and deliverables
- Assess skills and assign team members
Once we complete these preliminaries from the initiation phase, we stride forward to a project planning phase. And, these are the 3 primary elements in a project planning phase, explained in detail.
- Schedule
- Budget
- Risk Management Plan
Schedule
A timeline of a project. It has a start date, the end date and a number of key dates for important events in between the project execution phase. Usually, a time estimation technique is used to determine these dates to create a project schedule. Gantt Chart is one of the most commonly used technique.
Budget
A total cost to complete the project successfully. This total cost is then broken down into smaller budgets to different phases and resources in the project. Such a planning can also be collectively referred to as budget planning.
Risk management
Searching for possible problems and planning ahead to mitigate those risks.
Risk is inevitable in any project but how the risk impacts the project is not.
Good project planning is analyzing the probable risks and working early to manage those risks based on a solid plan i.e. a risk management plan.
Consider budget items that are likely to increase in cost. Think about days off for team members, and consider any holidays or vacation days. Feedback from stakeholders could also cause delays. A cloud of confusions could circle the team when a bunch of scope and deliverables are changed, adding to a late schedule.
Scope creep could come in early but it always affects the project late.
Are the scheduled tasks on track or off track? Is the allocated budget consumed as expected or exceeding limits? Discuss with your team to answer these and formulate a plan based on what you discover.
A very common problem seen in many software projects is that the team would be struggling to meet the estimated deadline or, more importantly, the launch date. To manage such problem as a project manager, you could strategize two simple quick solutions:
- Reduce or adjust project's scope and requirements to meet the old deadline
- Negotiate with concerned stakeholders for an extended new deadline.
However, these quick solutions might not always be the right solution for your project in the long run. You can read a more detailed article on how you can measure the tradeoffs, between choosing quick solutions over right solutions in a software project.
Start with a Kick-off meeting
The first meeting of the team members to acknowledge and understand the shared vision of the project's goals, scope and roles in the team. The team members for the kickoff meeting are invited from the RACI (Responsibility assignment matrix) chart. Primarily, team members, stakeholders and sponsors of the project are invited.
The primary agendas to discuss in a kickoff meeting in an orderly fashion are:
- brief introductions of the team members - who are involved
- overview and background - how and why the project matters
- goals and scope - distinguish boundaries (in-scope and out-of-scope work)
- roles within the team - who is responsible for what task
- collaboration plan - how to communicate and work together
- upcoming updates and expectations from the team
- questions and feedback from the teammates
Set high-level milestones
A milestone serves as a checkpoint to show your progress to stakeholders and everyone connected to the project. Completing a milestone implies that a chunk of useful work has been achieved and provides a moment of celebration for the team even if there's more work to do ahead.
A completed milestone motivates your team and solidifies your team rapport.
Project milestones are intertwined by the nature of their tasks. Milestones must be inextricably linked. A set of tasks should conform to a specific milestone that conforms to the next milestone. These milestones should be linked in such a way that one milestone leads to the next. Each milestone should be created with a deadline, in a sequential order based on its scope and priority because reaching a next milestone depends on the work done at the previous one.
Top-down scheduling and bottom-up scheduling are two simple ways to create milestones for your project. In a top-down scheduling approach, project managers identifies the key milestones and break it down into smaller related tasks. Whereas in the bottom-up scheduling approach, the project manager collects the granular tasks and build them up into a high-level milestone. Recently, many projects are found to be using the bottom-up scheduling to define milestones. A simpler idea of identifying smaller tasks, assigning each to someone and combining them into a fixed milestone with a deadline seems to work better for a majority of project managers.
- NDC Conferences - The Art of Code - Dylan Beattie. 2020