Access JumpStart 2.0 | Blog

A Rapid Development Framework for Microsoft Access

Pair or Mob programming is a collaborative technique where two or more developers work together at one workstation. One writes the code (the Driver) while the other(s) review each line of code as it’s written (the Navigator). Here’s how one might structure an effective pair or mob programming session:

1. Set Clear Objectives (Agree to what you’re trying to do)

  • Define Goals: Start by clearly defining what you aim to achieve during the session. This could be solving a specific problem, implementing a feature, or refactoring code.
  • Outline Tasks: Break down the work into manageable tasks to keep the session focused and productive.

2. Prepare the Environment

  • Single Workstation: Ensure there is a single workstation with a comfortable setup for both participants. A large monitor or dual monitors can help both see the code clearly. In a Zoom meeting, just use one of the user’s keyboard and monitor, use the desktop version of Zoom to share the keyboard / screen with the driver.
  • Tools and Resources: Have all necessary tools, documentation, and resources ready. This includes your IDE, version control system, and any relevant documentation.

3. Establish Initial Roles

  • Driver: The Driver is responsible for writing the code. They focus on the mechanics of coding and implementing the Navigator’s suggestions.
  • Navigator: The Navigator reviews the code, thinks strategically about the direction of the work, and provides guidance. They also look out for potential issues and suggest improvements. This is collaborative in a mob, but it is wise to have at least one person working to keep the mob in check and not go off on rabbit trails. This can be self correcting too.

4. Communicate Effectively

  • Open Dialogue: Maintain an open line of communication. The Navigator should articulate their thoughts clearly, and the Driver should be receptive to feedback. This should be a safe place for ideas, kind of like a brainstorming session. Designate someone to make final decisions for times that a consensus can’t be reached.
  • Ask Questions: Encourage both participants to ask questions and discuss different approaches. This helps in understanding each other’s thought processes and improves the quality of the code.

5. Rotate Roles Regularly

  • Frequent Rotations: Rotate roles every 30-60 minutes to keep both participants engaged and to share knowledge. This also helps prevent fatigue and keeps the session dynamic. Or in a mob, you could rotate every 5 – 10 minutes even.
  • Equal Participation: Ensure that both / all participants get an equal opportunity to drive and navigate. This promotes balanced skill development and collaboration.

6. Focus on Collaboration

  • Shared Responsibility: Treat the code as a shared responsibility. Both participants should feel ownership of the code and be equally invested in its quality.
  • Respect and Inclusivity: Foster a respectful and inclusive environment. Value each other’s input and avoid dismissing ideas without consideration.

7. Take Breaks

  • Scheduled Breaks: Plan for regular breaks to avoid burnout. A 5-10 minute break every hour can help maintain productivity and focus. Alternately have single short sessions. This could also include a regular meeting one or more hours per week.
  • Refresh and Recharge: Use breaks to stretch, hydrate, and refresh. This keeps all participants energized and ready to continue. This kind of activity actually requires more focus than coding independently!

8. Review and Reflect

  • Code Review: At the end of the session, review the code together. Discuss what was accomplished, any challenges faced, and how they were overcome.
  • Retrospective: Conduct a brief retrospective to gather feedback on the session. What went well? What could be improved? Use this feedback to enhance future sessions.

9. Document and Share Knowledge

  • Documentation: Document key decisions, solutions, and any important information that emerged during the session.
  • Knowledge Sharing: Share the outcomes and learnings with the wider team or organization. This helps in spreading knowledge and improving overall team performance.