Mob Programming is a development practice where the whole team works on the same thing, at the same time, in the same space, and on the same computer. It is a whole-team approach to doing all the work the team does including designing, coding, testing, and working with the customers, users and other stakeholders. This is an evolutionary step beyond pair programming, and accentuates face-to-face communication, team alignment, collaboration, and self-organizing team concepts of the Agile approach to software development. Mob Programming can be a highly effective approach to software development. Please join me as I share how the concept got started, the benefits, techniques we use, and some of the problems we've faced.
What You Will Learn
Agenda - what we will cover
- What is an estimate, why we use them.
- The issues with estimates, and why we need a new approach.
- How I've been working without estimates.
- How others have been working without estimates.
- How to start working without estimates, or to reduce your dependency on them.
- Ways to explore possible alternatives to estimates.
Who Should Attend
- Introduction to the concept of estimates
- Discussion about how we use estimates.
- Exercises to demonstrate the nature of estimates.
- Information gathering sessions to build a common understanding.
- Exercises to demonstrate possible ways to work without estimates.
Managers, Product Owners, Developers, and anyone involved in Software Development
Intermediate - Having some experience with planning and estimating software development will be useful.
The default use of an "estimate-driven" approach is pervasive in software development efforts. While estimates can be useful, it is worthwhile to scrutinize our use of estimates, and to seek better ways to manage the development of software when estimates are not appropriate. [NOTE: For this session, I am referring to the use of estimates of cost, time, or effort for software projects, features, or tasks.]
There are a number of things to explore. For example, do we really need estimates for everything we currently use them for? Are we getting a reasonable benefit from them? Is it possible to manage software development without them?
In this session we will start with an information gathering exercise to help us gain a shared idea of our current understanding of the purpose and use of estimates. From here we'll move on to examine the nature of software development projects and a few possible other ways to approach our work.
Mob Programming: All the brilliant people working on the same thing, at the same time, in the same place, and on the same computer.
Mob Programming is a cost-effective, collaborative and fun way to get work done together. It's a whole-team approach to development, where coding, designing, testing, and working with the "customer" (partner, Product Owner, User, etc.) is all done as a team.
Participants in this workshop experience a day of learning and doing Mob Programming. We cover the mechanics of how to work together as a Mob as well as the techniques that make this form of development so effective.
We’ll learn how a Mob performs sample project work, including user stories, prioritization, test-driven development, refactoring, and retrospectives.
Designed and facilitated by Mob Programming pioneer Woody Zuill, this workshop provides a hands-on education in the art of mobbing and it's significant benefits for your teams.
- How 5+ people can be effective working on just one thing
- Heuristics for team size
- Guidelines for successful collaboration
- Handling competing solutions and ideas to a coding problem
- Encouraging politeness and kindness of team members
- Reducing or eliminating harmful conflicts
- Mobbing Mechanics
- Tools for team coding
- Workspace setup
- How to "Amplify Learning" and take advantage of continual learning opportunities
- "Real-time" and continuous Retrospectives to reflect, tune, adjust
- The theory of why Mob Programming is effective.
- Test-Driven Development (TDD) as a team
- Working with Product Owners, Business Experts, Testers, Designers as part of the team
- Refactoring as a team
- Continuous feedback at all levels of granularity
Hands-on Exercises, Presentation, Interactive Dialogues, Simulations, Videos
- Introduction: Mob Programming Introduction, The basics of how it works
- Activity: The nature of software development
- Activity: Teamwork - a good thing
- Driver/Navigator teamwork Roles and Techniques
- Coding Dojo Demonstration: A simple demo of Mob Programming with volunteers from the participants.
- Advanced Mob Programming Concepts - Hands on coding
- Coding Exercise: Working on a Sample Project, learning to work together using a few rules
- Amplified Learning, How to take advantage of learning opportunities
- Continuing the Coding Exercise: Removing the rules
- Retrospective and review, group discussion of what we’ve learned