Slide 1

Slide 1 text

Mob Programming: better together? Michael Hilton Associate Teaching Professor Institute for Software Research Carnegie Mellon University [email protected] @michaelhilton

Slide 2

Slide 2 text

Hello! I am: An Associate Teaching Professor I teach Software Engineering Classes I also do research on SE and education I was a developer for ~10 years

Slide 3

Slide 3 text

What is Mob Programming All the brilliant people working on the same thing, at the same time, in the same space, on the same computer. – Woody Zuill (the discoverer of Mob Programming)

Slide 4

Slide 4 text

Why would anyone want this?

Slide 5

Slide 5 text

It’s not about getting the MOST out of your team,it’s about getting the BEST out of your team

Slide 6

Slide 6 text

Solo Programming source: http://i.imgur.com/fGlgTyg.gif

Slide 7

Slide 7 text

Solo Programming

Slide 8

Slide 8 text

Pair Programming

Slide 9

Slide 9 text

Pair Programming

Slide 10

Slide 10 text

Mob Programming

Slide 11

Slide 11 text

Mob Programming

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Mob Programming Roles The Driver: “no thinking, just typing” The Navigator: the main person programming The Mob: Checking the navigator, Contributing insights, Getting ready to rotate The Facilitator: Help guide the mob (optional)

Slide 14

Slide 14 text

When to rotate Teams can decide, some common triggers are: Time Unit Test Passing Others?

Slide 15

Slide 15 text

Consume First vs Build Up

Slide 16

Slide 16 text

Build Up Example public int x; public int y; What should you do next?

Slide 17

Slide 17 text

Point p = new Point(10, 20); public int What should you do next? public Point(int x, int y) { } Consume First Example

Slide 18

Slide 18 text

Point p = new Point(10, 20); public int What should you do next? assert ( p, …); Consume First Example (Better?)

Slide 19

Slide 19 text

We will treat everyone with Kindness, Consideration, and Respect

Slide 20

Slide 20 text

Kindness Treat others the way you would like to be treated

Slide 21

Slide 21 text

Consideration We show consideration by listening. The Driver should be listening to the Navigator The Navigator should be listening to be Mob.

Slide 22

Slide 22 text

Respect “We always assume that the person who wrote the code before us did the best they could with the knowledge and circumstances they were in at the time they wrote it”

Slide 23

Slide 23 text

Mob Programming Tips and Tricks

Slide 24

Slide 24 text

Mob Programming in Education Online Mob Programming, Developed as a way to bring benefits of Mob Programming into the classroom Observations: - The structure of Mob Programming was helpful - Reflection was more helpful for learning than just discussion https://repository.isls.org/bitstream/1/4532/1/855-856.pdf Takeaway: Retrospectives offer improvement AND Learning for the team

Slide 25

Slide 25 text

Mob programming Resources: Mob mentality youtube channel Trello Board

Slide 26

Slide 26 text

Mob Programming RPG Found on Github

Slide 27

Slide 27 text

Remote Mob Programming https://www.remotemobprogramming.org/

Slide 28

Slide 28 text

Mobs as a tool for inclusivity? Sal describes her experiences participating in a mob from the perspective of someone diagnosed with autism Mobbing was remote, and the freedom to tailor the physical environment was very helpful Structured roles can be very helpful for neurodivergent team member(s) https://cucumber.io/blog/bdd/inclusive-benefits-of-mob-programming/

Slide 29

Slide 29 text

Please feel free to reach out! Email: [email protected] Twitter: @michaelhilton