Collaborative programming

How does one classic way of Pair Programming work (because there is no exact rules)?

 * 1) It’s not a requirement to join the session that one knows the codebase or the specific language because you will be working as a team (a group of two to five people) who meets for a call.
 * 2) One person is always driving the sessions and is implementing one small step of a problem that the group wants to solve together.
 * 3) If you have a nice pair programming tool setup that’s great, otherwise the one that types can following the instructions for the driver.
 * 4) Being the driver make sure you describe what you are trying to do and as the navigator make sure you stay engaged and ask questions about things you are unsure about.
 * 5) After about 15-20 mins (whatever works) the driver switches and the next developer is describing their idea and putting it into practise.
 * 6) At any point, people can ask questions and ask for help from the team for looks up things in the docs ask for ideas about what to do next.
 * 7) If there's people in the team that have less experience than you make sure you keep them included by asking little questions: "What should we do next?" or "How can we solve this?"

A change of mindset about the way we work together is required:
The point of having a collaborative session is not that you will all be more effective together, the point is to collaborate and learn form each other and get more conscious of anti-patterns and with a bit of practise you will actually write better code.

"Try treating programming as a learning activity that throws off running code as a byproduct" ~@KentBeck