วันนี้อ่านบทความเกี่ยวการพัฒนา
แล้วไปสะดุดกับคำว่า SPACE framework
ซึ่งบอกว่าใช้ช่วยเพิ่ม productivity ให้กับทีมพัฒนา
จึงไปดูเพิ่มว่ามันคืออะไร
ก็ไปเจอบทความ The SPACE of Developer Productivity

สำหรับการอธิบายเรื่อง productivity
ที่ไม่ใช่เป็นเรื่องส่วนบุคคล หรือ ทีม หรือ ระบบเพียงอย่างเดียว
ที่ไม่ใช่การใช้งาน metric เพียงไม่กี่ตัวก็วัดได้
หรือไม่ใช่สิ่งเดียวที่ manager สนใจ

โดยที่ SPACE ย่อมาจาก

  • Satisfaction and well-being
  • Performance
  • Activity
  • Communication and collaboration
  • Efficiency and flow

Satisfaction and well-being

ความพึงพอใจของ developer
ที่มีต่องาน ทีม เครื่องมือ หรือวัฒนธรรมขององค์กร ว่าเป็นอย่างไร
งานที่ทำมี impact อย่างไร

Performance

ควรต้องทำการวัดจาก outcome ที่ออกมา ไม่ใช่จาก output ที่ทำได้
เพราะว่าเรื่องของ performance ไม่สามารถวัดได้ในแต่ละคน
เนื่องจากทำงานเป็นทีมดังนั้นควรต้องวัน performance ให้ถูก
เช่น

เรื่องของคุณภาพ
ก็วัดกันที่ความเสถียรและน่าเชื่อถือของระบบ
มี bug เยอะไหม

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

Activity

การวัดจาก activity ในการทำงาน
อาจจะวัดได้หรือไม่ได้ก็เป็นไปได้
แต่ก็อาจจะช่วยให้เห็น activity ต่าง ๆ ได้ชัดเจนขึ้น
ซึ่งถ้าเลือกได้อย่างถูกต้องและเหมาะสมก็จะได้ผลดีมากกว่าเสีย
ยกตัวอย่างเช่น

การ Design และ coding
วัดที่จำนวนหรือปริมาณของเอกสารและ spec ต่าง ๆ
จำนวน commit, code review และ pull request เป็นต้น

จากระบบ Continuous Integration และ Deployment
นับจากจำนวนการ build, test และ deploy หรือ release
รวมถึงการใช้งาน resource ต่าง ๆ ของระบบ

ไปจนถึง operation activity
ที่ดูถึงจำนวน issue หรือ incident ที่เกิดขึ้นและแยกตาม severity อีกด้วย
ไปจนถึงจำนวนการ on-call
และการแก้ไข incident ต่าง ๆ ว่าเยอะไหม

โดยที่ตัวเลขต่าง ๆ จะช่วยให้เราเห็นการทำงานตลอดจนปัญหา
และวิธีการแก้ไขต่อไป

Communication and collaboration

ว่าด้วยเรื่องของการทำงานร่วมกันว่าเป็นอย่างไร
เนื่องจากการพัฒนา software นั้น มันคือการทำงานร่วมกัน
ตั้งอยู่บนการติดต่อสื่อสารที่ดี มีประสิทธิภาพ
การประสานงานที่ดี ไร้รอยต่อทอเต็มผืน
ยิ่งการทำงานระหว่างทีมหรือหลาย ๆ ทีม ยิ่งสำคัญ
ไม่ให้เกิดปัญหาคอขวด หรือ deadlock

โดยส่วนใหญ่จะวัดจาก

  • ความเร็วของการ integrate ระหว่างทีมหรือระบบ
  • เอกสารต่าง ๆ สามารถหาได้ง่าย รวมทั้งผู้เชร่ยงชาญอีกด้วย
  • คุณภาพของการ review งานต่าง ๆ ที่แยกกันไปทำงานมาก
  • แต่ละส่วนงานเชื่อมต่อการอย่างไรบ้าง
  • เมื่อมีสมาชิกใหม่เข้ามา ต้องใช้เวลานานไหมในการเรียนรู้ เรื่องนี้สำคัญมาก ๆ

Efficiency and flow

เป็นเรื่องสุดท้ายที่สำคัญสุด ๆ
นั่นคือความสามารถในการทำงานที่ได้รับมอบหมายให้เสร็จสิ้น
หรือการทำให้คืบหน้า
โดยที่ปราศจาคการขัดจังหวะ หรือ ทำให้ช้าลงไป
ซึ่งเป็นทั้งในเรื่องส่วนตัว ทีม และทั้งระบบ

โดยจะวัดจาก

  • มีอะไรที่มาขัดจังหวะการทำงานบ้าง
  • เวลาต่าง ๆ ที่ใช้ไป เช่น เวลาทั้งหมดตั้งแต่ต้นจนจบ หรือ เวลาที่ต้องรออะไรสักอย่าง
  • จำนวนเวลาที่ไม่มีอะไรมาขัดจังหวะเลย
  • จำนวนงานที่ต้องทำใน process หรือ ข้ามทีม

ตัวอย่างตัวชี้วัด หรือ metric

เป็นอีกเรื่องที่น่าสนใจ ลองศึกษาเพิ่มกันดูครับ