knowledge-kitchen / course-notes

Project Work Day Plan

For those class sessions where we have “Project Work” days, each team will follow the plan below to make active use of the time.

Join a Zoom Breakout Room With Your Team

  1. Jump into a Zoom breakout room with your teammates (pick your favorite room #)… the instructor will have created the rooms in advance.
  2. Turn on your cameras and microphones… Sitting in a team meeting in Zoom with your microphone and/or camera off is considered being impolite at best, or absent at worst.

Hold a Standup Meeting

  1. Hold an agile-style “standup” meeting, where each team member answers three simple questions:
    • “What have you done since our last meeting?”
    • “What are you working on now?”
    • “Is there anything blocking your way?”
  2. Have one member of the team document each team member’s answers to the three questions and post a standup report to team messenger app for all to see, using the appropriate writing style for documentation.

Take Stock of Your Project and Plan Next Steps

  1. One of you shares your screen, loads the code into the editor, and launches the project (if you have it a runnable state).

  2. Open the project requirements and instructions so you have them to refer to as you discuss the status of the project. If you have a task board or other project progress tracking / project management tool, open that too for reference.

  3. Do a Code Review of the entire codebase as a group, looking for inconsistencies, errors, omissions, and areas for improvement. Implement changes on the spot, as necessary.

  4. Run through the instructions/requirements and task board, and discuss as a team the status of the project: what has been done and what needs to be done to get the project to completion; who should do what. Make sure everyone is synchronized in their understanding of the project, your progress towards the goal, and the next steps.

  5. Divide further labor as necessary.

Mob Programming

  1. Start Mob Programming: one team member shares their screen, opens the code in the editor, and starts working on the project. The others act as observers and advisers, talking with the person coding about the code and giving advice and recommendations and asking questions as that person writes the code.

  2. Switch it up so each team member takes 15 minutes or so writing the code while the others advise and interrogate.

  3. Ensure that everyone understands the codebase, how to contribute to the code, and how to work on and run the project with the requisite tools and techniques. More advanced team members use these sessions to explain to less experienced members the codebase and the changes being made.

Deliverables

By the end of class, post these links in the team channel:

  1. The standup report.
  2. The task board, with next steps as issues assigned to team members.
  3. The commit log, showing at least one commit from each team member during class. Each driver commits and pushes at the end of their turn, crediting advisers with Co-authored-by: lines.