A Practical Tutorial on Drupal Project Management

I'm currently in the midst of learning some awful lessons about providing customized drupal installations. Because of this, I'll be following a couple strict rules in terms managing all future projects. For those of you who may just beginning in this field, save yourself, and follow these rules from the get-go:

  • If you work by contract, always bid the project for significantly more than you think its worth. (hint: if you bid under $950, you've underbid) Even when you overbid, don't be suprised if the number of hours divided by your bid come out to a 5-15 dollars an hour range.(When I was contracting, some of my first projects ended paying under minimum wage per hour)
  • Schedule your projects in blocks, and never take on more than one project at a time. If your potential client or supervisor needs the project before you have a free block, you should nevertheless say no. If they protest, explain to them that your effectiveness per hour decreases exponentially for every project you take on. If they still refuse to accept your answer, respectfully remind them that you both have an interest in having projects turn out well, and that taking on another project jeapordizes your mutual intersts. If that doesn't work, I'd consider quitting.
  • If you think a project is going to take 24 hours of work, than be prepared to expect 72 hours of work. If your working with drupal, than your job description will have expanded dramatically from that of a typical web developer's. Thanks to email, phone call's, planning, research, and other activities that usually aren't taken into account in the beginning, I'm left with less than one third of a work day to spend on actual development.
  • Remember that you can't read minds, and you're supervisor or client nearly always wants drupal, and 3rd party modules to behave differently than they do by default. Typically, you'll find your job is not to combine, and configure drupal. Forsee specific areas where you will need to extend, combine, or rewrite modules, and let everyone involved with the project know about them.

Remember, save yourself, and follow these rules. Do not put yourself through the hardship of learning these lessons through experience. It ain't worth it, kids.