Software Teaming and Beyond Workshop Description
Software Teaming (Mob Programming) is a cost-effective, collaborative, and fun way to get work done together. It’s a whole-team approach to software development, where coding, designing, testing, and working with the “customer” (Partner, Product Owner, User, etc.) is all done as a team.
First Day:
In this workshop we’ll cover the basics in the Introductory Workshop on Software Teaming (Mob Programming).
Second Day:
We move on to advanced ideas about creating an organization where great things can happen. We’ll cover the problems often encountered, and how to make improvements. We think of this as “Beyond Software Teaming.”
Optional Third Day:
Advanced Software Teaming (Mob Programming) topics, practices, and techniques, plus more material on “Beyond Software Teaming.”
Intro to Software Teaming Workshop (first day), 5 Modules
Module 1 – Introduction to Software Teaming (Mob Programming)
- What it is
- How it started
- Basic concepts of working together to create software (and doing other work)
- Benefits
- This does not replace solo or pair work. It adds a new dimension
Module 2 – Skills and Techniques of Mob Programming
- Driver/Navigators
- Listening and communicating
- Inclusion, listening for the quiet voices
- Decision making
- Hearing and trying all the ideas
- Doing rather than debating (why we need to “get it right the first time” might not be as useful as it seems)
Module 3 – The Coding Dojo – a way to start
- History – a model for learning together
- What it is (lots of rules that allow us to limit chaos)
- Explain why we do this
- Demo how we do it
Module 4 – Coding exercise – All hands-on teamwork
- Phase 1 – Coding Dojo model, only a single navigator is guiding
- Phase 2 – Continued coding exercise using a “hybrid” between coding dojo and “Mob Programming” – remove the rule that only the navigator is guiding
- Phase 3 – Continued coding exercise using full Mob Programming (no strict rules)
Module 5 – Software Teaming and the Power of Flow
- The idea of flow (Both Lean Flow and Psychological Flow, plus the new idea of Team Flow)
- How this might explain why Software Teaming (Mob Programming) works so well.
- With a few exercises
Advanced Software Teaming and Beyond Workshop (second day)
Module 1 – Why change is so hard
- The most dangerous phrase in the language is, ‘We’ve always done it this way.’ Grace Hopper
- Getting an understanding of why change is hard.
- Analyzing resistance (i.e. dogma)
Module 2 – Communication and “The Failure to Communicate”
- An overview of the problems with communication
- Why communication usually fails
- How collaboration minimizes communication problems
Module 3 – Make it Easy
- “So much of what we call management consists in making it difficult for people to work.” ~Often attributed to Peter Drucker
- Solving problems vs Making Things Easy
- Compounding value of “Make It Easy”
- Focus on how to make things easier, effortless, or unnecessary
Module 4 – Turn up The Good
- Often today’s solution becomes tomorrow’s problem.(The law of unintended consequences.)
- Why an indirect path is sometimes a useful alternative
- The basic idea: Pay Attention to what is working nicely and experiment with ways to make it even better, or “Turn It Up”.
Module 5 – Leading and Following, working together requires we all do both
- Leading without authority
- Dynamically switching from following to leading and vice versa – this is teamwork.
- Understanding Intent and how to take advantage of it
- Thinking as a team