การเขียนโปรแกรมแบบชุมนุมเกิน 5 คน

Suzuki Aki
odds.team
Published in
1 min readSep 11, 2018

ช่วงนี้ได้มีการทำ mob programming ในทีม เลยจะมาแชร์ว่า คืออะไร และดีอย่างไร

mob programming คือการเขียนโค้ดด้วยคอมพิวเตอร์เครื่องเดียวพร้อมกันหลายคน โดยที่ทุกคนโฟกัสที่การแก้ปัญหาเรื่องเดียวกัน

ฟังดูเป็นเรื่องที่ไม่ make sense ทำไมต้องใช้ทรัพยากรคนสิ้นเปลืองขนาดนี้ ได้งานก็น้อย ซึ่งจะมาเล่าข้อดีข้อเสียกัน

ก่อนอื่นต้องอธิบายว่า โดยปกติในการทำ software product เมื่อทำไปนานๆ productivity ของ developer จะน้อยลง value ที่ delivery ได้จะน้อยลงเรื่อยๆ ซึ่งการที่ productivity น้อยลง ส่วนมากเกิดจากการมี bad code เยอะ bad code ทำให้การแก้ไขโค้ดเป็นเรื่องลำบาก แก้ส่วนนี้ทีก็ไปกระทบส่วนอื่น ดังนั้น practice ต่างๆ จึงเกิดขึ้นมาเพื่อแก้ไขปัญหาเหล่านี้ mob programming ก็เป็นวิธีนึง

การทำ mob programming โค้ดที่เขียนออกมา จะมาจากการกลั่นกรองจากไอเดียของคนหลายคน แต่ละคนในทีมมีความคิดเห็นต่างกัน มี concern ต่างกัน ก็มาหารือกันเพื่อหา solution ที่จะแก้ปัญหาที่ทำอยู่ ซึ่งจะทำให้เกิด solution ที่ดีที่สุด ณ ขณะนั้น ทำให้เกิด bad code น้อยลง ลดโอกาสที่ต้องกลับมาแก้อีก หรือถูกเขียนใหม่

ผลพลอยได้อีกอย่างของการทำ mob programming คือเกิดการ transfer ความรู้โดยอัตโนมัติ มีการแลกเปลี่ยนความคิดเห็นของสมาชิกภายในทีม คนที่มีประสบการณ์น้อยกว่าจะได้ความรู้จากคนที่มีประสบการณ์มากกว่า และทีมมีความสัมพันธ์ที่ดีขึ้น

นอกจากนี้ความรู้จะไม่ตกอยู่ที่คนใดคนนึง ลดการเกิด silo และทำให้ทุกคนมีความรู้สึกเป็นเจ้าของโค้ดร่วมกัน

แน่นอนว่าข้อเสียก็มีอยู่ ก็คือจะได้งานช้าเพราะต้องใช้หลายคนเพื่อทำงานงานเดียว แต่การที่ต่างคนต่างพิมพ์ ก็ไม่ได้แปลว่าจะใช้เวลาในการทำ product น้อยกว่า เพราะ cost ของการทำ software คือ solution ต่างหาก ฉะนั้นมันอาจจะคุ้มค่าที่เราจะลงทุนทรัพยากรเพื่อการสร้าง solution ที่ดี แต่ทั้งนี้และทั้งนั้นก็ไม่ได้หมายความว่าจะต้องทำตลอดเวลาจึงต้องหาช่วงที่เหมาะสม อาจจะเป็นช่วงที่มีการเริ่ม product ใหม่ หรือต้องการแก้ปัญหายากๆ

--

--