Tech——Kan

สรุปคอร์ส Agile 101

ในงานพัฒนาซอฟต์แวร์ requirement ของฟีเจอร์หรือแอปในบริการหนึ่งๆ เปลี่ยนบ่อยมาก ไม่ว่าจะมาจาก business unit, การเปลี่ยนแปลงทางเทคนิคที่คาดเดาไม่ได้ หรือ feedback จากลูกค้าที่อยากได้ประสบการณ์ที่ลื่นไหลและตอบโจทย์จริงๆ ซึ่งสำคัญไม่แพ้เป้าหมายทางธุรกิจโดยรวม การตัดสินใจว่าจะทำอะไรก่อนหลัง คือก้าวแรกของการวางแผนพัฒนาซอฟต์แวร์ให้มีประสิทธิภาพ

หลักการหนึ่งที่คนในวงการพัฒนาซอฟต์แวร์ควรรู้ คือ Agile methodology กระบวนการที่ทำให้ทุกคนในทีมมองงานไปในทางเดียวกัน มีเป้าหมายเดียวกัน เพื่อให้ผลลัพธ์ตรงใจ stakeholder ที่เกี่ยวข้อง

คอร์ส Agile 101 เผยแพร่บนเว็บไซต์โครงการ pmd47 Digital Citizen สอนโดย Agilist องค์กรที่เทรน Agile ให้บริษัทและหน่วยงานชั้นนำทั่วประเทศ

จำบ้าน Scrum ด้วยตัวเลข 3 ตัว

3 : 5 : 3

3 ตัวแรก > 3 บทบาท: Product Owner, Scrum Master, Developers

บทบาทใน Scrum: product owner, scrum master และ developers

หน้าที่ของ Product Owner

  • รวบรวม requirement จาก business unit (ภายใน) หรือจากลูกค้า และตัดสินใจว่าต้องทำอะไรบ้าง
  • ตัดสินใจว่าจะทำอะไรก่อน อะไรต่อ (prioritize) ให้สอดคล้องกับ product vision
  • กำหนด acceptance criteria ว่าเมื่อเริ่มวางแผนแล้ว ผลลัพธ์ที่คาดหวังหน้าตาเป็นยังไง ใช้เป็น definition of done ของทีม
  • ประเมิน business value ที่คาดว่าจะได้ ไม่ว่าจะเป็น ROI หรือจำนวนผู้ใช้ใหม่
  • ประสานงานกับทีมที่เกี่ยวข้อง เช่น ระบบที่ต้อง integrate, เตรียม test data และทำ UAT (User Acceptance Testing) ด้วยตัวเองเพื่อตรวจสอบก่อนถึงมือผู้ใช้จริง

หน้าที่ของ Scrum Master

  • ช่วยให้ทีมทำตาม Scrum framework ได้ถูกต้องและมีประสิทธิภาพ
  • ช่วยให้ทีม Dev กับ PO สื่อสารและเข้าใจ requirement ตรงกัน
  • ช่วยเพิ่มความร่วมมือระหว่าง stakeholder เมื่อจำเป็น

หน้าที่ของ Developers

  • พัฒนาและปรับปรุงซอฟต์แวร์ตาม definition of done ที่ PO กำหนด
  • เขียนแผนการพัฒนา

5 ตัวกลาง > Scrum events

แต่ละ sprint ประกอบด้วย 5 event ดังนี้

5 scrum events

3 ตัวสุดท้าย > Scrum artifacts

ให้นึกภาพเป็นโน้ตที่ลิสต์รายการงานในแต่ละ sprint

  • Product backlog
    • ถังของงานที่ยังไม่ได้ทำ แต่วางแผนจะทำในอนาคต
    • รายการเหล่านี้เรียกว่า product backlog item
  • Sprint backlog
    • รายการที่หยิบและจัดลำดับจาก product backlog มาทำใน sprint ที่จะถึง
    • กรอบเวลาของแต่ละรายการถูกวางในช่วง sprint planning
  • Product increment
    • ผลลัพธ์ของแต่ละ sprint อาจเสร็จ 100% หรือเสร็จแค่บางส่วน
    • นำไป review กับ stakeholder เพื่อเก็บ feedback สำหรับ sprint ถัดไป จึงเรียกว่า “increment”

Scrum framework ใน sprint

ในชีวิตจริง ทีมอาจไม่ได้ทำตาม Scrum guide เป๊ะทุกข้อ แต่ก็ได้ไอเดียดีๆ ไปปรับใช้ในบริบทขององค์กรตัวเอง สุดท้ายการปรับตัวสำคัญกว่าทฤษฎี หัวใจจริงๆ ของ Scrum คือทุกคนในทีมเป็นเจ้าของความสำเร็จของ product ร่วมกัน ไม่มีลำดับชั้นในทีม มีแต่การสื่อสารที่ขับเคลื่อนให้งานเสร็จ