Mob Thinking, the whole team working together

ทีมปัจจุบันที่ผมดูแล ถ้าดูแค่ทักษะที่รับเข้ามา แต่ละคนก็ถนัดต่างกันไป มีคนที่ถนัด frontend มีคนที่ถนัด mobile คนที่ถนัด backend และมีคนที่ถนัด testing เราเป็นทีมเล็ก ๆ รวมผมด้วยมีสมาชิกเป็น 7 คน

เราทำงานแบบ remote (WFH, WFA) โดยใช้เครื่องมืออย่าง MS Team, Discord เป็นเครื่องมือในการสื่อสารกัน โดยใช้ทั้งการ chat, voice และ video call

การจัดการงานในทีม เราไม่มีการบังคับว่าคนถนัด frontend ต้องทำแค่ front หรือคนถนัด mobile ต้องทำแค่ mobile หรือแม้แต่การทำงาน เราไม่ได้ยึดติดว่าเมื่อแยก task งานออกไปแล้ว แต่ละคนก็แยกย้ายกันไปทำงานของตัวเองคนเดียว เราสนับสนุนให้คิดร่วมกัน และทำงานร่วมกัน

รูปแบบการทำงานร่วมกันตลอดจนจบ sprint มีแบบ pair กัน 2 คน หรือมากกว่านั้นเป็น mob ซึ่งเราจะเห็นว่าเรียกว่า mob programming

แต่สำหรับการทำงานของทีมที่ผมสังเกตุ เราไม่ได้มาทำร่วมกันแค่ programming แต่เวลาทีมช่วยกันใน 1 sprint จะรวมถึงการช่วยกันคิดว่าจะแก้ปัญหายังไง ช่วยกันคิดว่าจะทดสอบยังไง ช่วยกันคิดว่าในภาพรวมของทั้งระบบขาดตกอะไรไปบ้าง ไม่ใช่แค่การคิด 1 task ของตัวเองให้จบเท่านั้น

มันคือการแก้ปัญหาแบบร่วมมือกันทั้งทีม โดยใช้ทักษะที่แต่ละคนมี และถ้าไม่มีทักษะใด ทุกคนก็ช่วยกันหาทางแก้ไขออกมาด้วยกัน

จากการ one-on-one session กับสมาชิกของทีม ทุกคนแฮปปี้กับการทำงานแบบนี้ ได้เรียนรู้การทำงานร่วมกัน ได้แชร์ความเห็น ได้แชร์ความรู้ ได้แชร์ประสบการณ์ และได้เรียนรู้จากปัญหาที่เกิดขึ้นในทีมด้วยกัน

การทำงานแบบนี้ทำให้ทีมเรามีความสัมพันธ์ที่ดีกัน และทำให้ทีมเรามีความสามารถในการแก้ปัญหาที่ซับซ้อนขึ้นได้ดีขึ้น

ระบบ software ปัจจุบันที่ซับซ้อน มีหลายองค์ประกอบ ความยากก็คือการจับแต่ละส่วนให้มันทำงานร่วมกันได้ดี ไม่มีปัญหา

คนที่ร่วมกันพัฒนาซอฟแวร์ ถ้าเราให้แต่ละคนทำแค่องค์ประกอบใด องค์ประกอบหนึ่งของระบบ มันก็จะยิ่งยากตอนเรามาประกอบกันเพราะแต่ละคนก็จะไม่รู้ภาพรวมตอนประกอบกัน

แต่ถ้าแต่ละคน ทำงานร่วมกัน ช่วยกันคิดแล้วมองภาพใหญ่ของระบบ ร่วมกัน มันก็จะทำให้การเอาองค์ประกอบต่างๆที่ทำมาประกอบกันได้ง่ายขึ้น