For the past three or four years, I've been looking for something that would tell undergraduate students how to run their first team programming project. The books and articles I've found so far didn't satisfy me---the books are very dry and out of date, and Stephanie Ludi's excellent Survival Guide is too narrow for my purposes---so I'm thinking about writing one myself (sometime) for CSC301. Going through old blog postings, I've assembled a tentative table of contents, but this is definitely a case of "what I have" rather than "what students need". I'd be grateful for the interweb's input on this: what do you think students should be told as they set out to do their first term-long multi-person development project?
  1. Introduction
  2. The Really Important Stuff
    1. How to Run a Meeting
    2. Crunch Mode Never Works
    3. How to Manage Your Time
  3. What Team Projects Are For
  4. Assessment (or, Figuring Out Where the Goalposts Are)
    1. Elevator Pitch
    2. Grades
  5. Teamwork
    1. Picking Teams
    2. Who Does What?
    3. Team Building
    4. Dealing With Conflict
    5. People to Watch Out For
    6. Irreconcilable Differences
    7. Respect
  6. Pick a Process---Any Process
    1. Agile vs. Sturdy
    2. Test-Driven Development
    3. What To Do When Things Go Wrong
  7. Tooling
    1. Version Control
    2. Editor
    3. Programming Language
    4. Builder
    5. Debugger
    6. IDE
    7. Ticketing System
    8. Other Ways to Communicate
    9. Portals
    10. The Next Level
    11. Other Tools
  8. Planning and Scheduling
    1. Cutting Corners
    2. Where the Effort Goes
  9. Design (as yet completely unwritten)
  10. Wrapping Up
    1. Formatting Your Report
    2. The Post Mortem
  11. Final Words
  12. Further Reading