Two of the main factors involved in project planning are resources and scope. If you manage your resources effectively, you will also ensure that your project stays in scope.
Editor's Note: This article is excerpted from chapter 3 of Fundamentals of Technology Project Management, by Colleen Garton and Erika McCulloch.
Resources are the inputs for each task, and deliverables are the outputs. Resources can be categorized into five main areas:
- Money (budgets)
Resources may be acquired, rented, or provided from within the organization or from the client, or they may be contracted/purchased from outside the organization.
This includes your project team, equipment/technology, supplies, and money. Time is intangible, so it cannot be acquired or increased without affecting the outcome of the project in some way. Managing project resources involves more than people management; it includes the management of equipment, money, and time. The number and combination of resources needed to execute a project is determined during the project planning phase of the project lifecycle.
Costs are a major resource, and they are determined and managed through budgets. The word budget often elicits groans and even feelings of near panic in some people. They are not as scary as you might think. You just need to learn how to create, track, and manage them. Your project schedule is your tool for tracking people and time resources; your budget is used to track your cost resources. Equipment and supplies resources are managed to some extent in both of these processes. For example, purchasing of equipment is tracked in your budget, but installing and setting up the equipment is tracked in your project schedule.
All five resource elements are interrelated and need to be balanced appropriately. Each of the five factors must be managed effectively and simultaneously for the project to be successful.
Your people resources include your project team, other company employees (operations staff, for instance), vendor staff, consultants, and contract labor. Assembling a project team and identifying required support resources with appropriate skills and availability are critical to your project. Resources must be identified in the planning phase of your project. You cannot commit to a project and a deadline if you have not yet found a vendor to supply necessary services.
When identifying your people resources, you need to ensure that you have not forgotten anyone. Identifying and budgeting for your core project team should be fairly straightforward. Identifying other internal resources such as quality assurance and testing, operations, technical support, marketing, and product management may not be as simple. If you identify these people or groups as resources, you need a commitment of specified time that will be spent working on your project. Telling your operations team that you need some support and them telling you that is okay and to just let them know when you need them is not going to be sufficient. You need to have a plan, and you need them to sign off on the commitment of time to your project. This is also true of resources being supplied by the client. For instance, they may have agreed to take on some level of quality assurance or testing responsibility for the project. You need to ensure that they have adequate resources and that they will be available when you need them. You cannot afford to be waiting around for the client to start testing if your whole team is waiting for them to finish and sign off before proceeding. Contractor, consultant, and outside vendor resources need to be planned in the same way. For all of these different resources, you need costs. You need to ensure that you will stay within budget, so all these costs need to be documented and approved before you start.
It is vitally important that everyone understands his or her own roles and responsibilities, those of everyone else on the team, internal and client resources, and the roles and responsibilities of all contractors, consultants, and vendors who will be involved to any degree in the project. This information should be documented and shared with your team. Contractual agreements need to be in place with any external resources. Some kind of written agreement also needs to exist for any internal resources that are not part of your project team. The exact way the agreements work will vary from company to company, but be sure that you have them. External agreements will usually need review by a legal team. The company implementing the project will most likely have a process that you need to follow to ensure that this is done correctly.
The use of contract labor is becoming increasingly common in technology and IT projects. Some companies maintain a small staff of experienced people to serve as team leaders and employ staffing agencies to provide contract workers for the project teams. Other companies employ the majority of their staff full time and use contract workers for specialized work. There are advantages and disadvantages to using contractors. Some of the advantages are that the company doesn’t have any obligation to the contractor after the completion of the project. When the project is finished, the contract staff member is bid farewell and thanked for a job well done. The company is paying a set hourly rate for the contractors and is not liable for benefits, bonuses, vacation/sick pay, or unemployment claims. Contractors are usually brought in to work on one specific project, so the chance of someone stealing them from you midproject to work on something else is minimal. If you need a developer with specific, specialized technical or domain knowledge for just this one project, then hiring a contractor is the most efficient way to fill that role. As contractors are being paid hourly, they are not usually adverse to working overtime when necessary.
On the other hand, there are also disadvantages to using contractors. Unless you have worked with the person before, you are really not sure what you may be getting or if their skills are really as advertised. Normally, when choosing team members, you have some previous knowledge of their work ethics and team interaction from observing or working with them on previous projects. With contractors, you have minimal information about their work ethics and personality types. When companies hire a new employee, there is usually a rigorous hiring process that involves multiple interviews and background checks. With contractors, you are relying on the staffing agency to have done this on your behalf. One big problem with using contractors is that once the project is finished, they take with them all the knowledge and experience that they gained from it. If their code is not well documented or their project documentation is not accurate or updated, it can take a lot of time and effort for another team member to come up to speed sufficiently to resolve any post-project issues or bugs.
Most companies will tend to use the same one or two staffing agencies to supply all their contractors. Once a good professional relationship has been established with an agency, it becomes much easier to find the kind of contractors that you need. If the agency understands the company culture and the team dynamic, they will try to find you contractors that fit well into your environment as well as have the appropriate technical skills that you need. If you are using contract staff, you must remember that they are joining your team as bona fide team members, and you need to treat them with the same dignity and respect as the rest of your team. You also need to hold them to the same standards as the rest of your team. They need to be fully aware of their own roles and responsibilities, those of the other team members, and additional project participants. They need to be aware of the company and the team processes and procedures and understand the goals of the project in the same way that the rest of your project team does.
Consultants may be hired for the duration of the project or for one specific part of the project. Consultants are usually experts in a specific field or fields. They may work onsite or offsite. Depending on the nature of their involvement in your project, they may act more as advisors than developers. Whatever their role, they will need to work closely with the project team and with you, the project manager, to ensure that information is flowing effectively in both directions. Consultants sometimes work for an hourly fee and sometimes for a flat fee. If they are charging an hourly fee, you will need to closely monitor this expense to ensure that you are not going over budget. Make sure that the consultants are staying on track and that they are meeting deadlines. Ensure that you have a contract in place that specifies exactly what you are engaging them to do. Let them know that no additional work outside of the contract can be approved without a new contract being drawn up. You do not want your consultants doing additional work that they assume you need and then billing you for it! You may need to keep a close eye on the time spent working on your project to ensure that they are not neglecting your project to work for other clients. If your consultants are working offsite, a weekly status meeting is essential to making sure that they are on track for their deliverables.
Managing outside vendors can also be tricky. You will need to monitor progress closely to ensure that they are on track to deliver exactly what you ordered and that it is delivered on time. Vendors often over-promise and under-deliver. If you have a drop-dead date for what you need from the vendor, ask for it two or four weeks earlier than that. This will give you some wiggle room if they run into problems or if they turn out to be unreliable. As with the consultants, ensure that you have a contractual agreement and that they have a schedule from you detailing the deliverables that they have agreed to.
Internal resources outside of your project team will often be required for certain aspects of your project. Your IT group, QA department, data center, or operations team may be needed to set up systems, order hardware, implement some parts of the project, conduct security reviews, test the product, and so on. The commitments to deliver or participate in these tasks should be documented together with time lines and costs (work completed by other departments within your company is not free—those people have to be paid, and it is likely coming out of your budget!).
The project may require production environment hardware/software. This is especially true for web products. You may need servers, databases, backup and restore systems, test systems, operating systems, application server software, web server software, database software, and so on. The list is endless! The project team will also require development hardware, software, and tools. This equipment includes the facilities, computers, printers, desks, communication equipment, development and staging servers, CD burners, software, hardware, licensing for software and hardware, and books. This list, too, can be endless! It is the project manager’s responsibility to identify all the equipment needs for implementing, testing, and releasing the final project. Some of the equipment will likely already exist and will not need to be repurchased. You should not be trying to get your company or the client to buy everything that your heart desires. The object is to make sure that you identify what you need for the project. The key to managing equipment resources, much like managing people resources, is to make sure you have the right equipment in the right place at the right time. Any necessary supplies, licenses, or operating manuals should also be provided. There is no point in having a lot of hardware sitting around if it is not possible to operate it due to lack of supporting materials or equipment. You may also need the right people resources to support the equipment resources. If they are not available to set up your equipment when it arrives, you are going to have a scheduling problem.
Creating a desirable environment in which the project team can be effective and successful is the responsibility of the project manager. A factor that you have to consider when building your team and your development environment is whether the team will be working on their home turf, at the client site, or at another remote site. If they will be traveling or working offsite, they may need laptop computers. If they are working at the client site, is the client providing a development environment? Is the client providing this service free of charge, or do they expect you to pay for it? If your team is working at another remote location, do you need to pay rent for the facilities and equipment? You also need to consider what specialized tools your team may need to implement the project. If you have the tools at your home site but your team will be working at the client site, will they have remote access to the tools? Do they have the necessary networking and Internet access that they need to connect to the home office? These are just a few of the funding questions that you will need to answer to accurately estimate your equipment resource needs. Equipment resource planning needs to be done early in the planning phase of your project to ensure availability when you need it. If you order equipment one week before you need it and discover that it will take ten weeks to receive your order, your project is going to be in trouble before you have even started!
Management of your equipment resources is a requirement for managing your people resources. Your team members rely on the equipment to be able to implement their project tasks. If you are not effectively managing your equipment resources, your team could come to a standstill. You may need to get more creative when managing equipment resources than with other resources. If your project depends on it, make sure you have a plan A, a plan B, and, if possible, also a plan C.
For example, your project plan specifies that the development team will be working on a new development server that was ordered during the planning phase of the project and is due to be delivered two weeks before development is due to begin. This task is on the critical path but is not considered to be a high risk as it is due to be delivered early enough to allow a week for installation and setup plus an additional week’s buffer zone before the team needs to start work. One week before the server is due to be delivered, you receive a phone call from the supplier telling you that the server is going to be two weeks late. So what do you do? You could try to push the start of development back a week and reschedule the setup of the server for two weeks later than it is currently scheduled. This is not a great option as you will start your project one week late or, if there are server issues, possibly even two weeks late. Another option is to see whether you can find a spare server in-house that you can “borrow” for a period of time until you receive your server and have the time to take the servers down and swap them out. This is a better option, but you still have some server downtime to deal with. You are also assuming a level of risk by making a midproject development environment change. A much better option would be to negotiate with the supplier to see whether they can offer you a substitute server that is comparable to the one you have on order. The chances are that the supplier will have a server either one step up or one step down that will still work for you. If you take one that is one step up, ensure that you are not charged any extra for it. However, if you take one that is one step down, negotiate a lower price. If neither of these options is available, you could ask the supplier for a loan server to use until your server is delivered. As a very last resort, it might be possible for your team to start working on the project and saving all their work locally (on their desktop or laptop systems). They will need to be very meticulous about backing up the data every day, which could be tedious, and there is some level of risk involved, but it is better than not doing anything for a week or two. As I said, be creative and think of as many options and plans as you can, and be sure to have a couple of backup plans just in case your first one doesn’t work!
This is a good process to follow for anything that is outside of your direct control; by this, I mean any work or service being provided from outside of your core project team. You can prioritize and escalate issues on your own team, but you are relying on someone else to do that in other groups or companies. Always have a plan B just in case there is a problem. As you gain more experience managing projects, this kind of planning will become second nature to you. You will learn not to trust 100 percent that something being managed by someone else will definitely be completed on time. You should hope for the best and plan for the worst!
New technologies emerge so fast these days that you may find the original system you negotiated at the beginning of your project is no longer the latest or greatest solution available. Work closely with your suppliers, and build strong professional relationships with them. If you are partnering with your vendors rather than just telling them what to do, they will be proactive in letting you know about changes or opportunities that may impact or benefit your project. They will work with you to get you the best price and proactively search for alternative or better solutions. Having said all this, you do need to be careful about using new technology on projects that cannot tolerate a high level of risk. If you are looking for stability and proven performance/reliability, don’t consider technology solutions that have been on the market for less than a year. No matter how long the technology or system has been on the market, ask for contacts at other companies that have implemented the same solution or are using the same technology, and be sure to follow up with them. You can learn a lot by talking to the technical teams at those companies. Your supplier may tell you that ABC Company is using the same solution and it is working just great for them. When you call ABC Company, you may find that, though they are using the same technology, they are using it for a completely different purpose and are not utilizing most of the features and functionality that you need for your project.
You will need time to work with your suppliers, and some of your technical staff may also need time to research recommended technology solutions. Make sure that you allow time in your project schedule to accommodate this. You should also allow extra time for equipment installation, setup, and testing. You should never assume that your equipment is going to work without a bit of tweaking and testing. If you have ever received a new computer system, you are well aware of what I mean by this. There is always a lot more setup and troubleshooting than anticipated! Remember, developing a high level of skill in managing equipment resources won’t be of much use to you unless you can also stick to the project schedule. Schedule and time management are critical for successful project management.
In addition to equipment, your project team is going to need some supplies— expendable daily items. Supplies will include stationery and office supplies such as notepads, sticky notes, printer paper, writing utensils, highlighters, staples, organizers, planners, desk/wall calendars, files and folders, flipcharts, and so on. It may also include other supplies such as food and beverages for meetings and specialized supplies that are unique to your project. Though many supplies are low-cost items, over the course of a project, these costs can add up. Your organization may or may not require that you keep track of supplies costs on a per project basis.
Time is intangible, but it still needs to be managed. You may think that as long as you have enough people to complete the work, the equipment you need, and the money to pay for it, where does time fit into this equation as a resource? You are assigned a set amount of time to implement your project. If you need more of it, you have to ask for it, and you will likely need more money to pay for it. So why can’t you get more people and pay for them with money already available in your budget without asking for more time? Well, that doesn’t always work. For example, imagine that you are one week from your project completion deadline. You have twenty days of work that still need to be completed and five full-time developers available. You cannot necessarily assign four engineers to work five days each or five engineers to work four days each to complete the task. The task may need to be completed by one person, sequentially, over the course of twenty days. This is true for all of your project scheduling. Some of your tasks may be able to be split between two or more people, but the majority of them will need to be implemented by one person, and throwing more people resources at the problem may not resolve it. If your development server arrives one week late and you need one week to set it up and test it, you cannot ask five engineers to work on it for one day each or ask the test team to work concurrently with the setup team to save time. You still need a week (or five days) of calendar time to complete the task. Time is often the forgotten resource. If it is not managed appropriately, it can run out, and once that happens, it is inevitable that your project is going to be late or is going to be delivered with some functionality missing or compromised.
Once you have your required equipment and people resources identified, you need to make sure that you have the money to pay for them. Managing money as a resource is not always an easy process, especially if you don’t like finances. If the thought of managing money makes you break out in a cold sweat, you need to get over your fear, and fast. Managing money and project budgets is a huge part of a project manager’s responsibilities. Managing money includes all costs associated with the project. These costs include tools, people, equipment, testing, measurement, training, employee motivation, development environments, build systems, desktop environments, production environments, and travel. Depending on your project, you may need to budget for all, or some, of these. Depending on how the budgeting process is structured at the company implementing the project, some of these costs may be budgeted outside of your direct project costs. For example, if you are working on an internal project for a company that develops its own products, you may have separate budgets for all, or some, of your people- and equipment-related costs. The salaries, development environment, development tools, supplies, facilities, employee motivation, training, and training-related travel may all be included in your “administrative” or “run the business” budget, and only the costs uniquely and directly associated with your project may be in your actual project budget. Those costs would include special tools or technology required to support the project, contractors and consultant fees, vendor costs, travel related to the project, and project equipment. Different organizational and project structures organize budgets in different ways. You still have to manage all the costs, but you may be managing them independently of each other.
Each project feature or task will have a cost associated with it, whether it is for labor hours for your team members or the purchase of your staging server. Within larger companies, there is usually a designated person or department who is responsible for making the purchases on your behalf. There are pros and cons associated with this method of procurement. On the plus side, it saves you time, as you don’t have to do all the legwork working with suppliers. It also allows the company to negotiate special rates and discounts and to manage those costs closely. This may mean that they are managing the equipment part of your budget for you, which will save you a lot of time tracking it. The negative side of this is that you may be limited in whom you can order from. Your company may have purchase agreements with a limited number of suppliers, and if you want to order from elsewhere, there may be a long and painful process to go through to get that approved. If it is not approved, you may end up having to order equipment that is not really what you want or need and may require some workarounds to make it work for your project. (This happens more often than you would think in larger companies. The process is running the company/project rather than the company/project running the process.) You also lose the personal contact with the supplier, which can make it harder for you to follow up to ensure that your order will arrive on time and that the procurement department did not forget to order any accessory items that you needed. In smaller companies, you may be the person who is responsible for all the negotiation for your equipment.
Want to learn more about project management best practices now? Pick up your own copy of Fundamentals of Technology Project Management, by Colleen Garton and Erika McCulloch - available and on sale at the MC Press Bookstore today!