7.5

Lab Book

keep track of things

Scientists and engineers record their daily work, activities, observations in such books. Many professionals keep written records to preserve information contemporaneously and to protect themselves with a paper trail. Programmers should have one, too. If anything goes wrong, technically or otherwise, this documentation can help you reconstruct the past and convince others of your position. Rather than making you buy a notebook, you will take lab notes in a markdown file named

<ccis-username>-log.md

(filling in your own ccis username) kept in an otherwise-empty private github.com repository named

<ccis-username>

(filling in your own ccis username). You must add SWDev2020 as a collaborator. You must keep this repository’s master branch in sync and up to date (i.e. commit after writing a post, push after committing). You must correctly follow the above steps or you will not receive credit for your lab book.

For this course, the lab book is to help you manage your pair-programming partnership. It also serves as a kind of low-stakes kanban. You will keep your log books in reverse chronological order. That is, the most recent posts will be at the top. Your lab book will contain four types of logs:
  1. the partner information. To begin, copy the following to top of the file, and enter your partner’s information. This should be the first post. As you later add more, this will remain at the bottom of the file.

            PARTNER INFORMATION

            name: ____________________________________

            cell: ____________________________________

            email address: ___________________________

            social media acct (optional): ____________

  2. the weekly assignment/project commencement. At the beginning of every weekly assignment/project, create a post with the following.

            assignment/project title: ________________

            time estimate: ___________________________

  3. the pair programming meetings. At the outset of every assignment/project meeting with your partner, create a post with the following.

            date/time: _______________________________

            place: ___________________________________

            goal: ____________________________________

            notes: ___________________________________

            __________________________________________

            __________________________________________

            __________________________________________

            duration: ________________________________

            NEXT : (date/time/place of next meeting)

  4. the weekly assignment/project conclusion. At the end of each weekly assignment/project (because you completed the work or because the assignment is due, whichever comes first), create a post with the following.

            actual time needed: ______________________

            outstanding issues: ______________________

            __________________________________________

If your partner does not show up for a meeting, make a note of it in the post for that meeting. Also record what actions you undertook to reach your partner. If you sent a reminder email, copy and paste its contents in the notes section.

Consider keeping these blank templates locally so you can copy and paste them in when you need.

Note You won’t get credit for accurate time estimates. The point is to learn to estimate how much time real tasks take. Acquiring this skill is critical for developers as well as people who wish to manage developers. There is nothing like practice to develop this skill.