หลักการ 345 สร้างประสิทธิภาพองค์กรด้วย DevOps

JUL 14, 2020

ช่วงนี้ผมให้ความสนใจเกี่ยวกับการนำ “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 ที่ช่วยทำให้สาขาต่าง ๆ สามารถเชื่อมโยงกับ e-commerce ของบริษัทซึ่งช่วยสร้างรายได้และประสบการณ์ที่ดีกับลูกค้า ซึ่งผมขอสรุปเป็นแนวทางที่เรียกว่า “หลักการ 345” ดังรายละเอียดต่อไปนี้

 

3 Ways - DevOps Patterns

1. The First Way - Maximize the Flow of Work การพัฒนาซอฟท์แวร์หรือข้อมูล ไปสู่การใช้งานของลูกค้า (Production Deployment) มีสิ่งที่สำคัญในการเพิ่มประสิทธิภาพการทำงาน คือ

  • การจัดการขนาดของงานและระยะเวลางานที่เหมาะสม

  • การไม่มีข้อบกพร่อง ความเสียหาย (defect) ของซอฟท์แวร์หรือข้อมูล ที่จะถูกส่งต่อไปยังขั้นตอนถัดไป ซึ่งในทาง DevOps สามารถทำได้ด้วยการใช้ Automated Testing มาเป็นส่วนหนึ่งของการตรวจสอบงานก่อนส่งต่อไปยังขั้นตอนถัดไปได้

  • การจัดการทรัพยากรที่เป็นข้อจำกัดหรือคอขวด (Bottleneck) ของระบบ (Manage Constraints) ซึ่งแนวคิดนี้ได้รับอิทธิพลมาจากหนังสือ The Goal: A Process of Ongoing Improvement ของ Dr. Eliyahu Goldratt เล่าถึงตัวละครที่ชื่อ Brent ที่มีความสามารถทำได้ทุกอย่าง ทำให้มีคนวิ่งเข้าไปขอความช่วยเหลืออยู่ตลอด จนเขากลายเป็นคอขวดของโครงการ หัวหน้างานจึงแก้ไขโดยการยกเลิกงานที่ไม่จำเป็นออกจากเขา และสอนงานคนอื่นในทีม เพื่อให้เขาไม่ต้องลงมือทำเองทุกอย่าง ซึ่งเป็นหนึ่งในทฤษฎี Constraints (Theory of Constraints or TOC) ที่ให้ความสำคัญกับการจัดการข้อจำกัดต่าง ๆ ที่จะทำให้งานบรรลุเป้าหมายอย่างไม่ติดขัด รวมทั้งการจัดการงานที่ไม่ได้อยู่ในแผนงาน (Unplanned work) ที่มาสร้างภาระให้กับคนทำงานสำคัญของโครงการ และการลดงานที่ค้างคาในระบบ (Work In Progress or WIP)

2. The Second Way - Fast Feedback

การได้รับรู้ผลตอบสนองอย่างรวดเร็ว เช่น กรณีที่โรงงานจะมีการหยุดการผลิตเพื่อตรวจสอบข้อผิดพลาดและแก้ปัญหานั้นไม่ให้สะสมเรื้อรัง เราเรียกว่า Technical Debt ซึ่งสิ่งที่กระบวนการนี้เน้นคือการใช้ Automated Test อย่างรวดเร็วเพื่อให้สามารถนำโมเดลไปใช้งานต่อได้

3. The Third Way - Continual Experiment and Mastery

แนวทางที่ 3 นี้จะเน้นเรื่องการสร้างวัฒนธรรมที่จะทดลองปรับปรุงงานให้ดีขึ้นอย่างต่อเนื่อง (Continual Experiment) และฝึกปรือให้มีความชำนาญ (Mastery) เพื่อให้มีการปรับปรุงกระบวนการให้มีประสิทธิภาพสูงสุด

 

4. Types of Works

เราควรทำความเข้าใจลักษณะหรือประเภทของงานที่แตกต่างกัน เพราะการเลือกวิธีในการบริหารจัดการงานให้มีประสิทธิภาพก็ย่อมแตกต่างกันไปเช่นกัน งานจากลักษณะของงานพื้นฐานที่พบในทุกองค์กร เราสามารถแบ่งประเภทของงานได้เป็น 4 รูปแบบ ได้แก่ 

  1. Business Projects งานที่เกี่ยวข้องกับธุรกิจของบริษัทโดยตรง เช่น ผลิตภัณฑ์หรือบริการ

  2. Internal IT Projects งานที่เกี่ยวข้องกับโครงสร้างพื้นฐาน IT ที่จะไปรองรับงานในบริษัทหรือโครงการอื่น ๆ

  3. Changes เป็นงานที่ทำขึ้นเพื่อขอเปลี่ยนแปลงความต้องการบางอย่างของ 2 รูปแบบแรก

  4. Unplanned Works งานที่ไม่ได้อยู่ในแผนงาน ส่วนใหญ่เป็นปัญหาที่ไม่คาดคิดจาก 3 งานแรก ในการจัดการโครงการ ถ้าสามารถลดงานแบบนี้ได้ด้วยการใช้ Automation ก็จะช่วยลดความผิดพลาดที่เกิดจากมนุษย์ (Human Error) รวมทั้งช่วยให้ขั้นตอนต่าง ๆ ในการทำงานราบรื่นขึ้นด้วย

 

5. Dysfunctions of a Team

การที่โครงการจะสามารถทำงานได้ดีนั้น ต้องมีทีมงานที่ทำงานร่วมกันได้อย่างดีด้วย ในหนังสือ The Five Dysfunctions of a Team ของ Patrick Lencioni ได้พูดถึง 5 สิ่งที่ต้องระวังในการสร้างทีม ได้แก่

  1. Absence of Trust ทีมงานที่ไม่มีความเชื่อใจกัน กลัวที่จะยอมรับความผิดหรือเปิดเผยจุดอ่อนของตัวเองให้คนในทีมรู้ เพื่อขอความช่วยเหลือ วิธีแก้ไข คือ แสดงความเป็นผู้นำโดยยอมรับจุดอ่อนของตัวเองและนำจุดแข็งของคนในทีมมาช่วยเสริม

  2. Fear of Conflict ทีมงานที่กลัวความขัดแย้ง จริง ๆ แล้วเราสามารถหาจุดร่วมของความเห็นต่างได้ ซึ่งอาจนำมาซึ่งไอเดียใหม่ ๆ เราอาจจะแสดงให้เห็นว่าความเห็นต่างมีประโยชน์อย่างไร โดยการสร้างเป็นตารางแสดงให้เห็นข้อดี ข้อเสียของหัวข้อที่กำลังถกเถียงกัน หรืออาจจะกำหนดให้คนใดคนหนึ่งในทีมเป็นคนที่มองต่างจากเพื่อน (Devils’ advocate)

  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/

บทความโดย
คุณจรัล งามวิโรจน์เจริญ
Chief Data Scientist & VP of Data Innovation Lab
บริษัท เซอร์ทิส จำกัด

Related Posts

Cover-SertisxThaipublica-Jun2020-data-me

CONTACT US

Bangkok Office

Sertis Co.,Ltd. 

Suite No.302, 3rd Floor

597/5 Sukhumvit Road,

Khlong Tun Nuea, Wattana, Bangkok, Thailand 10110

Singapore Office

Sertis International Pte. Ltd.

3 Pickering Street

#03-05 Singapore 048660

© 2020 Sertis Co.,Ltd. All rights reserved.

  • Sertis Facebook
  • Sertis Linkedin
  • Sertis Channel
Sertis-Logo_2020.png