Project Management

Basic project management for programmers: Balancing features, resources, and time

How do you respond when a project timeline has been shortened by two weeks? That's one of the problems that a basic knowledge of project management can solve. Jerry Loza explains how understanding three key factors can help you avoid a host of problems.

Does it feel like more and more pressure is being placed on you? Is it getting harder to meet those deadlines? In fact, are there people in your department who have never met a deadline? The set of skills required to keep projects on time and on budget and to avoid these types of problems all fall under the discipline of project management. In this article, we’ll examine the three “forces” that are at play in any project, see how they interact, and explain how you’ll benefit from understanding their dynamics.

Not your problem?
As a programmer or analyst, you may not think that you should have anything to do with project management. That’s the team leader’s and project manager’s job, right? Not really. At a minimum, if you understand some of the basics, you can anticipate the situations that will directly affect you on a project. In the best case, you may even be able to influence the project plan to some degree.

Three forces
Three basic forces are in equilibrium on any IT project, and your ability to manage these factors will determine your success on the project. The three factors—features, resources, and time—are all linked.

Features
Features basically refers to the amount of stuff in the programs, which of course is directly related to the amount of work that will have to be done. By “stuff,” I mean options, functionality, screens, windows, reports, interfaces, and anything else you can put into a program.

Resources
Resources are the things you can use to accomplish the task. People, computers, available time on a test system, and training are all resources. For the most part, these all equate to money. How much the company is willing to spend will affect what resources you have available. If you need more resources, it will cost more money. Simple. It is also important to keep in mind that further up the corporate food chain, resources may be viewed only as money.

Time
Clearly, time refers to how long you have to complete the project. There are several factors here:
  • How long the task should actually take given the resources available
  • Market factors/pressures
  • Management’s idea of how long it should take
  • Users’ desire for the product under development
  • Users’ desire for some product in the backlog (behind the one you are working on)

The balancing act
For any project that has a hope of successful completion, these three factors are in a balance of sorts. You can’t significantly change one without a change in the others, and even then there are limits to what can be changed before it becomes impossible to compensate. Consider the following scenarios, which involve adjustments to feature sets and deadlines.

More features
What happens when features, such as a new report or screen, are added to a project (a phenomenon known as scope creep)? If the project is to keep its delivery date, resources of some kind must be added to the project. If resources are not added, more time will be needed to complete the project. There is no escaping this relationship. An attempt to add features without a corresponding change to time or resources will only result in lower quality and produce a great deal of stress for the development team. And do you know what? The project will still be late.

Less time
Guess what marketing just said? They need the product to launch three months sooner. Worse yet, your manager agreed to it. Not a problem—but don’t forget the relationship. If the project must be completed sooner, either more resources are needed or features must be cut. No two ways about it. Notice also that this is the situation you’ll be in from the start of a project if you agree to an unrealistic delivery date.

Apply your knowledge
Understanding the relationship among these three factors will give you leverage you need to keep your project on track. What do you do when you’re told your set of programs needs to be finished two weeks early? You simply ask which features the users will forgo (reduce features) or ask who will help with setting up test data (add resources). If someone wants to add three new order screens…no problem. Which other features will they do without? Are they willing to accept it two weeks later?

Why are you able to respond like that? You now understand the most basic law of project management: the relationship of features, resources, and time. Also, a funny thing may happen when you respond to a user in this way. You may find that those extra reports, screens, or other must-have features really were not that important to the user after all.

In a future article, we’ll look at some particulars associated with each of these key factors, including the effects of adding too many resources and techniques for estimating your time. However, for now, stay cognizant of this basic relationship—and don’t be afraid to apply it.
0 comments

Editor's Picks