Automation

เมื่ออาทิตย์ก่อน มีการแบ่งปัน technique ในการพัฒนา software ที่เรียกว่า Feature leading ซึ่งทีมของเราเองก็ใช้งานอบู่เหมือนกัน การที่ได้ฟังคนอื่นแบ่งปันประสบการณ์ ทำให้เรารู้ว่า technique นี้มันมีประโยชน์บางอย่างที่แม้แต่ตัวเราเองมองข้ามไป จึงนำมาสรุปไว้สักหน่อย

Feature leading คืออะไร

Feature leading เป็น technique ที่มอบบทบาทสมมติให้กับใครก็ได้ในทีมพัฒนา (แนะนำว่าเป็น developer จะได้รับประโยชน์สูงสุด) โดยมีหน้าที่ความรับผิดชอบคร่าว ๆ คือ

  • เป็นคนที่รู้หรือเข้าใจใน feature ใด ๆ เมื่อมีเหตุการณ์หรือกิจกรรมที่เกี่ยวข้องกับ feature นั้น (domain expert)
  • จัดการตั้งแต่เก็บวิเคราะห์ requirement และ scope ของ feature ไปจนถึง ออกแบบ solution ที่ในไปทิศทางเดียวกันกับ business
  • หาทางแก้ปัญหาเมื่อมีสิ่งที่ขัดต่อการส่งมอบคุณค่าทาง business ของ feature นั้น ๆ
  • วิเคราะห์และออกแบบ roadmap ของ feature นั้น ๆ

Technique ที่ช่วยควบคู่กับ Feature leading

  • Effective communication: ฝึกการพูดคุยกับ stakeholder รวมไปถึงสมาชิกคนอื่นในทีม เช่น Experience designer
  • Trade-off slider: การตกลงลำดับความสำคัญ (priority) กับทุกคนที่มีส่วนเกี่ยวข้องเพื่อให้เห็นว่าการจะไปถึงเป้าหมายของ project อะไรจะต้องเริ่มก่อน-หลัง จะช่วยได้ตอนที่ requirement ล้นมือ แต่ไม่มีเวลาพอที่จะส่งมอบ
  • RAIDs: ย่อมาจาก Risk, Assumption, Issue, Dependencies เพื่อแสดงให้ทุกคนที่มีส่วนเกี่ยวข้องเห็นถึงปัญหาที่มีผลต่อการส่งมอบและหาทางรับมือได้ทันท่วงทีเมื่อปัญหานั้นเกิดขึ้น
  • Pair development: Feature lead เมื่อทำเป็นคู่แล้วจะลดแนวโน้มที่ context สูญหายและไปขวางการส่งมอบงานเมื่อ feature lead ย้ายออกหรือลา

ประโยชน์ของ Feature leading

  • Ownership and accountability: เพิ่มความเข้าใจใน feature รวมไปถึงระบบโดบรวมที่มีผลต่อ feature นั้น ๆ มีผลทำให้เสนอความคิด เพื่อต่อยอดคุณค่าทาง business ที่นอกเหนือจาก feature นั้น ๆ
  • Technical decision making: สำหรับ developer จะช่วยฝึกการตัดสินใจทาง technical ซึ่งการตัดสินใจที่ดีย่อมมาจากความเข้าใจภาพรวมที่ดี และการวิเคราะห์ requirement ที่เพียงพอที่จะปรับเปลี่ยนในอนาคตได้ง่าย
  • Stakeholder management: การเป็น feature lead มีแนวโน้มผลักดันให้เข้าหา stakeholder ที่เกี่ยวข้อง ทั้งในและนอกองค์กร ช่วยลดช่องว่างระหว่าง business และ technical และฝึกการสื่อสาร การนำเสนอ
  • Strategic thinking: การวางแผน roadmap ช่วยให้เราฝึกการวิเคราะห์รอบด้าน รวมถึงเข้าใจ dependency ที่ทีมของเรามีด้วย
  • Coaching: สำหรับสมาชิกในทีมคนอื่น เป็นการฝึกการสื่อสารเพื่อแบ่งปันแนวทาง ประสบการณ์สู่ feature lead ที่อาจจะยังไม่มีประสบการณ์มากมาย

การนำไปใช้งานจริง

  • ประเมินว่า technique นี้เหมาะสมกับทีม ณ ตอนนี้หรือไม่ เช่น ถ้าทุกคนในทีมเข้ามาใหม่หมด หมายความว่าถ้า feature lead พลาด จะไม่มีใครช่วยได้เลย ดังนั้นเลยแนะนำว่า นำ technique นี้มาใช้ตอนที่ทีมมี context มาสักระยะหนึ่งแล้ว
  • ก่อนที่ feature lead จะนำเสนอความคิด เพื่อต่อยอดคุณค่าทาง business ให้พูดคุยกันในทีมพัฒนาก่อนนำเสนอให้ลูกค้า เพื่อประเมินว่าควรจะไปต่อหรือพอแค่นี้
  • สร้างสภาพแวดล้อมที่เอื้อให้ feature lead ลองผิดลองถูกในสิ่งที่ยอมรับได้ โดยในระยะแรก ๆ ให้สมาชิกในทีมที่มีประสบการณ์มากกว่าหรือสวมบทบาทเฉพาะเช่น Business Analyst หรือ Technical Lead ช่วยเหลือและให้คำแนะนำเพื่อนำไปปรับปรุง
  • มีการผัดเปลี่ยน feature lead กันในทีมเพื่อแบ่งปัน context และทีมสามารถทดแทนกันได้เมื่อ feature lead ย้ายออกหรือลา อย่าให้นานเกินไป ถ้าสถภานการณ์บีบคั้นจนไม่สามารถผัดเปลี่ยนไดเ ให้จัด session เพื่อแบ่งปัน context และทำเอกสารควบคู่เพื่อมาดูย้อนหลังได้