Software engineer's log

[Much of this is taken, word-for-word, from an explanation provided by Stephen Cooper in the syllabus for his software engineering course at St. Joseph's University. (He has moved on to Stanford, but has not quite set up his homepage just yet. It should eventually show up at http://cs.stanford.edu/people/coopers/.) Note, however, the added sections on Submitting your log and on extra requirements for the project leader.]

In the "real world" many (it should be all) software engineers keep a log of their work, kind of like a professional diary. They'll keep problems they ran into, solutions they found, results of formal and informal meetings, schedule information, contributions of other members on their team, etc.

This material becomes extremely valuable when they move on to later projects. They may run across a similar problem or situation, may want to reuse old ideas, want to be able to compare projects, etc. As part of your group project, you will need (and eventually want) to keep your own log. You will want to summarize your specific contributions to the team, contributions of your team members, interesting discussions that you had, etc.

This is not something to be filled out the day before a deliverable is due. Rather it should be kept continuously; in other words, whenever your team meets, you should probably have an entry. Whenever you have a good discussion with a teammate or classmate, there should be an entry. [Do not simply just write things like "John will write section 1 and Mary will write section 2," though of course this is important information to record. You want to discuss problems, solutions to problems, choices made, and explanations of why decisions were made. For example, something like, "We considered whether to put user help in just the user guide or put it online. Tracy pointed out that home users are likely to have the user guide, but that the student users are unlikely to have one. We agreed to put user help in both the user guide and online to satisfy the different user groups. Paul will be responsible for making sure the contents of the user guide and the online help remain consistent."]

It is an extremely useful habit to get into. It is fine to include emotions, such as a frustration you have over a particular problem. In the real world, your log is not shared with anyone else, so that you will often include personal information (such as who may be a particularly good or bad person to work with in the future). You will not be sharing this with your teammates or classmates. However, you will be turning it in to me each time your team makes a deliverable. It will let me see how your team is functioning as a team, and help me to identify (and help your team to correct) minor problems before they become major.

Submitting your log: To keep it easy for you to maintain it while I take a look at it, I will ask you to keep it in electronic form. You will submit it through Blackboard.

Grading: If you do not turn in the log, you will get zero credit for the deliverable.