Probably the biggest tension you will have between you, your team and your boss is scheduling. Scheduling innovation can be tricky because how do you schedule something that has never been done before. It is always a sore spot since management wants it done yesterday, your team always wants more time and you are stuck in the middle. Scheduling innovation requires a pragmatic sense of what is achievable coupled with an understanding of how to push your group but not break them. Being reasonable and rational about schedules starts with understanding what needs to be done and planning the tasks involved to achieving your objectives.
Scheduling innovation is an art and everyone will have an opinion. Management will push for unreasonable schedules and you need to push back as best you can. In the end, it will take what it takes and the most important thing is to know where you are at and what needs to be accomplished. We will discuss the best way to do that next.
Scheduling Basics
Before we dive into the nuances of scheduling innovation, we first need to go over some of the basics of scheduling. The first is a simple equation for how long a task will take:
Duration = Effort / Resources
So, in order to know how long a task will take, you need to know how much effort it takes along with how many resources you can apply. All too often, even seasoned managers, plan a project based on the duration of the tasks and not the effort. It is important to understand the difference and base your project plans on effort. The reason is that figuring out the effort is much easier than the duration. The duration depends on resources and resources can be highly variable. Resources can be doing multiple things, have never done the task before or be on vacation. All of these variables can be taken into account as long as each task is in terms of effort not duration. A general rule of thumb is that your tasks should be in days of effort not hours or minutes – that is just too granular.
Cycles Of Learning
In addition to identifying individual tasks, it is valuable to group tasks into functional units or modules. These functional units should be meaningful to the broader project. Functional units can also be experiments or exploratory work. Defining groups of tasks in this manner creates Cycles Of Learning (COL). Innovation does have a lot of trial and error, so defining COLs shows that you understand that some of your project modules will require several iterations. Once this is all down, you can then determine each tasks effort and then you can apply resources to it.
Dependencies
Duration can also extend due to dependencies on other tasks. Dependencies are what needs to occur before a specific task can either start or finish. Knowing your tasks dependencies will allow you to properly schedule a project so you can accurately determine the duration. There can be all sorts of dependencies in a project but the most common one is that a task cannot start until another task has finished. Examples of these types of dependencies include: manufacturing time before product test, final integration of a system or a specification being completed. Getting the dependencies right will consume a significant amount of time. It will be a constant struggle and you will always need to double and triple check them.
Resource Allocation
Now that all of your tasks are effort based and your dependencies are in reasonable shape, it is now time to figure out your resources and their working time. All resources are not created equal. Some will have different working times while others will be based on some manufacturing process. The trick with resources is to set the working time correctly so that it reflects the actual amount of effort a resource can apply during the week. My rule on staff resources is they can only work a maximum of forty hours a week. I put all holidays as well as vacation time in. This is the only realistic way to do it since you cannot work your staff seven days a week. When you focus on resources availability, your effort based schedule will adjust itself when you assign resources to tasks. This saves a tremendous amount of time and allows you to run scenarios more easily.
Throughout the application of resources, it is critical to understand if you are double booking them. Doubling booking resources will give you an incorrect project duration and will lead to all sorts of havoc. Most scheduling tools, like OmniPlan or Microsoft Project, will have a resources pages that will show you how your resources are allocated. Anything over 100% is a bad thing and you will need to adjust accordingly. See why it is important to do effort based scheduling not duration.
Critical Path Analysis
So by now, you have spend tons of time on getting your tasks right, how they depend on each other and what resource does what. Now comes the fun part – critical path and slack analysis. By definition, there is one and only one critical path in a project. It is defined as the longest duration path that your project follows. Critical path analysis can also be defined as the series of interdependent tasks that have zero slack (more on slack in a minute). Understanding your projects critical path enables you to see where application of more resources might help pull it in. It is also a good sanity check on your skill at figuring out dependencies. If your critical path does not flow through all of your project milestones or it goes through a process that seems odd, then you probably has something wrong. Don’t get frustrated if you get it wrong the first time. This is an iterative process.
Slack analysis entails looking at your project tasks and figuring out how soon, from the end of the critical path, those paths complete. This analysis can help you rearrange tasks to minimize slack, which should, reduce the duration of your project. Another good use of slack analysis is in figuring out when tasks should actually start. It is common for a string of tasks to complete before they are needed. Understanding this allows you to spend time on either pulling in the critical path or absorbing slips in your schedule on non-critical path tasks. Since scheduling is more art than science, having some slack for certain tasks is a good practice.
After all that work, you now have an accurate schedule that reflects reality. All of your tasks are identified, resources are assigned, dependencies are correct, you understand the critical path and no one is double booked. This is a monumental achievement that is completely worthless once you start your project. Why? Well, projects don’t follow a nice linear course through your pretty project schedule. Rather, they take a non-linear path that is hard to see with a linear monitor. This is the reality of scheduling innovation – it never goes according to your linear plan. Now, it does not mean that the scheduling process is a waste of time. In fact, it is the most important piece of work you will throw away. The reason. Project schedules make you think about what will get in your projects way and what you need to focus on.
Key Project Indicator’s
I admit, I am being a bit extreme in that it is totally worthless – it is just totally worthless as a status monitoring tool. Monitoring your project will require a different set of tools that was secretly being developed while you were doing your detailed schedules. While you were working on getting your schedule right, you were developing the best way to track your project – key project indicators. Key Project Indicator’s (KPI’s) are mini-milestones that give an accurate picture of your project. KPI’s are those grouped tasks you created when making your schedule. They are the modules you broke your project into to make it easier to manage. Examples of KPI’s include: software modules or functions written, test cases written and passing, hardware subsystems designed, open bug rate or cycles of learning completed. The reason these are far better than your schedules percent completed measurement is due to rework and the non-linear nature of getting tasks done. It is all too common for a project task to be 80% complete for longer than the remaining 20% of allocated time. This is primarily due to reworking the task to get it right and your staffs inability to accurately predict when a task will get done. Having KPI’s allows you to realistically access your projects status by clearly defining what done is. Trends in KPI’s are far more valuable than percentage done on a task. KPI’s that directly measure the quality of a project, like defects created or closed, will always predict better than your linear schedule because they are dynamic in terms of what is really going on since defects, for example, cannot be scheduled. It is best to have KPI’s that are also tied to your intermediate milestones so that, from a macro-level, you can report where you are at.
Practicing the Art
You will gain accuracy the more you schedule. In reality, the best scheduled projects do slip. Even though it is not exact, it is important to have a detailed schedule. A properly scheduled project will reveal places where additional focus needs to be placed. It also shows you the critical path,which will allow you to adjust your resources or tasks to reduce. Knowing how tasks depend on each other enables better project resource allocation while also giving you much needed slack on some tasks. Establishing KPI’s is the best way to monitor your progress. They should be based on actual project work or a quality metric. KPI’s are the only way to accurately monitor where your project stands.