Root cause analysis เพื่อหาวิธีตอบสนองความต้องการ (Requirement)
การตอบสนองความต้องการมีได้หลายวิธี แต่ละวิธีได้ผลมากหรือน้อยแตกต่างกัน ด้วยข้อจำกัดทางทรัพยากร เช่น ทีมพัฒนา เงินและเวลา เราควรตัดสินใจเลือกวิธีตอบสนองความต้องการนั้นอย่างไร
แก้ปัญหาที่ต้นตอเพื่อตอบสนองความต้องการ (Root cause analysis)
เมื่อต้องการแก้ไขปัญหาต้องเริ่มจากการคำถามที่ถูกต้องว่า ปัญหาคืออะไร ปัญหาอะไรที่ต้องการจะแก้ไข เมื่อได้คำถามที่ถูกต้องแล้วต้องนำมาหาสาเหตุที่แท้จริง เพื่อจะตอบโจทย์ความต้องการนั้น โดยการไล่ถามซ้ำไปเรื่อยๆ ว่าทำไม ทำไม ทำไม ซ้ำๆ จนไปถึงต้นต่อของปัญหา วิธีการนี้เรียกว่า Root cause analysis จากนั้นจึงหาวิธีแก้ไขปัญหาที่ต้นต่อแท้จริงของปัญหานั้น
เช่น เว็บไซต์สำหรับจัดหาฟรีแลนซ์ ต้องการแก้ไขปัญหา “คนสมัครมาแล้วไม่เกิดการจ้างฟรีแลนซ์”
- เราจะนำคำถามนี้มาหาต่อว่าทำไมคนสมัครมาแล้วถึงไม่เกิดการจ้างฟรีแลนซ์เมื่อเราไปวิเคราะห์ข้อมูลออกมาพบว่า “ฟรีแลนซ์ไม่ตอบแชท” (กล่องสีแดง) จึงไม่เกิดการจ้างงาน
- เราก็นำส่วนนี้ไปวิเคราะห์ต่ออีกว่าทำไมฟรีแลนซ์ถึงไม่ตอบแชท พบว่าขณะนั้นฟรีแลนซ์กำลังออฟไลน์อยู่ ฟรีแลนซ์บางคนตอบช้า ฟรีแลนซ์บางคนไม่สนใจรับงานเลยไม่ตอบ ฟรีแลนซ์บางคนมีงานล้นมืออยู่แล้ว ฟรีแลนซ์บางคนไม่พอใจราคาจ้าง
- เมื่อเราได้สาเหตุที่แท้จริงมาแล้ว(กล่องสีเหลือง) เราก็จะทำการปรับปรุงโดยทำให้ผู้จ้างได้พบกับฟรีแลนซ์ที่ออนไลน์อยู่ และเป็นฟรีแลนซ์ที่ตอบกลับเร็ว เป็นฟรีแลนซ์ที่สนใจในงานนั้นและงานยังไม่ล้นมือ รวมถึงราคาสอดคล้องกับผู้จ้าง
- หลังจากได้ข้อสรุปออกมาว่าเราควรทำให้ผู้จ้างได้พบกับฟรีแลนซ์แบบใดแล้ว(กล่องสีเขียว) ก็จะนำมาคิดว่าต้องทำอย่างไรให้ผู้จ้างได้พบกับฟรีแลนซ์แบบนั้นได้
การตอบสนองความต้องการแบบที่ 1
- วิธีที่หนึ่ง(กล่องสีเหลือง) คือเราจะแนะนำฟรีแลนซ์ที่เหมาะสมไปให้กับผู้จ้าง โดยอาจทำการแจ้งเตือนไปยังผู้จ้างหลังเกิดการทักไปจ้างงาน แล้วไม่มีฟรีแลนซ์ตอบ โดยในข้อความแจ้งเตือนจะมีการแนะนำฟรีแลนซ์ที่เหมาะสมไปให้ใหม่
- จากนั้นเราก็ทำการคิดต่อว่าหากฟรีแลนซ์ที่เราแนะนำไปใหม่ยังไม่ตอบอีกละ(กล่องสีแดง) จะยิ่งทำให้ผู้จ้างเกิดความรู้สึกแย่ซ้ำสอง
- เราจึงต้องแก้ไขต่อโดยพัฒนาระบบแนะนำฟรีแลนซ์(กล่องสีส้ม) ให้ดีขึ้นด้วย
การตอบสนองความต้องการแบบที่ 2
- วิธีที่สอง(กล่องสีเหลือง) คือเราจะให้ฟรีแลนซ์ที่สนใจสามารถทักไปเสนองานแก่ผู้จ้างโดยตรง
- ซึ่งก็มีสิ่งที่ต้องระวัง(กล่องสีแดง) คือกรณีที่มีฟรีแลนซ์จำนวนมากทักไปหาผู้จ้าง หรือกรณีที่ผู้จ้างทักไปหาฟรีแลนซ์หลายคนพร้อมกันเพื่อเลือกว่าจะจ้างคนไหนและมีฟรีแลนซ์หนึ่งคนรับงานแล้วก็ไม่ควรมีใครทักไปเสนอรับทำงานได้อีก
- เราจึงกำหนดเกณฑ์ขึ้นมาว่าฟรีแลนซ์ที่จะทักไปเสนอรับทำงานได้ต้องมีงานในหมวดเดียวกับที่ผู้จ้างต้องการจ้างและยังจ้างไม่สำเร็จ มีราคาอยู่ในช่วงเดียวกับที่ผู้จ้างกำลังมองหา และยังมีงานไม่ล้นมือ รวมถึงมีการจำกัดจำนวนให้ฟรีแลนซ์สามารถทักไปเสนองานได้เพียงแค่ 5 คนแรกเท่านั้น (กล่องสีส้ม)
การเลือกฟีเจอร์มาพัฒนา
หลังจากได้วิธีแก้ไขปัญหาออกมา 2 แบบ สิ่งที่ต่างกันคือ วิธีแรกฟรีแลนซ์ที่เราแนะนำไปอาจไม่ได้สนใจรับงานก็ได้ วิธีสองฟรีแลนซ์เป็นคนเสนอตัวรับงานเองจะมีความต้องการทำงานนั้นมากกว่า
โดยปกติคนทั่วไปก็จะเลือกวิธีที่สองขึ้นมาพัฒนาทันทีเพราะดีกว่าอย่างเห็นได้ชัด แต่ในความเป็นจริง หากเราทีมพัฒนามีไม่พอและเวลาจำกัด การตัดสินใจเลือกพัฒนาวิธีแรกหรือวิธีสองเพื่อตอบสนองความต้องการนี้ ต้องทำการแตกรายละเอียดในการพัฒนาของทั้งสองแบบออกมาว่ามีงานย่อยอะไรบ้าง
จากนั้น Product Team ทำการประเมิน Business Impact ส่วนทีมพัฒนาทำการประเมินขนาดของงานย่อยแต่ละชิ้น หลังจากประเมินแล้วเราจะพบว่าฟีเจอร์ย่อยไหนคุ้มค่าที่จะพัฒนา
แต่ปัญหายังไม่จบเพราะฟีเจอร์ย่อยบางตัวสามารถทำงานด้วยตัวเองได้(Standalone) แต่ฟีเจอร์ย่อยบางตัวต้องมีฟีเจอร์ย่อยตัวอื่นด้วยจึงจะสามารถทำงานได้
ดังนั้นด้วยทรัพยากรเวลาและทีมพัฒนาที่มีจำกัด ในเบื้องต้นเราอาจเลือกพัฒนาระบบการแนะนำฟรีแลนซ์ให้ดีมากขึ้นไปก่อน เมื่อทรัพยากรเราพร้อมเราจะกลับมาพัฒนาฟีเจอร์ในฝั่งสีฟ้า