Scrum คือ

หากพูดถึงกระบวนการพัฒนาซอฟต์แวร์ที่ทุกคนน่าจะรู้จักเป็นอย่างดี อย่าง Agile ที่นิยมใช้มาพัฒนาซอฟต์แวร์ในหลายๆองค์กรเพื่อตอบสนองและส่งมอบให้กับลูกค้าได้อย่างรวดเร็ว Agile เป็นหลักการหรือ ทฤษฎีการทำงาน แต่ Scrum ซึ่งเป็นกรอบแนวความคิด(Framework) ที่จะส่งมองซอฟต์แวร์ที่มีประสิทธิและส่งมอบได้อย่างต่อเนื่องให้กับลูกค้าได้ ซึ่งการใช้ Scrum Framework ก็ตอบสนองการพัฒนาซอฟต์แวร์ภายใต้ Agile เช่นกัน

Scrum คืออะไร?

     Scrum คือ Project Management Framework หรือแนวทางการพัฒนาซอฟต์แวร์ให้สามารถส่งมอบซอฟต์แวร์ได้อย่างรวดเร็ว โดยแบ่งงานเป็นชิ้นเล็กๆเพื่อสามารถส่งมอบให้กับลูกค้าเป็นส่วนๆได้  การทำงานแบบนี้สนับสนุนให้เราเรียนรู้และปรับปรุงการทำงานจากประสบการณ์ที่ผ่านมาให้ดียิ่งขึ้นต่อไป การทำงานแบบ Scrum จะเน้นการทำงานกันเป็นทีม คอยช่วยเหลือกันเพื่อให้งานสำเร็จตาม Gold ที่ตั้งไว้ Scrum รองรับการทำงานที่มีการเปลี่ยนแปลงอย่างรวดเร็วเช่น Requirement เปลี่ยน Gold เปลี่ยน หรือช่วยลดความเสี่ยงต่างๆที่อาจะเกิดขึ้น เพื่อให้ลูกค้าสามารถเห็นผลงานและให้คำติชมกับทีมพัฒนาได้อย่างรวดเร็ว

กิจกรรมที่เกิดขึ้นใน Scrum

Product Backlog
     Product Backlog คืองานที่ต้องทำให้เสร็จหรือซอฟต์แวร์ที่ต้องส่งมอบให้กับลูกค้า ซึ่งจะมี User Story ที่ระบุ Requirement ของลูกค้าไว้ ส่วน Backlog Refinement เป็นการวาแผนงานและจัดลำดับความสำคัญของงานที่จะส่งมอบให้เป็นไปตาม Gold ที่วางไว้ งานที่สำคัญที่สุดจะถูกวางไว้ด้านบนของบอร์ดเพื่อให้คนในทีมได้รู้ว่างานอะไรสำคัญและต้องส่งมอบงานอะไรก่อน การจัดลำดับความสำคัญนั้นมักเกิดจาก Product Owner ที่ลำดับตามความต้องการของลูกค้าหรือ Feedback ต่างๆ

Sprint Planning
     เป็นการวางแผนการทำงานร่วมกับทีม Scurm ก่อนเริ่ม Sprint โดยมีวัตถุประสงค์เพื่อกำหนดส่งที่จะส่งมอบหลังจากจบ Sprint คำว่า Sprint นั้นคือระยะเวลาการทำงาน โดยทั่วไปอยู่ระหว่าง 1-4 สัปดาห์ แล้วแต่บริษัทว่าจะกำหนดให้ 1 Sprint มีกี่สัปดาห์ เช่น 1 Sprint อยู่ที่ 2 สัปดาห์ การวางแผนงานจำเป็นต้องมีการประเมินงานก่อน เพื่อจะได้รู้ความยากง่ายและ Effort ที่จะใช้ในแต่ละ Story ดังนั้น การประเมินงานนั้นนิยมใช้ Planning Poker เข้ามาช่วยประเมินงาน ในการประเมินงานควรมีการพูดคุยถึงประเดนต่างๆอย่างกว้างขวางจากทุกคนในทีม เพื่อให้การประเมินนั้นใกล้เคียงกับความเป็นจริงมากที่สุด การวางแผนเพื่อทำ Sprint Planning นั้นควรใช้ระยะเวลาไม่เกิน 2 ชั่วโมงต่อ 1 สัปดาห์ เช่นหาก 1 Sprint ใช้เวลา 2 สัปดาห์ การจัดประชุมไม่ควรเกิน 4 ชั่วโมง ขึ้นตอนการทำ Sprint Planning ประกอบไปด้วย
   1. Scrum Master จะทำหน้าที่อ่าน User Story แล้วอธิบาย คอยสอบถามคนอื่นๆว่าเข้าใจตรงกันหรือไม่
   2. ทีมจะประเมินความยากง่ายของงานและให้คะแนนตาม Poker Point 
   3. การให้คะแนนอาจจะมีความแตกต่างกัน ทีมจะคอยพูดคุยกันว่าคะแนนที่แต่ละคนให้เพราะอะไร
   4. ทีมจะพูดคุยจนกว่าคนส่วนใหญ่เห็นว่า Point ของ User Story นั้นๆควรเป็นเท่าไหร่ เมื่อได้ Point ที่แน่นอนแล้วก็ Add ไปยัง User Stroy

Sprint Goal
   เป็นการอธิบายวัตถุประสงค์ของแต่ละ Sprint ว่าต้องการผลลัพธ์อะไรเช่น ใน Sprint นี้ต้องการให้ซอฟต์แวร์รองรับการจ่ายเงินโดยพร้อมเพย์ได้ ซึ่ง Sprint Goal ที่ตั้งไว้ก็จะมีความสอดคล้องกับ Sprint backlog ที่ได้เตรียมไว้แล้วจาก Sprint Planning งานที่อยู่ใน Sprint backlog นั้นเป็นงานที่ทีมตกลงร่วมกันว่าจะพัฒนาให้เสร็จตาม Sprint Goal เพื่อส่งมอบให้กับลูกค้า Sprint backlog ต่างจาก Product Backlog เพราะ Sprint backlog เป็นสิ่งที่ทีมพัฒนาเป็นคนเลือกงานที่จะไปพัฒนเองแต่ Product Backlog เป็นงานที่ Product Owner นั้นเตรียมไว้ให้ทีมพัฒนา

Daily Scrum
   เป็นการประชุมระยะเวลาสั้นๆทุกวัน(Stand-up) เพื่อ Update ความคืบหน้าในตัวงานของแต่ละคน เหตุที่ต้อง Stand-up หรือยืนขึ้นเพื่อ Update งานนั้นก็เพราะว่าอยากประชุมสั้น 3 คำถามง่ายๆที่จะให้ทุกคนในทีมสามารถ Update งานตัวเองได้คือ
  • เมื่อวานทำอะไร?
  • วันนี้จะทำอะไร?
  • มีปัญหาอะไรและต้องการความช่วยเหลือจากใคร?
ในการประชุม Stand-up นั้น Scurm Master ควรเปิด JIRA บอร์ดควบคู่ไปด้วยเพื่อจะได้เห็นว่า Stroy ไหนอยู่สถานะไหนแล้วเช่น To-Do, In-Progress หรือ Done

Sprint Review
   Sprint Review เป็นการสรุปว่าใน Sprint นี้งานอะไรที่เสร็จไปแล้วบ้าง พร้อม Demo ซอฟต์แวร์ที่ทีมได้พัฒนาให้กับคนที่มีส่วนเกี่ยวข้องดูหลังจากจบ Sprint แล้วเช่น ทีมใกล้เคียง, Product Owner, IT Director เป็นต้น ก่อนจะขึ้น Production จริง เพื่อเปิดโอกาสให้ถามคำถาม, ขอ Feedback ต่างๆ, ทดลอง Feature ที่ได้ทำ รวมถึงแบ่งปันความสำเร็จต่างๆให้กับทีมอื่น

Retrospectives
     เป็นการมองย้อนกลับไปตั้งแต่เริ่ม Sprint จนจบ Sprint ว่ามีอะไรที่จะต้องปรับปรุงบ้างทั้งในด้านเทคนิคและไม่ใช่ด้านเทคนิค โดยอาจจะพูดถึงจุดไหนที่ดีแล้วก็สนับสนุนให้ทำต่อไป จุดไหนต้องปรับปรุงก็ช่วยกันหาวิธีการต่างๆมาช่วยกันแก้ปัญหาเพื่อเพิ่มประสิทธิภาพการทำงานให้ดียิ่งๆขึ้นไป การประชุมจะจัดโดย Scrum Master เป็นคนคอยควบคุมการสนทนาให้อยู่ในเชิงบวก เพราะบางครั้งจุดที่ต้องปรับปรุงนั้นอาจจะเกิดจากความผิดพลาดของบุคคล อาจเกิดการสนทนาเชิงลบได้ ทั้งนี้ Retrospectives ไม่ได้หาข้อผิดพลาดจากตัวบุคคลแต่มองไปถึงว่าทำไมข้อผิดพลาดนั้นจึงเกิดขึ้นและช่วยกันคิดหาวิธีโดยกระบวนการต่างๆมาป้องกันข้อผิดพลาดต่างๆเพื่อไม่ให้เกิดขึ้นอีก ตัวอย่างรูปแบบคำถามที่มักใช้ตอนทำ Retrospectives
   1. Start สิ่งที่ยังไม่ได้ทำ ควรเริ่มทำได้แล้ว
   2. Stop สิ่งที่ไม่ควรทำ หยุดทำได้แล้ว
   3. Continue สิ่งที่ดีอยู่แล้ว ควรทำต่อไป

สมาชิก Scrum Team
     โดยทั่วไปแล้ว Scrum Team จะประกอบไปด้วย 3 Roles ต่อไปนี้ Product Owners, Scrum Masters และ Development Teams
  • Product Owners เป็นคนที่ทำงานใกล้ชิดกับลูกค้า รู้ความต้องการของธุรกิจ เป็นคนประสานงานกับทีมภายนอกหากต้องมีส่วนใดเกี่ยวข้องกัน และกำหนดเป้าหมายการทำงาน(Goals)ให้กับ Scrum Team รวมถึงเป็นคนลำดับความสำคัญให้กับทีมว่าส่วนไหนเร่งด่วนก่อนหลัง
  • Scrum Master รับผิดชอบดูแล Scrum Team ดำเนินงานให้มีประสิทธิภาพสูงสุด เป็นคนช่วยให้ทีมทำงานไปตามแผน เป็นผู้นำในการประชุมต่างๆเช่น Daily Standups, Sprint Planning, Retrospective เป็นต้น คอยช่วยทีมแก้ไขปัญหาต่างๆที่เกิดขึ้น คอยประสานงานช่วยเหลือทีมหากต้องมีการติดต่อจากทีมหรือบุคคลภายนอกทีม
  • Development Team คือทุกคนที่ช่วยพัฒนาซอฟต์แวร์ให้สามารถส่งมอบไปยังลูกค้าได้ ซึ่งอาจจะประกอบไปด้วย Developer, UX/UI, Tester, Designers, Data Analysts เป็นต้น ทีมพัฒนาแต่ละคนอาจจะมีหน้าที่แตกต่างกันออกไปแต่ทุกคนมีหน้าที่ทำให้เป้าหมายที่ถูกวางไว้ให้สำเร็จลุล่วง

ป้ายกำกับ

แสดงเพิ่มเติม

บทความยอดนิยม

Software Development Life Cycle (SDLC) คืออะไร ทำไมจำเป็นต่อการพัฒนาซอฟต์แวร์

ม.ปลายอยากเข้าสายคอม วิทยาการคอม วิศวกรรมคอม เตรียมตัวอย่างไร ต้องมีพื้นฐานอะไรบ้าง

Automation testing หรือ การทดสอบซอฟต์แวร์อัตโนมัติ คืออะไร ทำไมถึงสำคัญต่อการทดสอบซอฟต์แวร์

วิธีเก็บ วิเคราะห์ รวบรวม requirement อย่างไรให้มีประสิทธิภาพ

Performance Test คือ อะไร วัดประสิทธิภาพของระบบ ล่มไม่ล่ม จะรู้ได้อย่างไร

8 สิ่งที่ AI จะมาเปลี่ยนโลกในอนาคต

ถอดรหัสความลับเครื่อง Enigma จุดเริ่มต้นและจุดจบของสงครามโลกครั้งที่ 2