Maybe you've heard the phrase "time and tide wait for no man." It's a little bit of a cliche, but that doesn't mean it isn't true...especially when it comes to IT project deadlines. Erratic and under/over-estimated timelines, so-called "scope creep", unexpected staff illnesses or supplier failures - these are just some of the things that could (and probably will) go wrong with your project. And because time is today the most common metric to measure efficiency, the schedule delays caused by these events can end up costing you a fair amount of money (in addition to a possible damaged reputation).
Is there a solution? Sure! Proper planning, well executed and taking account of potential pitfalls, is the sure-fire way of ensuring that projects are successfully implemented. Most project managers know this and spend a significant amount of time developing project schedules and delivery timelines. Where they often trip up, however, is in failing to realize that project planning is a continuous activity that must proactively and continuously take place throughout the project life cycle, and not one that ends with the receipt of the customer's advance fees.
In this document, I'll offer some tips to help you plan your next project and ensure that it comes in on time, under budget and at a high quality level.
First, let's look at some of the reasons for project delays:
- Over-ambitious estimates and incorrect task assessment: Often, project teams are unable to correctly estimate the time and effort required to complete given tasks, leading to overly-optimistic schedules. Customer pressure may also force teams to attempt to complete too many tasks in a compressed timeframe — a self-defeating strategy that ultimately risks the quality of the end-product.
- Unreasonable project scope: Often, some projects are too big for the time that's been assigned to them. Management (or customers) can be irrational at times, trying to squeeze in as many features and development work as possible per release, without practically analyzing if it is even doable.
- Lack of task clarity: Sometimes, no clear breakdown of tasks and team roles exists, leading to misunderstandings between team members.
- Lack of risk management systems: Some teams seem to live in a make-believe world, believing that they can rescue a project at the last minute and that all crises can be tabled to the next meeting. This isn't an appropriate response. All projects have problems; any one problem could destroy the plan and throw the project out of whack. If these problems are not identified and proactively resolved on an ongoing basis, things will only get worse.
- Lack of resources: "This project needs five developers. But we only have four. Never mind, we'll manage". Sound familiar? If so, know that it's not going to work — a project that needs five members isn't going to meet its deadline with only four. A variant of this problem is when a project starts out with the appropriate number of members, but then "loses" some of them to other projects along the way (usually because someone higher up decided they knew more about resource allocation than the project manager).
- Missing or damaged infrastructure: Projects are often delayed because the infrastructure — hardware, software, tools, documents — required to complete the project successfully is either unavailable or non-functional just when it's most urgently needed.
The Solutions (10 tips)
It's not all gloom and doom, though. Take the following measures to mitigate these issues and ensure a well-planned, well-executed, and timely project.
- Analyze the requirements in detail: Understand exactly what the project involves, down to the smallest details. Ask questions to clarify ambiguous areas. Finally, hire professionals to clearly document the business requirements, the functional specification, and the design requirements. Watch out for scope creep; it can single-handedly destroy all the work you've done. If the need arises, take aggressive steps to reduce the scope of the project, or to avoid adding unplanned new features that require significant integration time.
- Map available resources: Map available resources with requirements to ensure that there are enough personnel on site to complete the job. Identify all relevant infrastructure — hardware, software, human resources, tools, documents — required to execute the project well before the project development starts.
- Perform training and knowledge transfer: Include training, if any, as part of the project timeline. Don't treat training as something team members do on their own time, but account for it in the project schedule and budget.
- Identify risks: Identify the potential risks and create contingency plans to deal with them. Develop a back-up plan to meet the project deadline in case of unexpected process or personnel failures; this "plan B" acts are your support system when things don't go as planned.
- Estimate and allocate: Assign roles and responsibilities to team members and ensure each task has a clear owner. Use project management tools and Gantt charts to record who does what and identify start and end dates for each activity. Failure to assign clear responsibilities for each task can lead to overlapping responsibilities, duplication of efforts, excessive time spent on activities and inferior product quality.
- Modularize work: Break down main activities into sub-activities, until each activity is complete on its own and independent of other activities. Arrange them in logical order, and then start executing the smallest activity in the order of occurrence.
- Avoid too many meetings: Plan meetings to discuss the status of the project, or on an as-needed basis to address immediate problems. Long, unending meetings with no clear agenda and hence no clear outcome only waste time.
- Write things down: Document the failures and successes of the project. This is important; it acts as historical information for similar activities in other projects. Use a project dashboard to visually obtain a high level overview of the project and to measure the progress of project activities. Take stock of the project at each milestone, and update the project dashboard each time.
- Beware of follow-the-sun development: If there is a follow-the-sun development model (a continuous engineering environment with development happening 24/7 across the globe), ensure clear communication to avoid misunderstanding between co-located or cross-country-located team members. Coordinate well and regularly so that nothing falls through the cracks.
- Escalate issues: Escalate issues to management as they occur and brainstorm on solutions to problems. Trying to remedy problems after they've deteriorated beyond recovery is the last thing you need.
It should be clear that the key to a successful, timely project lies with proactive planning and time and resource management. Take the above tips into consideration, and nothing can stop your project from meeting its objectives and timelines. Good luck!