ไปงาน Agile Singapore 2014 มี session เกี่ยวกับ Technical เยอะมากๆ
เมื่อเข้าไปฟังพบว่าหลังจากที่ Agile ถูกประกาศใช้งานผ่านมา 10 ปีนั้น
ได้มีการกลับมา retrospective กันของกลุ่มคนที่ประกาศ Agile ขึ้นมา
ทำการสรุป key success factor สำหรับการนำ Agile ไปใช้งาน ได้ดังนี้

  1. Demand Technical Excellence
  2. Individual Change and Lead Organizational Change
  3. Organize Knowledge and Improve Education
  4. Maximize Value Creation Across the Entire Process

จะเห็นได้ว่าข้อแรกนั่นคือ ความต้องการทางด้าน Technical Excellence
ดังนั้น มาดูกันว่าเขาอธิบายไว้อย่างไรบ้าง
โดยนำมาจาก VDO ของคุณ James grenning ในเรื่อง Technical Excellence

เริ่มต้นด้วยหัวใจของ Scrum ก่อนจากคุณ Ken Schwaber

Screen Shot 2557-11-18 at 10.25.20 AM

แปลเป็นไทยได้ว่า
Scrum นั้นมีเป้าหมายเพื่อทำให้คุณเห็นปัญหา เพื่อทำให้สามารถแก้ไขมันได้

ยังไม่จบนะ ยังพูดต่อไปอีกว่า

Screen Shot 2557-11-18 at 10.29.02 AM

แต่โชคร้ายจริงๆ ที่หลายๆ องค์กรที่นำ Scrum ไปใช้งาน
ทำการปรับเปลี่ยนมัน หรือ ผันรูปมันไปให้เข้ากับองค์กร
แทนที่จะแก้ไขปัญหา เศร้าใจมากๆครับ …

คุณ Jeff Sutherland บอกด้วยว่า ปัญหาใหญ่ของทีม Scrum เลยก็คือ

Screen Shot 2557-11-18 at 10.34.51 AM

ปัญหาใหญ่ของทีม Scrum ก็คือ ไม่สามารถสร้างสิ่งที่เรียกว่า shippable code ได้เมื่อจบทุกๆ sprint

ทำให้เรามีสิ่งที่เรียกว่า Hardening Sprint ขึ้นมา

เพื่อชดใช้หนี้ต่างๆ เช่น

  • fix bug
  • testing

Screen Shot 2557-11-18 at 10.37.01 AM

ซึ่งมันก่อนให้เกิดปัญหาอย่างมากๆ ทำให้สิ่งที่ทำมานั้นไร้ความหมาย
สุดท้ายก็งานเข้า หรือ ไฟไหม้เช่นเดิม ดังรูป

Screen Shot 2557-11-18 at 10.37.11 AM

ดังนั้น การค้นหา bug และ จัดการ bug นั้น
มันไม่ใช่แนวทางของ Technical Excellence เลยนะครับ จำไว้ด้วย

คำถามที่น่าสนใจ

Scrum นั้นเข้ามาเปลี่ยนจังหวะในการพัฒนาระบบ
แล้วทีมพัฒนาของคุณทำการเปลี่ยนแปลงวิธีการสร้างระบบหรือไม่ อย่างไร ?

คำตอบคือ
สิ่งที่คุณขาดไปเสียไม่ได้เลยนั่นคือ Scrum + Extreme Programming (XP)

Screen Shot 2557-11-18 at 10.44.51 AM

แต่สิ่งที่แปลกใจไม่น้อย หรือ มองว่าเป็นจุดที่น่ากลัว ในปัจจุบัน ก็คือ

มีการนำสถิติของจำนวนคนที่เรียน และ ได้รับ certified ระหว่าง Scrum Master (CSM) กับ Scrum Developer (CSD)
มันช่างแตกต่างกันมากมาย ดังรูป

Screen Shot 2557-11-18 at 10.46.29 AM

ข้อมูล update ล่าสุดจากงาน Agile singapore 2014 พบว่า
อัตราส่วนระหว่าง CSP vs CSD อยู่ที่ 6  ต่อ 1 นั่นคือ
CSP 6 คน ต่อ CSD 1 คน  ซึ่งมันดูแปลกๆ ไหมล่ะ !!!

ดังนั้นเรื่องของ Technical Excellence นั้นจะขาดไปเสียมิได้เลยนะครับ
ซึ่งเป็นแนวปฏิบัติของ Extreme Programming (XP) นั่นเอง เช่น

  • Test-Driven Development
  • Pair programming
  • Continuous Integration
  • Coding standard
  • Refactoring
  • Collective code ownership
  • Sustainable pace

ตัวอย่างเช่น

Developer อย่างเราๆ ท่านๆ ควรรู้จัก และ เข้าใจเกี่ยวกับเรื่องต่างๆ ต่อไปนี้

  • Agile Software Development
  • Clean Code
  • Refactoring

เพื่อทำให้รู้ว่าอะไรที่มันผิดที่ผิดทาง เพื่อทำการแก้ไขมันซะ
เพื่อทำให้ code ของเรามันดี และ ทำงานงานดีอยู่เสมอนะครับ

Screen Shot 2557-11-18 at 11.05.37 AM

ในการ Refactoring code นั้น คุณจะรู้สึกปลอดภัยได้อย่างไร
ถ้าปราศจาค test และ automated test
รวมทั้งต้องเข้าในการจัดการกับ legacy code ด้วยนะ ดังรูป

Screen Shot 2557-11-18 at 11.07.49 AM

จากสถิติบอกว่า

60% ของทีม Agile ซึ่งนำ Scrum ไปใช้
โดยไม่ให้ความสนใจ technical practice
มักจะไม่สามารถส่ง shippable code ได้เมื่อจบ Sprint !!!
เราอยู่ใน 60% หรือไม่นะ …

ปิดท้ายด้วยคำถามที่กระแทกใจนิดหน่อย ว่า

Screen Shot 2557-11-18 at 11.11.26 AM

ทำไม ทำไม ทำไม ทำไม ???

คำตอบคือ ….
you