Step 3: Your Daily Routine

Posted

OK, your project is up and running: you know what you’re supposed to be building, and you have a schedule for producing it. Now what? “Code ‘til your fingers bleed” is a lousy strategy for individual work; it’s almost certain to fail on team projects. Instead, you should invest a little time in getting your day-to-day operations right.

First, learn how to run meetings. I blogged my rules last autumn, and believe them even more strongly today.

Second, read Stephanie Ludi’s guide to student software projects, and pay particular attention to the section titled “Student Project Myths“. If you have time, you should also dip into Karl Fogel’s excellent book Producing Open Source Software, which is available online. Both have a lot of good advice about communication and respect; I’ll talk about both issues in a future post.

Third, set up a development environment that includes version control, a bug tracker, a wiki, and a mailing list with a searchable archive. These will greatly improve your chances of meeting your schedule without burning out. If your instructor hasn’t installed something like DrProject for you, and you can’t set up things like Subversion and Trac on your university’s machines, buying a hosted domain and install Buildix. It’ll cost less than pizza for six people, and when your project is over, you can show the domain off in job interviews—I know at least one Web 2.0 company that won’t even interview anyone who doesn’t have their own domain.

Make sure everyone is using the same tools. This is just as important as setting up a development environment in the first place. If some team members are using Make from the command line, while others are building inside an IDE, or if one person is automating tests with shell scripts, while another is using Python, you will lose precious time to duplication and contradiction.

You’ll know you have it right when your working day looks something like this:

Three sessions like that a week, from each person on the project, plus a single one-hour team meeting, and you’ll be in great shape.