Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming Books Media Book Reviews IT Technology

The Principles of Project Management 125

zedguy writes "Ask someone what 'project management' is and you're liable to get a few blank stares — it's one of those fields people have heard of, but probably have problems pinning down a definition. So that is what the first section of the book does: provides a definition that can be summed up as applying tools and skills to complete a project. That then leads to what exactly is a "project": a set of tasks with a time-frame and goal of somehow adding value. So yes, the introduction does involve a fair bit of terminology that isn't going to be familiar to many readers coming from a coder's background, but there's a helpful appendix that lays out many of the terms. Just as important, the introduction explains what project management is not, some of the misconceptions and why it's good to know." Keep reading for the rest of Zoltan's review.
The Principles of Project Management
author Meri Williams
pages 204
publisher SitePoint / O'Reilly
rating 8
reviewer Zoltan Hunt
ISBN 0-9802858-6-0
summary A practical introduction to project management
With the definitions out of the way, readers then get into the start-up tasks. First, there's looking for projects (find opportunities), deciding is it's a good opportunity (this is a bit of office politics — you want to know soon if the your project has the necessary support from management) and even if the task warrants a project — one of the key points is that a project is not on-going maintenance — it has a goal and a completion date.

Once you have decided to undertake a project, the next steps involve a proposal, identifying stakeholders, setting up an organizational chart and establishing communication protocols. This is the soft skill side of project management — a lot of the work is keeping the people the project is for interested and informed on where the project is heading. Much of the advice is practical — including dealing with the stakeholders who just aren't that interested in your project and picking a good project board — the less the better. Finally, once this is established it's time to make sure everyone is on the same page and agreed on the deliverables (the specific things the project will achieve).

By chapter three ("Getting the Job Done") we're into the actual material many readers (including myself) think of as project management — setting schedules, breaking deliverables into discrete tasks. For that, there's a lot of practical advice here — especially around making estimates and communicating them to stakeholders and team-members so they are not mis-interpreted as wild guesses or hard dates. Particularly good was the advice on refining estimates from a general size (is it a small, large or extra-large task), then, as the date got closer, change it to a more accurate estimate. As well as measuring performance, some management tools like work-flow and Gantt charts and issue lists are introduced in this chapter.

The last two chapters look at managing your team and completing the project. The "Keeping it smooth" chapter gives a good overview of the people management skills you will need working with team members. There's a fair bit of overage of team building (forming, storming, performing and adjourning) and a bit of coverage of collaboration over distances. Having done some small group management in the past, I think it covers all the bases well and it's applicable outside of project management as well.

Like many of the new SitePoint books this book explains a complex topic with a few illustrations and a clean layout. They're using that humorous information schema (light-bulb, bicycle horn, hand grenade) to good effect. One example of this is in Getting Started chapter: There is a section talking about what goes in a Project Initiation Document (PID), and there are break-out boxes on what it is not meant to take the place of.

For an example of the layout, the "Keeping it Smooth" chapter is a good example of how this book is organized; Topics are broken up by headings with points arranged as lists of short paragraphs, which makes it easy to skim. While it's a small book — 200 pages, about 25x20 cm — it's still good to be able to skim.

The glossary covers the particular usage of words in the project management domain.

Appendixes A-C list some tools,other resources (books and blogs) and C provides a list of qualifications and associations.

For a topic I was quite unfamiliar with when I started, I'd recommend this book as a good overview to the topic. The chapters follow a chronological order through a project — from picking a project — including those to avoid — planning and executing, managing the staff and stakeholders and finally, finishing your project and handing it off.

The author, Meri Williams, writes two blogs: GeekManager and Meriblog which readers might want to check out for further material. While each field has it's jargon, project management has a number to learn — and this book does a good job explain it.

You can purchase The Principles of Project Management from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This discussion has been archived. No new comments can be posted.

The Principles of Project Management

Comments Filter:
  • by mediocubano ( 801656 ) on Monday June 23, 2008 @02:34PM (#23906945)
    It seems to make more sense to me when I think of project managers as time accountants. They have time budgets and scopes and reports and things that relate along the lines of a financial manager running a business.

    Only Project Managers have completely different names for those things, but the better ones do a lot of time reporting and time budgeting.
  • Actually... (Score:3, Insightful)

    by Paranatural ( 661514 ) on Monday June 23, 2008 @02:35PM (#23906977)

    I'm pretty certain that many people with a 'coder's background' will be all too familiar with some of that terminology, after they've been in the workforce a year or two.

  • by teknopurge ( 199509 ) on Monday June 23, 2008 @02:43PM (#23907121) Homepage

    "Project manager" and "Architect" are mutually exclusive. You can't be an expert in both, let alone have the time for both.

    Regards,

  • by zappepcs ( 820751 ) on Monday June 23, 2008 @02:43PM (#23907125) Journal

    Probably one of the most interesting projects I've worked on to date is Overseeing design consultants for an FAA funded Residential Sound Insulation Project. What made this a challenge was having to work with Airport Technocrats, Acoustic Engineers, General Contractors, Mechanical Engineers, Architects all in the same room at the same time. None of which having the desire to understand what the other did, and all believing his or her aspect of the project was most important. Insert politically motivated agenda's and viola a nightmare to oversee.
    Ok, change the job titles to any you like and you have defined the (IMO) basic problem of a project manager. Technical politician == project manager?

    Succinctly well stated.

  • Comment removed (Score:5, Insightful)

    by account_deleted ( 4530225 ) on Monday June 23, 2008 @02:43PM (#23907127)
    Comment removed based on user account deletion
  • by glgraca ( 105308 ) on Monday June 23, 2008 @02:45PM (#23907143)

    MS Project paves the way to waterfall projects, mainly because most managers don't understand iterative development.

  • by Actually, I do RTFA ( 1058596 ) on Monday June 23, 2008 @02:45PM (#23907149)

    Well, Hell, if I knew what my tasks were, I wouldn't need a project management tool. I gave up on it completely.

    Yeah. One time I bought QuickBooks, and it wanted me to create a bunch of accounts and set up transactions and everything. Hell, if I knew anything about accounting, I wouldn't need accounting software.

    Tools are sometimes designed to be used by professionals, as a means of them doing their job; not as a substitute for professionals with a 95% accurate wizard.

  • by Mongoose Disciple ( 722373 ) on Monday June 23, 2008 @02:52PM (#23907243)

    MS Project paves the way to waterfall projects, mainly because most managers don't understand iterative development.

    I'd say the problem is more general: most business people don't understand iterative development. They want hard deadlines and schedules and guarantees, even though software development doesn't really work that way.

    Essentially, they stick their heads in the sand and want software development to be just like manufacturing.

    Give most businesses a choice between a waterfall development PM and an iterative development PM, and they're going to pick the waterfall guy because he's willing to give them a (probably very inaccurate) deadline of when the whole giant project will be done.

  • by poot_rootbeer ( 188613 ) on Monday June 23, 2008 @02:54PM (#23907279)

    No; managers who do not understand iterative development pave the way to waterfall projects. Sometimes those managers use MS Project.

  • by vvaduva ( 859950 ) on Monday June 23, 2008 @02:59PM (#23907335)
    Focusing on time alone can lead you in the wrong direction. PMI offers some free information on their website on Project Management (pmi.org) that can help you get some hand on PM from a general overview perspective. It's about managing all resources, not just time or money and ultimately PM is about efficiency. Time is just one piece of the puzzle. One project can be closed ahead of schedule and be crap at the same time.
  • by glgraca ( 105308 ) on Monday June 23, 2008 @03:06PM (#23907451)

    If your knowledge is incipient and your tool provides an inadequate abstraction, you will veer towards bad habits. If you're good at OO, you can do it even in Perl. But if you're not, you will probably get some nasty habits.

  • by metlin ( 258108 ) on Monday June 23, 2008 @03:31PM (#23907891) Journal

    Not really.

    I'd say that Project Management involves juggling three things - Schedule, Scope and Budget (think of it as a triangle).

    Usually, any change in project direction, requirements, resources or funding affects one of the 3, and you need to juggle between the 3 to find an optimal state.

  • by theshowmecanuck ( 703852 ) on Monday June 23, 2008 @03:55PM (#23908265) Journal
    I don't know why iterative development excludes deadlines. Deadlines are important for businesses. If they can't meet a deadline for a product to be released, people eventually ignore you and buy the competition's product. Even if it sucks. I realize that sometimes it is better to let a deadline slip than to ship a crappy product (in fact I advocate it as my sig implies, and most PMs forget), but you should at least try to be close. Now I can't wait for my copy of Duke Nukem Forever to arrive.
  • Re:Sad but so true (Score:3, Insightful)

    by spaced-cadet ( 922123 ) on Monday June 23, 2008 @04:02PM (#23908399)

    Large software projects can succeed but they require

    1) A PM experienced in software development
    2) Good communication and trust between the PM, the developers and the client
    3) Support from management, especially in making the correct resources available to the project at the correct time

    In my experience the two most common factors that contribute significantly to the failure of a project is poor specification and constraints exerted by the rest of the business on key resources.

  • Re:Is this (Score:2, Insightful)

    by withoutfeathers ( 743004 ) on Monday June 23, 2008 @04:10PM (#23908521)

    like the Cliffs Notes for the PMBOK [wikipedia.org]?

    The bad news is: the PMBOK IS the Cliff Notes version of project management.
  • by cowscows ( 103644 ) on Monday June 23, 2008 @04:19PM (#23908645) Journal

    I'm a couple years into my architecture career, and I've been working at a firm where there's basically zero organization. What that means is that everyone gets put in charge of their own projects and is basically left to fend for themselves (even the summer interns.) It's a very inefficient and strange way to run things, but somehow the guy running the firm has run it that way for decades and still manages to get tons of work, so he'll probably never change.

    But I'm not going to refute your point, my experiences actually reinforce it. The first project that I was in charge of (started less than 6 months into my architectural career)was an absolute nightmare for me. The biggest problem that I had was in terms of understanding the process. That's something that you can't just sit down and figure out, no matter how many hours you put into it, it's something that can only really be learned through experience. I think it's even more of an issue for architecture than it is for something like your average software project, because there are a lot of very specific hoops that a building design has to go through in terms of government regulations/building codes/etc. Lots of little things that aren't necessarily hard to deal with, but if you don't know that they're an issue and don't deal with them at the appropriate time, you're going to have some serious headaches somewhere down the line.

    It was a ridiculously stressful experience for me, and while I learned a lot, I feel like I learned more about how not to do things, instead of how to do things. That's bad, because while there might only be a few or even one right way to do something, there's usually thousands of wrong ways to do it. So I'll just make a bunch of different mistakes next time.

    The other thing that you're spot on about is the ability to make assertive decisions based on experience. Lacking in experience, I was very reluctant to make decisions on many issues, and you can be sure that the contractor could tell I didn't know what I was doing. Many more headaches resulted from that.

    I've read articles and interviews of college kids where they say that they were hoping to get a job as a consultant. I can't imagine why anyone would want to consult with someone who just got out of college.

  • by Brigadier ( 12956 ) on Monday June 23, 2008 @04:29PM (#23908775)

    Though project fiscal performance is important I think the most important aspect of a 'qualified' project managers job is knowing what to do when things do not go as planned. I think the best example of a project manager would be

    General Leslie Groves
    http://en.wikipedia.org/wiki/Leslie_Groves [wikipedia.org]

    who's responsibility it was to keep everyone on task and on schedule. By taking on planning and logistics he allowed the scientists to focus on what they do best.

    Which is the mark of a good project manager. The ability to take away useless task and decisions allowing you to do what you do best as a team member.

  • by glgraca ( 105308 ) on Monday June 23, 2008 @04:57PM (#23909217)

    Iterative development does not exclude deadlines. The main ideia is that you have to constantly review your plans, adjust to new information, and incrementally build your understanding of the product as well as the product per se. Of course some managers prefer to just lay the plan down and shout at you until you make it happen: it is easier for them not to have to think and replan all the way. I like to emphasize the point that your understanding of the problem at hand evolves along with the project. Building software is a creative process all the way, so it makes no sense to make all your plans upfront. Nobody tells an architect when to have the design for the doors, and then when to have the designs for the windows, then the bathroom, etc, etc.

  • by CodeBuster ( 516420 ) on Monday June 23, 2008 @05:01PM (#23909285)

    and one of those projects was run by a real textbook case of a nearly psychotic bully
    In fact there is an anti-pattern [wikipedia.org] specifically for that type of manager: cage match negotiator. The cage match negotiator takes a "win the argument at any cost" approach to dispute resolution, up to and including driving other team members off the project. The name comes from the cage match [wikipedia.org] format in wrestling where multiple wrestlers enter the cage but only one exits victorious when the match is finished.
  • by Anonymous Coward on Monday June 23, 2008 @05:07PM (#23909375)

    I don't know why iterative development excludes deadlines.

    It doesn't. Depending on your implementation, of course.

    Some approaches to iterative development have features but no deadline. The project is done when all the features are done, and no sooner. Tools give you projections on when that will be.

    Other approaches to iterative development have deadlines but no features. Or rather, no guarantees of what features will be available by that deadline. This is sometimes called "time-boxed development." You say, "Ok, we will definitely spend the next three months working on that. We will give you a release on exactly that day. What will be in the release is whatever we managed to get done in those three months."

    What iterative development does not give, when done properly, is both a committed list of features and a hard deadline. Why not? Simple: because in the vast majority of cases, a team will fail to deliver on these promises. This is largely due to a lack of process control (features changing during development, making the release an impossible-to-estimate moving target), misestimation, and discoveries (now that we have written this exactly to spec, we can clearly see why it utterly sucks, and why we need to change it all around right now).

    I have had many conversations with executives/managers who say, "ok, this time, let's make sure not to change the requirements once we get started, and to put a lot of effort into our estimates to make them accurate. If we do that, we can have commitments on both features and deadlines, right?" And then, despite these promises, the requirements change anyway, the estimates turn out to be inaccurate, and the deadlines are missed, and everyone is upset.

    If you are in an environment like this, it is better to not make promises, than to make promises and break them. Sell up the adaptability of your design process (sure, we can throw in your new idea right now!) as the benefit that justifies the lack of hard-and-fast promises of both features and delivery dates.

  • The top 12 techniques that are used in real life:

    1. The "Sunk costs" idiot: "There's not enough time to do it right, but there's always time to do it again."
    2. Wishful thinking from the Monkeys-Flying-Out-The-Ass-With-Ouija-Boards department;
    3. "We promised this by X date so that's how long it should take";
    4. Throw some numbers at the devs and see how much they scream;
    5. Throw some numbers at the devs and tell them that if they're any good they should be able to beat it easily ...;
    6. Ask for a guestimate, cut 20%, and make it into a hard date (and when it takes more than X, throw "But you said X" back at you ... when you actually said "between X and 4X);
    7. Ask for a guestimate, cut 50%, cut resources 25% "because everybody always include padding when they make estimates" and make it into a hard date;
    8. "Our competitor is going to be shipping on such-and-such - we need to beat them!"
    9. "We have a quote from XYZ for $x and $y months - why can't your team beat that?"
    10. "Here's an outline of what we want - you have X time in which to complete it."
    11. "Here's an outline of what (THINK) we want (WARNING: This is what we want TODAY - MAY change tomorrow, DEFINITELY will change by next week) - you have X time in which to complete it."
    12. "Come on, you guys are supposed to be good at this. Why can't you tell me how long it will take (just seconds after being given the vaguest description of what they have in mind, inviting YOU to do the Monkeys-Flying-Out-The-Ass-With-Ouija-Boards bit)

    The things all these have in common are:

    1. They're all real-life, actual examples (real life IS fucked up, and George Carlin was an optimist);
    2. they show a "laying out of specifications and planning is a waste of time ... just code it!" mentality,
    3. they attempt to play off on the teams'/individual devs' egos or insecurites, rather than to their strengths.
    4. they guarantee failure.

    So what happens is everyone attempts to "negotiate" the length of time something will take, rather than realizing that it's not something that is negotiable. If it takes X time, it takes X time, all things remaining equal.

    That old saw - "price | quality | speed - pick any 2" was optimistic. Going too fast inevitably results in both lower quality and higher costs down the road, as bugs that aren't fixed at an earlier stage end up being either more expensive to fix, or show-stoppers. Planning for quality initially takes more time that *seems* unproductive to *cough* "certain types of people" *cough* but it's also, in the end, cheaper, and quicker. Problem is that too many people think that development is just "throwing code together, finding and fixing the bugs, and deploying".

    "Price, quality, speed" - either expend the time to get high quality, or you'll waste money and any speed gains are temporary at best. Instead of cutting quality, cut feature scope, and kill off any attempts at feature creep - that's where the biggest problems are. If whoever is managing the project hasn't got the backbone to do that, they deserve yet another death march.

Beware of Programmers who carry screwdrivers. -- Leonard Brandwein

Working...