ครั้งหนึ่ง..กับ Scrum-Team
“บทความนี้ได้รับแรงบรรดาลใจมาจาก กระทู้ๆหนึ่งในพันทิบ ที่เกี่ยวข้องกับการทำงานแบบ Agile ในการพัฒนาโปรแกรม”
แนะนำตัวก่อนเลย ผม เน เป็น น.ศ.ฝึกงาน เรียนอยู่ปีที่ 2 จากมหาลัยชื่อดังย่านแจ้งวัฒนะ “panyapiwat institute of management” สาขา วิศวกรรมคอมพิวเตอร์:)
ได้มีโอกาศฝึกงานกับ บริษัท Odd-e Thailand โดยได้เข้าฝึกงานที่ไชต ์ AYCAP กับ UCHOOSE TEAM เป็นเวลา 3 เดือน
…มาเข้าเรื่องกัน…
ก่อนอื่น..ขออธิบายคร่าวๆ สำหรับคนที่ไม่รู้ว่า Scrum คืออะไร Agile คืออะไร
“Agile คืออะไร”
Agile เป็นหนึ่งในรูปแบบในการพัฒนา Software หรือ Product มีหลักสำคัญตาม “Agile Manifesto” คือ
- Individuals and interactions การมีปฎิสัมพันธ์กัน มากกว่าการทำตามขั้นตอนและเครื่องมือ
- Working software ซอฟต์แวร์ที่นำไปใช้งานได้จริง มากกว่าเอกสารที่ครบถ้วนสมบูรณ์
- Customer collaboration ร่วมมือทำงานกับลูกค้า มากกว่าการต่อรองให้เป็นไปตามสัญญา
- Responding to change การตอบรับกับการเปลี่ยนแปลง มากกว่าการทำตามแผนที่วางไว้
“Scrum คืออะไร”
“Scrum เป็นหนึ่งในวิธีของการพัฒนาซอฟแวร์ของ Agile คือให้สมาชิกทำงานร่วมกัน แบ่งปันข้อมูลกัน และมีพูดคุยกันอย่างสม่ำเสมอ”
สามารถศึกษาเพิ่มเติมได้ที่
มาลงรายละเอียดกันเลย ในทีมที่ผมได้ฝึกงานด้วย มีการทำงาน แบบ Scrum-Team ซึ่งประกอบด้วย
Product Owner คือคนที่คอยจัดการ Product Backlog ของ Software
Product Backlog คือ list ของ Feature ที่ถูกจัดเรียงความสำคัญ ตาม Business Value
Team คือ Developer ที่คอยพัฒนา Product ตาม Requirement จาก PO
Scrum Master คือคนที่ประสานระหว่าง Project Owner กับ Team Member เพื่อให้งานออกมาราบรื่น
Sprint คือ รอบการทำงาน จะเป็นระยะเวลาสั้นๆ
Sprint Backlog คือ กระดานโดยแบ่งเป็นส่วนๆ(To-do , Doing ,Today, Done)
การทำงานของเรา
เราจะนั่งในห้องโดย มีโต๊ะกลางนั่งหันหน้าให้กัน เพื่อที่สามารถพูดคุยประสานงานและความสัมพันธ์ในทีม
Sprint ของเราจะเป็น รอบละ 2 Week โดยรายละเอียดใน Sprint คือ
วันจันทร์แรกของ Sprint จะมี Sprint Planing Part 1 & 2
“Sprint planing Part 1” จะมีการนำ Feature ใน Product Backlog ใส่ใน Sprint Backlog โดย ถามทีมว่าสามารถส่งของได้ทันหมด Sprint ไหม
“Sprint planing Part 2" คือ การดีไชน์และแตกงานเป็นการ์ดย่อยๆลงบน To-do
เวลาที่เหลือจะเป็น การเรียนเสริม Technical ต่างๆ ที่ Team ต้องการ หรืออยากรู้
วันอังคาร ถึง ศุกร์ ของ week ที่ 1 จะเป็นการทำงานตาม To-do โดย ทุก เช้า เวลา 10 นาฬิกา จะมีการ Daily Scrum ที่บอกว่าเราจะทำอะไรในวันนี้ หรือ ทำอะไรเสร็จเมื่อวาน มีปัญหาอะไร
วันจันทร์ Week 2 ตอนเย็น จะมี Refinement โดย PO จะเตรียมงานสำหรับทำ Sprint ถัดๆไป
วันศุกร์ Week 2 จะเป็น วัน Review งาน ง่ายๆคือ ส่งการบ้านให้ Po และตอนบ่าย Retrospect คือ การนำปัญหามาคุยกัน การเพิ่มความสัมพันธ์ของทีม และการย้อนไปดูปัญหาใน Sprint ที่ผ่านมาแล้วนำมาแก้ไขใน Sprint ถัดไป
“สรุป”
ในความคิดของผม การทำงานแบบ Scrum-Team เป็นวิธีที่ดีวิธีหนึ่ง เพราะ ช่วยทำให้งานออกมามีประสิทธิภาพ ตามที่ PO ต้องการ ถ้ามีการเปลี่ยนแปลง ก็สามารถแก้ไขได้เร็ว เนื่องจาก Sprint หนึ่งใช้เวลาไม่นาน และที่สำคัญที่สุด คือ การทำงานแล้วสนุกไปกับงาน แล้วงานจะออกมาดี
ขอบคุณครับ :)
อัพเดท…ปรับ Sprint เป็น Sprint Per Week