จรัล งามวิโรจน์เจริญ Chief Data Scientist & VP of Data Innovation Lab บริษัท เซอร์ทิส จำกัด
ช่วงนี้ผมให้ความสนใจเกี่ยวกับการนำ “DevOps” มาใช้ในการจัดการองค์กรให้มีประสิทธิภาพ ซึ่งเป็นแนวคิดที่ผสมผสานกันระหว่าง development และ IT operations โดยอาศัยกระบวนการพัฒนา (development) การทดสอบ (testing) และโครงสร้างพื้นฐานทาง IT (IT infrastructure) เพื่อสร้างห่วงโซ่คุณค่า (value stream chain) ในการตอบสนองโจทย์ทางธุรกิจขององค์กร
นอกจากนี้ยังนำหลักการที่ใช้ในการบริหารจัดการโรงงานมาใช้ร่วมกันด้วย เช่น Toyota มีการใช้ lean management, คัมบัง (kanban), และการจัดการ WIP (work in progress) ซึ่งเป็นหลักการที่ดีที่เราสามารถนำมาปรับใช้กับสายงานด้านข้อมูล (data) และสายงาน ML โดยเรียกใหม่ว่า DataOps และ MLOps โดยทำให้โครงสร้างพื้นฐานมีความยืดหยุ่นและปรับเปลี่ยนได้ (อ่านบทความเพิ่มเติมเรื่อง องค์กรที่ใช้ความยืดหยุ่นเป็นแนวทางปฏิบัติ)
มีคนแนะนำให้ผมอ่านหนังสือ The Phoenix Project เป็นเรื่องราวเกี่ยวกับบริษัท Part Unlimited ผู้ผลิตอุปกรณ์อะไหล่รถที่มีปัญหาด้านโครงสร้างพื้นฐานด้าน IT จึงได้มีการใช้หลักการ DevOps เข้ามาช่วยจัดการระบบให้มีความเสถียรขึ้น ซึ่ง Bill ตัวละครหลักของเรื่องได้เข้ามาดูแล Phoenix Project ที่ช่วยทำให้สาขาต่างๆ สามารถเชื่อมโยงกับอีคอมเมิร์ซของบริษัทซึ่งช่วยสร้างรายได้และประสบการณ์ที่ดีกับลูกค้า ซึ่งผมขอสรุปเป็นแนวทางที่เรียกว่า “หลักการ 345” ดังรายละเอียดต่อไปนี้
3 Ways – DevOps Patterns
1. The First Way – Maximize the Flow of Work
การพัฒนาซอฟต์แวร์หรือข้อมูล ไปสู่การใช้งานของลูกค้า มีสิ่งที่สำคัญในการเพิ่มประสิทธิภาพการทำงาน คือ
- การจัดการขนาดของงานและระยะเวลางานที่เหมาะสม
- การไม่มีข้อบกพร่อง ความเสียหาย ของซอฟต์แวร์หรือข้อมูล ที่จะถูกส่งต่อไปยังขั้นตอนถัดไป ซึ่งในทาง DevOps สามารถทำได้ด้วยการใช้ automated testing มาเป็นส่วนหนึ่งของการตรวจสอบงานก่อนส่งต่อไปยังขั้นตอนถัดไปได้
- การจัดการทรัพยากรที่เป็นข้อจำกัดหรือคอขวดของระบบ ซึ่งแนวคิดนี้ได้รับอิทธิพลมาจากหนังสือ The Goal: A Process of Ongoing Improvement ของ Dr. Eliyahu Goldratt เล่าถึงตัวละครที่ชื่อ Brent ที่มีความสามารถทำได้ทุกอย่าง ทำให้มีคนวิ่งเข้าไปขอความช่วยเหลืออยู่ตลอด จนเขากลายเป็นคอขวดของโครงการ หัวหน้างานจึงแก้ไขโดยการยกเลิกงานที่ไม่จำเป็นออกจากเขา และสอนงานคนอื่นในทีม เพื่อให้เขาไม่ต้องลงมือทำเองทุกอย่าง ซึ่งเป็นหนึ่งในทฤษฎี constraints (theory of constraints หรือ TOC) ที่ให้ความสำคัญกับการจัดการข้อจำกัดต่างๆ ที่จะทำให้งานบรรลุเป้าหมายอย่างไม่ติดขัด รวมทั้งการจัดการงานที่ไม่ได้อยู่ในแผนงาน ที่มาสร้างภาระให้กับคนทำงานสำคัญของโครงการ และการลดงานที่ค้างคาในระบบ
2. The Second Way – Fast Feedback
การได้รับรู้ผลตอบสนองอย่างรวดเร็ว เช่น กรณีที่โรงงานจะมีการหยุดการผลิตเพื่อตรวจสอบข้อผิดพลาดและแก้ปัญหานั้นไม่ให้สะสมเรื้อรัง เราเรียกว่า technical debt ซึ่งสิ่งที่กระบวนการนี้เน้นคือการใช้ automated test อย่างรวดเร็วเพื่อให้สามารถนำโมเดลไปใช้งานต่อได้
3. The Third Way – Continual Experiment and Mastery
แนวทางที่ 3 นี้จะเน้นเรื่องการสร้างวัฒนธรรมที่จะทดลองปรับปรุงงานให้ดีขึ้นอย่างต่อเนื่อง และฝึกปรือให้มีความชำนาญ เพื่อให้มีการปรับปรุงกระบวนการให้มีประสิทธิภาพสูงสุด
4 Types of Works
เราควรทำความเข้าใจลักษณะหรือประเภทของงานที่แตกต่างกัน เพราะการเลือกวิธีในการบริหารจัดการงานให้มีประสิทธิภาพก็ย่อมแตกต่างกันไปเช่นกัน จากลักษณะของงานพื้นฐานที่พบในทุกองค์กร เราสามารถแบ่งประเภทของงานได้เป็น 4 รูปแบบ ได้แก่
-
1. Business Projects งานที่เกี่ยวข้องกับธุรกิจของบริษัทโดยตรง เช่น ผลิตภัณฑ์หรือบริการ
2. Internal IT Projects งานที่เกี่ยวข้องกับโครงสร้างพื้นฐาน IT ที่จะไปรองรับงานในบริษัทหรือโครงการอื่นๆ
3. Changes เป็นงานที่ทำขึ้นเพื่อขอเปลี่ยนแปลงความต้องการบางอย่างของ 2 รูปแบบแรก
4. Unplanned Works งานที่ไม่ได้อยู่ในแผนงาน ส่วนใหญ่เป็นปัญหาที่ไม่คาดคิดจาก 3 งานแรก ในการจัดการโครงการ ถ้าสามารถลดงานแบบนี้ได้ด้วยการใช้ automation ก็จะช่วยลดความผิดพลาดที่เกิดจากมนุษย์ รวมทั้งช่วยให้ขั้นตอนต่างๆ ในการทำงานราบรื่นขึ้นด้วย
5 Dysfunctions of a Team
การที่โครงการจะสามารถทำงานได้ดีนั้น ต้องมีทีมงานที่ทำงานร่วมกันได้อย่างดีด้วย ในหนังสือ The Five Dysfunctions of a Team ของ Patrick Lencioni ได้พูดถึง 5 สิ่งที่ต้องระวังในการสร้างทีม ได้แก่
-
1. Absence of Trust ทีมงานที่ไม่มีความเชื่อใจกัน กลัวที่จะยอมรับความผิดหรือเปิดเผยจุดอ่อนของตัวเองให้คนในทีมรู้ เพื่อขอความช่วยเหลือ วิธีแก้ไข คือ แสดงความเป็นผู้นำโดยยอมรับจุดอ่อนของตัวเองและนำจุดแข็งของคนในทีมมาช่วยเสริม
2. Fear of Conflict ทีมงานที่กลัวความขัดแย้ง จริงๆ แล้วเราสามารถหาจุดร่วมของความเห็นต่างได้ ซึ่งอาจนำมาซึ่งไอเดียใหม่ๆ เราอาจจะแสดงให้เห็นว่าความเห็นต่างมีประโยชน์อย่างไร โดยการสร้างเป็นตารางแสดงให้เห็นข้อดีข้อเสียของหัวข้อที่กำลังถกเถียงกัน หรืออาจจะกำหนดให้คนใดคนหนึ่งในทีมเป็นคนที่มองต่างจากเพื่อน
3. Lack of Commitment ทีมที่ขาดบทสรุปหรือข้อตกลงร่วมกัน วิธีแก้ไข คือ มีการกำหนดเวลาในการตัดสินใจ พิจารณาข้อดี ข้อเสียเพื่อหาบทสรุปร่วมกัน
4. Avoidance of Accountability ทีมที่หลีกเลี่ยงความรับผิดชอบ วิธีแก้ไขคือ กำหนดกฎเกณฑ์ ตรวจสอบความคืบหน้าของงานอย่างต่อเนื่อง และให้รางวัลหรือกำลังใจกับความสำเร็จของทีม
5. Inattention to Results ทีมที่สนใจงานของตัวเองมากกว่างานของทีม วิธีแก้ไขคือ เน้นการวัด KPI และให้รางวัลที่ระดับทีมแทนระดับบุคคล
หลักการ 345 ที่ผมสรุปมานี้ ผู้อ่านสามารถนำไปประยุกต์ใช้กับการบริหารโครงการต่างๆ ที่มีเทคโนโลยีเป็นส่วนสำคัญของธุรกิจ โดยพิจารณาการบริหารจัดการให้ขั้นตอนการทำงานต่างๆ มีประสิทธิภาพ การใช้ทรัพยาการให้คุ้มค่า รวมทั้งสร้างความยืดหยุ่นและการตรวจสอบกระบวนการทำงานต่างๆ เพื่อลดข้อผิดพลาดที่เกิดจากคนให้ได้มากที่สุด ขอให้ทุกท่านสนุกกับแนวคิดใหม่นี้ครับ
References:
The Phoenix Project by Gene Kim, George Spafford, and Kevin Behr
https://high5test.com/5-dysfunctions-of-a-team-what-they-are-and-how-to-overcome/