We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Half a decade of mob programming - Ulrika Malmgren - NDC Oslo 2024
Learn how mob programming transforms software development through continuous collaboration, knowledge sharing, and higher quality solutions based on 5 years of experience.
-
Software teaming involves the whole team working together on the same task simultaneously, with one driver at the keyboard and others as navigators
-
Key benefits include:
- Organic knowledge sharing happens continuously without extra effort
- Higher quality solutions through different perspectives and collective understanding
- More consistent output as work leverages the highest skill level available
- Reduced need for synchronization meetings and documentation
- Better resilience and reduced bus factor
-
Success factors:
- Patience with self and others during the learning curve
- Curiosity and willingness to learn from others
- Shared values and common ground within the team
- 3-5 people is optimal team size
- Regular retrospectives to improve the practice
-
Common challenges:
- Initial discomfort and resistance to change
- Energy level variations in the team
- Some team members may prefer working alone
- Learning to communicate effectively
- Need for discipline to stay focused as a group
-
Works well remotely:
- Use shared screen and remote access tools
- Single team online presence/account
- Clear audio setup for all participants
- Digital whiteboarding tools for collaboration
-
Not every task needs full team attention:
- Individual work can be appropriate for certain tasks
- Juniors may need some solo time to build confidence
- Time-boxed individual exploration can be valuable
- Return to group to share learnings
-
The default approach should be software teaming rather than individual work, with exceptions made when appropriate
-
Quality improves through:
- Collective understanding of problems
- Multiple perspectives on solutions
- Built-in code review and knowledge sharing
- Consistent standards across the team
- Fewer handoff errors
-
Focus should be on optimizing knowledge flow rather than individual utilization