Like any body of work, a software project has to be planned in advance 1) to account for costs and risks, 2) to show it to stakeholers. Normally, a software project plan is a detailed course of work or a set of related tasks that should be performed in a sequence to complete an objective or deliver the system to the end user. One of the possible ways to build it is to take the following route:
1. Create a Work Break Down Structure
Top-down, a software project consists of several stages:
- Requirements Definition.
- Build and Assembly.
Under each of the above, there are several tasks that need to be completed in a specific order depending on the project complexity for the particular stage to be deemed complete. This is the foundation for the work breakdown structure (WBS) of a software project. The next step would be to list each major milestone in each stage or phase.
Let’s say you are now assembling the WBS. You should really spend most of the time planning here, down to the lowest level of detail, needed to produce a thorough plan.
Before commencing to build a detailed schedule, we need to have the correct level of detail. To get the appropriate level of detail, the right subject matter experts are needed. Every task and deliverable must be assessed for effort and interdependencies.
For example, when planning a Design Document, there are several steps required to complete the task.
Add into the mix the complexity of some document management systems, multiple reviewers and approvers. A simple task on a plan can take on a whole new meaning once the detail is understood. It is very important to provide a visual representation and ensure that the main stakeholders understand the complexity of the project, this time without overloading them with detail.
2. Define the tasks
If there are multiple design documents in a project, it is easy to see how a software project that seems simple on the surface can be presented as quite complex when all of the tasks within the work breakdown structure have been defined. Each document will have a number of steps that need to be considered when planning.
Very quickly you can have hundreds and even thousands of individual tasks in any reasonably sized project. There are no shortcuts here and it takes time and effort to produce the correct level of detail.
Once the main contributors to the project and the subject matter experts are relatively content that we have captured all required tasks, the work breakdown structure should be distributed to allow everybody to review it in isolation.
Often when reviewing it in the presence of one’s peers, some details can be overlooked. It is important that a fixed time is given to afford everybody the opportunity of a review.
Now that the work breakdown structure and task activity definition are complete, it is time to focus on the duration of tasks, who will be doing what, and which sequence they should follow. This will allow us to build a schedule and then produce an estimate of the entire project.
3. Estimate each task
The next step would be to add time estimates, resources, inter-dependencies, and sequences for each task in the work breakdown structure.
Once the work breakdown structure has been reviewed by the subject matter experts, we can now add in the duration for each task. Starting at the beginning, walk through each task requesting input from the available subject matter experts to estimate duration. This data should be based on information that is known from previous projects. It is very important to use as accurate information as possible.
Note that estimating the duration for each task, some people can hold back a little and nearly always try to overestimate the time that the task would take.
4. Assign resources to the task list
After the duration of each task has been determined the required resources for this task should be assigned.
When assigning the resource for each task, it is important to note the percentage of that resource’s time that is required for the duration of the task. i.e. the engineer may need 5 days to complete a task but this may not be a full-time activity.
Making task estimates and allocating resources to each task of the skeleton, you can provide cost estimation for the project. It must be noted, however, that the plan is incomplete unless the dependencies and risks identified.
5. Set dependencies between tasks
When the work breakdown structure is assembled, it is obvious to see some tasks that were naturally needed to be completed in advance of commencing the next task.
Once the resources, the inter-dependencies, and tasks are laid on top of each other, the plan will begin to take a very different shape. The availability of resources, site systems, and site operations may introduce constraints to the plan and introduce risks that will need to be managed.
Project management software tools and applications are very useful to help visualize the impact of constraints and inter-dependencies and availability of resources on the overall shape of the schedule.
The planning process can be very time consuming and can require multiple sessions with the right people in order to achieve the best results.