Planning Scheduling Discussion
Why is it so important to pay special attention to project scheduling, and why should we apply scheduling techniques to our project developments? Learn the answer in the following lines. When a project is sketched, we usually know (or have an idea of) the time frame in which the project will take place. This is the first and most general information we usually agree on with the client and will be the base for the following steps to develop and deliver any software project. One of those steps will be to perform project scheduling , which will provide a frame for tasks such as allocating the needed resources, prioritizing the work, managing the timeline, and adjusting the scope. The following techniques apply to both classic Waterfall methodology and Agile approaches in all of its flavors. Believing that they will not fit for Agile methodologies is a /misconception that has arisen over time; however, these practices can be applied easily where iterations can be seen as sequential phases that are placed in chronological order and produce new delivered code. Project Scheduling is one of the most important activities of Project Management. The success of the project will be tightly related to the development of a robust schedule. We will present several techniques that will help create a solid plan . FIRST THINGS FIRST, WE NEED TO DEFINE THE SCOPE OF THE PROJECT Previous to any attempt to work on the project’s schedule, we need to clearly define its scope. At this point, it requires communicating relevant information to the project stakeholders. This will ensure that everyone agrees on the goals without introducing omissions and misunderstandings and allows future changes to occur under control. At this phase, requirements along with needed data, infrastructure, and deliverables should be defined at a general level. This will allow us to walk over solid ground, reduce risks, and provide clear expectations to all involved parties. LET’S EXPLORE THE TECHNIQUES FOR PROJECT SCHEDULING At this phase of the project, we will define several aspects such as the list and sequence of tasks, dependencies among them and estimations, resource availability and allocation, and milestones. Then, this scheduling model will be monitored and revised throughout the project development lifecycle. 1. CRITICAL PATH METHOD This method consists of performing an estimate of the minimum project duration and putting tasks in sequence that are ordered by dependencies. The resulting longest direct line of duration among tasks from start to finish will be the Critical Path . The whole project duration will depend on the duration of this. If there is a delay in any task that belongs to the Critical Path, the whole project will be impacted. As a consequence, tasks that do not belong to the Critical Path will have more flexibility to be adjusted over the project plan. When delays arise for Critical Path tasks, a technique called Schedule Compression can be applied to them in order to fix the issue. This technique will shorten the schedule without reducing the scope of the project or compromising the result by applying either Crashing or Fast – Tracking approaches . Bear in mind that this should only be taken into practice as a mitigation plan when there is already a deviation, but ideally, projects should not fall into this scenario. 2. SCHEDULE COMPRESSION: CRASHING AND FAST-TRACKING TECHNIQUES Going deep into Schedule Compression, when applying Crashing , we focus on adding more resources or adding overtime . We should take into account that this is likely to introduce more costs and risks to the project and that not all tasks will allow us to split them in order to be assigned to different people. This technique only makes sense when applied to Critical Path tasks; otherwise, it will not have any effect on the project timeline. If Fast-Tracking is applied, some tasks will be executed simultaneously or with some degree of overlapping. The idea is to complete the most critical tasks earlier. This is not always possible, and again, this is likely to introduce more risks to the project, so it should be avoided if not strictly necessary. ONCE WE HAVE PROJECT SCHEDULING IN PLACE, WHAT’S NEXT There are some tasks that will let us review the schedule developed and confirm that the plan is feasible in the way it was arranged. One of them, called Resource Leveling , will allow us to identify whether all the resources needed for the project will be available in a timely manner. The first step will be to define availability dates for each of the resources that will work in the project. Once we have that, those resources will be assigned to the project’s tasks. Generally, we only apply this technique to the tasks that belong to the Critical Path, which will guarantee the whole plan’s feasibility. Adjusting the schedule by minimizing risk impact will be another important review that should be considered. One technique to do so is called Risk Multipliers . We take the riskiest tasks and apply a multiplier to their estimation. By doing this, we reduce the probability for those tasks to fall behind the schedule by incrementing its estimation. Consider letting the whole project team review the resulting schedule to add more eyes to detect any issue that will likely provide new perspectives. WHAT ABOUT ESTIMATION TECHNIQUES In traditional methodologies, it is common to define the requirements that are part of the project’s scope and then get a list of all the tasks involved to achieve those requirements. Getting an estimation in hours of each task allows the manager to create the project schedule. This approach is called Bottom-up , as individual tasks are detailed and estimated before scheduling. This may lead to issues along the project lifetime, as changes introduced into the requirement definitions or scope makes this approach too rigid. Top-down techniques, more associated with Agile methodologies, tend to solve this problem by performing an estimate of general requirements first and getting into more detail once they are available. Two of the most known techniques are Planning Poker , where Fibonacci sequences are used to weigh the requirements, assigning lower numbers to small and less complex tasks and higher numbers to more complex tasks. This process is performed in a Planning Poker meeting, which is held by the team members. Another technique is called Affinity Grouping , where the team chooses one of the requirements and places it on a list. Subsequently, they take another requirement and put it before the previous one if they believe it is smaller or after it if they think it is bigger. THE SCHEDULING PROCESS MAY DEFINE THE SUCCESS OR FAILURE OF THE PROJECT Project scheduling is not an easy task as it has to deal with future events and uncertainty, so it has to be taken with the responsibility it deserves. It will identify the tasks and will get a series of events that will end in a project plan that will serve the project as a guideline to benefit the project as a basis for success. We have covered many tools and techniques available to help create the best, most efficient plan, which will be the base roadmap for successful project development.