Feature lead ลองทำแล้วได้อะไรมากกว่าที่คิด
เมื่ออาทิตย์ก่อน มีการแบ่งปัน 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 และทำเอกสารควบคู่เพื่อมาดูย้อนหลังได้