PRESENTATION OUTLINE
I'm AMber
It builds on principles of lean manufacturing, extreme programming, and lean software development. Early use of the phrase "mob programming" was made in Extreme Programming Perspectives.
(wikipedia)
Untitled Slide
It builds on principles of lean manufacturing, extreme programming, and lean software development. Early use of the phrase "mob programming" was made in Extreme Programming Perspectives.
(wikipedia)
Untitled Slide
It builds on principles of lean manufacturing, extreme programming, and lean software development. Early use of the phrase "mob programming" was made in Extreme Programming Perspectives.
(wikipedia)
Untitled Slide
It builds on principles of lean manufacturing, extreme programming, and lean software development. Early use of the phrase "mob programming" was made in Extreme Programming Perspectives.
(wikipedia)
What is Mob programming?
It builds on principles of lean manufacturing, extreme programming, and lean software development. Early use of the phrase "mob programming" was made in Extreme Programming Perspectives.
(wikipedia)
the Youngest of the agile development techniques
like a lot of agile techniques, and even the manifesto its self; Moving was discovered by practice, rather than invented as an idea.
ages of techniques
like a lot of agile techniques, and even the manifesto its self; Moving was discovered by practice, rather than invented as an idea.
Teams use one computer, one projector screen, one keyboard, and one mouse as the whole team worked together to solve one code problem at a time.
which seems totally counter intuitive.
however...
some benefits of this approach include
- developers learn more
- Knowledge is shared across the development team
- move faster, deliver quicker
- working environment is improved
- have fun at work
- reduction in meetings
- no need to estimate
disclaimer: side affects may include
* Having fun at work
*achieve states of flow
ask your agile coach if Mob Programming is right FOR YOU!
"In an effort to increase our agile development skills and knowledge, we were spending three hours a week training and becoming more familiar with Extreme Programming techniques such as pair programming and test-driven development. In the Coding Dojo we used one computer, one projector screen, one keyboard, and one mouse as the whole team worked together to solve one code problem at a time. To be able to study this way required that we follow a protocol of behavior and a few simple pair-programming techniques that made it easy for each team member to contribute and optimize the learning experience." - Woody Zuill
Woody also mentions how he spent a long time coaching this inception team in clean code and it's attributes
What does Mob programming look like?
Why would we Mob program?
if there are blocks to
- team communication
- team alignment
- collaboration
- working together as a team
- effective code reviews
- the "self-organizing team" concept
- speed of delivery...
- team relationships
also of note that this is effective at removing work imposed silos.
it works if the following are applied:
- Principle: Treat each other with kindness, consideration, and respect.
- Practice: Driver/navigator pair programming adapted to work with the whole team
- Practice: Timed Rotation
- Practice: Whole Team
- Practice: Reflect, Tune, and Adjust Frequently
1.
Treat each other with kindness,
consideration,
and respect.
Because the team work closely together throughout the day, they are constantly communicating, and must be able to express ideas, discuss problems, explore possible solutions, and share thoughts
all day long.
and must be able to express ideas, discuss problems, explore possible solutions, and share thoughts
all day long is a key point
To make it possible to sustain this high level of communication, the team adopts the principle to always treat each other with kindness, consideration,
and respect.
While this seems straightforward, acknowledging the importance of this principle provides a foundation for the daily team interactions.
2.
Driver/navigator pair programming adapted to work with the whole team
“For an idea to go from your head into the computer, it must go through someone else’s hands.”
“For an idea to go from your head into the computer, it must go through someone else’s hands.”
the best ideas happen away from the computer, when engineers have space to think.
whole team Driver/Navigator gives teams this space, while also making ideas
more resilient.
By sharing ideas collectively, the overall design and direction the solution takes
gets better.
use a timer and a randomized rotation pattern.
no longer than 10-15 minutes.
The driver hands the keyboard off to the next driver when their turn
ends, and then rejoins
the navigators.
don’t require that everyone take the driver role; it is everyone’s choice whether to do so.
every contributor to the project is an integral part of the whole team. Including customers, managers, Product owners, other teams etc.
We have all the skills we typically need for almost everything we do, including coding, designing, database, testing, and documentation.
When we don’t have the skills we need within the team, we find someone who does and invite them to work with us to accomplish the needed work.
the law of two feet:
If at any time during the time together you find yourself in any situation where you are neither learning nor contributing, use your two feet, go someplace else!
5.
Reflect, Tune,
and Adjust Frequently
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
frequently evaluate what is working, what problems arise, and how things could be improved.
daily retrospectives....
but only for 15 minutes
if we are sure to regularly reflect,
tune, and adjust,
good things will happen!
Find something you can collectively learn about
and spend 3 hours per week on it together to
create a collective
understanding of a topic.
some suggestions
- design sprints
- clean code
- effective pairing
- the elements of kanban
- no estimates movement
- red green refactor - TDD
- how to use the code dojo concept
- watch the mobbing video together
Get your current sprint work done to the point where you are pulling the next most important thing from the backlog
Rearrange your space:
One monitor
one computer
one keyboard
Rearrange your online space:
One online team space
one collaborative IDE
but remember to give to time to go past the forming/storming stages
If you want more information:
follow Woody
@WoodyZuill
Try it yourself!!
experimentation works.