กินกบตัวนั้นซะ ! ก่อนที่มันจะมากินหัวคุณ !!
💡 เคยเป็นกันไหม? บางทีเราก็มีงานที่ยากมากๆ รออยู่ แต่เร […]
ในโลกของการทำงาน โดยเฉพาะสาย Software Development (หรือ IT ของเรา) เราอาจรู้สึกว่าเวลาส่วนใหญ่หมดไปกับการจัดการกับปัญหาต่าง ๆ เต็มไปหมด ซึ่งพอมองดูดี ๆ ปัญหาที่ดูเล็กน้อยเหล่านั้น มันกลับทำให้เราวุ่นวายจนหมดวันไปโดยไม่รู้ตัว
และ ถ้าเราเจออะไรแบบนี้ หนึ่งสิ่งที่เราควรศึกษานั่นก็คือ Pareto Principle หรือที่รู้จักกันในนาม “กฎ 80/20” ที่เขาบอกไว้ว่า
“80% ของผลลัพธ์มักจะเกิดจาก 20% ของสาเหตุทั้งนั้น ซึ่งถ้าเราโฟกัสที่ปัญหาแค่ 20% ที่สำคัญจริง ๆ มันอาจช่วยแก้ปัญหาอื่น ๆ ที่เหลืออีก 80% ได้โดยอัตโนมัติ”
ฟังดูแล้ว โอ้โห !! นี่มันเวทย์มนต์ชัด ๆ จริง ๆ มันไม่ได้มี Magic อะไรขนาดนั้น แต่สำหรับคนทำงานด้านไอที คิดภาพตามนะครับว่า “ถ้าเราโฟกัสแค่บั๊กที่มีผลกระทบกับระบบสูงสุด เราก็อาจจะเห็นความเสถียรที่ดีขึ้นอย่างชัดเจน และจะช่วยประหยัดเวลาในการต้องตามแก้บั๊กเล็ก ๆ อื่น ๆ ด้วย” นั่นแหละ คือหลักการเดียวกันของเรื่องนี้เลย !!
เอาแบบที่เห็นได้ชัดเจนคือ “การจัดการบั๊ก” นั่นเอง ซึ่งในโปรเจกต์ซอฟต์แวร์ขนาดใหญ่ เรามักพบว่าบั๊กส่วนใหญ่นั้นถูกสร้างขึ้นมาจากโค้ดเพียง 20% เท่านั้น นั่นหมายความว่าถ้าเรารู้จักโฟกัสไปที่การปรับปรุงโค้ดส่วนนั้น เราก็อาจแก้ไขปัญหาได้อย่างมหาศาลแล้ว ไม่ต้องมานั่งล่าบั๊กทีละตัวให้เสียเวลา
อีกตัวอย่างหนึ่งคือการพัฒนาฟีเจอร์ใหม่ ๆ ทีมไอทีหรือ Dev Team ที่ดีมักจะรู้ว่า 20% ของฟีเจอร์สามารถทำให้ผู้ใช้งาน 80% พึงพอใจได้ ดังนั้นการเลือกโฟกัสที่ฟีเจอร์หลัก ๆ ที่จะสร้างผลลัพธ์ได้มากกว่า ก็ทำให้เราสามารถประหยัดทรัพยากร และทำให้ระบบออกสู่ตลาดได้เร็วขึ้น ซึ่งแนวคิดตรงนี้สามารถนำไปใช้พัฒนา MVP ของ Products / Services ของเราได้ด้วย
ใด ๆ ก็แล้วแต่ การนำไปใช้นั้นอาจจะไม่ได้ตรงไปตรงมา บางคนลิสต์มาแล้วหยิบ ๆ สุ่ม ๆ แก้ แบบนี้ปัญหาไม่หายแน่ ๆ (หรืออาจจะหาย แต่เป็นหายนะ แทน 555) ซึ่งแอดเปรมก็ได้รวมขั้นตอนหลัก ๆ เอาไว้ให้แล้ว
โดยให้เริ่มต้นจากการระบุปัญหาที่มี Impact สูงสุด เป็นสิ่งแรก ซึ่งขั้นแรกเราต้องทำความเข้าใจกับระบบโดยรวมและตรวจสอบให้ได้ว่าปัญหาหลัก ๆ นั้นอยู่ที่ไหน ซึ่งก็มีเทคนิคมากมายที่ทำให้เราไม่ได้มโนไปเองตั้งแต่
การเก็บและวิเคราะห์ข้อมูลเป็นขั้นตอนแรกที่สำคัญ เราสามารถใช้ Log Analysis หรือ Monitoring Tools ต่าง ๆ เช่นพวก New Relic, Datadog หรือ Grafana มาช่วยดูภาพรวมระบบได้ โดยให้เราลองสังเกต หรือ ลองมองหา
การวิเคราะห์ Log เหล่านี้จะช่วยให้เราเห็นชัดเจนว่าจุดไหนที่เป็น bottleneck และควรได้รับการแก้ไขก่อน ทำให้เราสามารถโฟกัสที่ปัญหา 20% นั้นเพื่อให้ได้ผลลัพธ์ที่ดีขึ้นทั้งระบบได้เลย
เมื่อเราพบปัญหาหลักแล้ว การใช้ Root Cause Analysis จะช่วยให้เราระบุได้ว่าอะไรเป็นสาเหตุแท้จริงของปัญหา โดยใช้เครื่องมือหรือเทคนิคเหล่านี้ในการทำได้เลย
เมื่อทราบสาเหตุที่แท้จริง เราสามารถวิเคราะห์ Impact ของปัญหาได้ ซึ่งขั้นตอนนี้ “โคตรสำคัญ” เพราะการเจอปัญหานั้น ใคร ๆ ก็อาจเจอได้ การแก้ปัญหานั้น อาจจะแก้ได้หลากหลายวิธี แต่ถ้าเราจัดลำดับความสำคัญไม่ถูก เราจะเสียเวลามาก ๆ กับปัญหาที่ไม่คุ้มค่าต่อการแก้เลย ซึ่งเราสามารถลองดูได้จากโดยการตอบคำถามเหล่านี้ (อาจลองตอบกันในทีมก็ได้นะ)
การจัดลำดับนี้จะช่วยให้ทีมสามารถโฟกัสที่ปัญหา 20% ที่สำคัญที่สุด โดยที่สามารถใช้ทรัพยากรและเวลาของทีมให้เกิดประโยชน์สูงสุดได้นั่นเอง
เมื่อเรารู้แล้วว่าปัญหา 20% นั้นคืออะไร และได้ลงมือแก้ไข ลำดับถัดไปคือการทดสอบผลลัพธ์ ซึ่งก็ทำได้หลายวิธีตั้งแต่
เมื่อแก้ปัญหาและเห็นผลลัพธ์ที่ดีแล้ว ลองทำให้เป็นอัตโนมัติโดยใช้ CI/CD Pipelines หรือการตั้งค่าให้ระบบตรวจสอบ Latency อยู่เสมอ การทำงานให้เป็น Automation จะช่วยให้ทีมพัฒนามีเวลาทำงานกับปัญหาอื่น ๆ ที่สำคัญต่อไปได้นั่นเอง 📈
ส่วนฟีดแบ็ครูปแบบอื่น ๆ ก็ใช้รูปแบบ Design Thinking หรือ Framework อื่น ๆ มาจับเพื่อให้เกิด Feedback ในการพัฒนา ที่สำคัญเราควรใช้ทักษะสายไอทีของเราในการทำให้งานพวกนี้อัตโนมัติได้ด้วย ไม่ว่าจะเป็นการใช้ระบบ Ticket ในการ Tracking ปัญหาต่าง ๆ รวมถึงจบที่การวัดผลความพึงพอใจของผู้ใช้งานแบบอัตโนมัตินั่นเอง
การใช้ Pareto Principle ในงาน Software Development หรือ IT จะช่วยให้ทีมพัฒนาไม่ต้องเจอกับอาการ Burnout เพราะเราไม่ต้องพยายามทำทุกอย่างให้สมบูรณ์แบบไปซะทุกจุด
เรียกได้ว่าประหยัดเวลาและทรัพยากร แถมยังสามารถส่งมอบงานได้เร็วขึ้นอีกด้วย ที่สำคัญคือเมื่อระบบเสถียร ผู้ใช้พึงพอใจ ก็ทำให้ทีมของเราได้รับ Feedback ที่ดีขึ้น และสร้างแรงจูงใจให้พัฒนาต่อไปได้อีกนะคร้าบ
อย่าลืมลองนำ Pareto Principle ไปใช้กันนะครับ คิดแค่ 20% ที่สำคัญ แล้วอีก 80% จะตามมาเอง 👨💻👩💻