This is an activity to describe How to manage your code effectively as a TEAM
Timing: This game may take from 20 to 30 minutes
Materials: A multicolor light weight ball, 6 strong sticks or plastic pipes with 21 inches each stick/pipe length, space to walk around while playing
- Game brief:
Invite at least 6 volunteers to play this game. We are going to experience various scenarios in this game to demonstrate the need and importance of “collective code ownership” concept.
The volunteers have to come close and hand over them the sticks/pipes. Tell them the ball is their code base. In each scenario they have to make sure to play the scenario without dropping the ball. If balls drops then 1 penalty point. If they complete each scenario without dropping the ball then they get a bonus point. At the end of the game their total score will confirm how they could manage their code.
We need to keep a fixed time period to complete all scenarios mentioned below). This is to make the activity timeboxed.
Team can move to next scenario only after the previous scenario is done successfully without dropping the ball.
Note: If you are playing this game with more than one team then keep a separate scoring board to track the time and final score of each team.
- Scenario – 1: Your code increases over a period of time
2.1. All the participants need to sit on their knees and hold the sticks/pipes with their one hand (left or right does not matter) and try to keep the ball balanced on those sticks. They should not use their other hand at all.
2.2. Participants have to stand on their feet without dropping the ball.
- Scenario – 2: Your code is not static, it changes all the time
3.1. Ask the participants to walk from their current place to a distance of 5 feet
3.2. Ask them to make a rotation of their places
- Scenario – 3: One team member develops more stories (more code)
4.1. One person pushes the ball hard
4.2. Rest of the members to balance this scenario
- Scenario – 4: Change the roles
5.1. Ask the members to switch their positions (not immediate left or right)
5.2. They need to keep the ball balanced on the sticks/pipes while they rotate their positions
- Scenario – 5: A very important story came up!
6.1. Tell the team that the Product Owner has come up with a very important story
6.2. The story is to rotate the ball in such a way that the color that is on the bottom side should come to the top
6.3. They should not use the free hands and they need to just rotate the ball using their sticks/pipes
- Scenario – 6: Couple of members on vacation
7.1. Ask two team members to drop their sticks and leave the game abruptly
7.2. Remaining members should be able to manage the ball with remaining sticks/pipes
The team understands the importance of following concepts:
- Code should be developed with proper supporting tests
- Code should be stable even the team is adding new code
- All the team should have a fair idea on the code base and it should be a collective responsibility and not any more individual owning. Even there is a specialist developers writes some critical parts, there must be a knowledge transfer planned to get everyone up to speed
- collective code ownership, making the code stable always, quality of the code should be as per expectations
- Team should be cross functional so that they can manage the code effectively
- Manage the technical debt time to time and do not go for work-around solutions or short term fixes