There are a lot of programmers who really don't like project management—they toss all things project management related into the "pointy haired boss" category and try not to think about them again. But if you're a job-seeking programmer, or a programmer looking to move your career ahead, then there are a few really basic things that could do you really well on an interview.
That's the topic of a post I recently wrote on Building Better Software, called "A Few Things Every Job-Seeking Programmer Should Know About Project Management" (that's part 1, and here's part 2). In it, I mentioned the triple constraint (or "iron triangle"). I think this excerpt sums it up:
There's an old (and somewhat cynical) project management saying: "faster, cheaper, better: pick two." What it means is that there's no way to reduce cost, shorten the schedule, and increase quality all at the same time. At least one of those things absolutely has to give.
But there's a reason that's a saying and not a law! All three of those constraints are related to each other, and there's almost never an easy, obvious trade-off where you can sacrifice one to improve the other two. If there were, project management would be a lot easier. It's really easy to fall into a trap of trying to do the impossible, but the first step in avoiding a trap is knowing that it's there. In this case, just knowing that every project is a balancing act between scope, time, and cost is a really good first step in making sure your project ends up running well.
Jennifer Greene and I talked about the triple constraint in the first edition of Head First PMP. I really like this graphic from the book:
(source: Head First PMP, 1st ed., O'Reilly 2007)
The idea is that you need to balance scope (the features that will go into the software, and the work needed to build them), time (how long it takes to build the software), and cost (in money or hours) in order to get your project to the level quality that you need. Any time your project changes, you'll need to know how that change affects all three constraints.
The funny thing about the triple constraint is that a lot of project managers don't actually learn about it any more. Instead, it's been replaced with a wider set of project constraints, including (but not limited to) time, cost, scope, resources, quality, and risk. Jenny came up with this really cute graphic for it when we were working on the second edition of Head First PMP:
(source: Head First PMP, 2nd ed., O'Reilly 2009)
I do like that graphic, and I think that it's important for someone studying project management to recognize that there are many constraints on any project. But there's still something really appealing about the iron triangle. And I definitely think it's still a really good way for a programmer who's looking to understand the basics of project management to get a handle on some important ideas.