การพัฒนา software ในปัจจุบัน
สิ่งที่สำคัญมาก ๆ คือ

  • Fast คือความเร็วของการเปลี่ยนจากความต้องการไปเป็นสิ่งที่อยู่ในมือลูกค้า
  • Innovation product มันคือการเรียนรู้
  • Low cost of change คือค่าใช้จ่ายในการเปลี่ยนแปลงที่ต่ำ

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

หรือลองคิดสิว่า

ถ้าเราใช้เวลาเป็นเดือน เป็นปี
กว่านะส่งมอบ software สักอย่างให้ถึงมือผู้ใช้งานแล้ว
คุณจะกลัวมากเท่าไหม
คุณจะเรียนรู้อะไรมากขึ้นไหม
คุณต้องใช้ค่าใช้จ่ายเท่าไร
ถ้าอดทนได้ ก็อดทนรอต่อไป

เราจะเห็นว่าหลาย ๆ องค์กร หลาย ๆ ทีม

เริ่มนำเอาแนวคิด DevOps เข้ามาใช้มากขึ้น
ทำให้ทีมพัฒนากับ operation ใกล้ชิดกันมากขึ้น ทำงานด้วยกันมากขึ้น
ส่งผลให้ความเร็วมากขึ้น เช่นปัญหาต่าง ๆ
ส่งมอบงานได้เร็วขึ้น
ส่งมอบงานมีคุณภาพมากขึ้น

ดังนั้น DevOps มันว่าด้วยเรื่องการปรับปรุงคุณภาพและความเร็วในการพัฒนา software นั่นเอง
รีบแต่ไม่เร่งนะ

แต่ปัญหามันก็ยังมีอยู่อีก (เยอะ)

ตัวหลัก ๆ คือ DevOps ยังเน้นในส่วนของการพัฒนาเท่านั้น
ซึ่งหลายสิ่งอย่างมักจะขัดแย้งกับฝ่าย Business เสมอ (โยนปัญหากันไปมา)
ยกตัวอย่างเช่น KPI (Killer Performance Indicator) !!

ฝ่าย Business ก็บ่นว่าทำไมช้าจัง ไม่เสร็จสักที มี bug อีกแล้ว
ฝ่าย Developmeny ก็บ่นว่าทำไม requirement เปลี่ยนบ่อยจัง ไม่ clear เลย เวลาบีบมาก ๆ

มาดูตัวอย่างของปัญหากัน

Business ต้องการได้เร็ว ๆ
ทีมพัฒนามีทั้งเรื่องพัฒนาให้เสร็จเร็ว ๆ เรื่องความปลอดภัย เรื่อง performance การทำงาน
ถ้าทีมพัฒนาเลือกตาม Business ต้องการคือ ความเร็ว แล้ว
ผลที่ตามมามันคือ หายนะล้วน ๆ
ได้เร็ว แต่ bug เพียบ
ได้เร็ว แต่มีช่องโหว่ในการโจมตีเพียบ
ได้เร็ว แต่ performance ห่วย
ได้เร็ว แต่ support ห่วย
คำถามคือ มันส่งผลดีต่อ Business หรือไม่ ?

ดังนั้นสิ่งเหล่านี้มันคือ ปัญหา หรือ ความท้าทายนั่นเอง

จะทำอย่างไรให้ฝ่าย Bussiness และฝ่ายพัฒนาไปในทิศทางเดียวกัน ?
ต้องให้แต่ละฝ่ายมีความสมดุลกัน
นั่นคือ Business ต้องสนใจใส่ใจ Technology
นั่นคือ Development ต้องสนใจใส่ใจ Business
ทั้งสองส่วนมีเป้าหมายร่วมกัน
ลดการ rework ลง
ร่วมกันจัดเรียงความสำคัญของงานทั้ง Business requirement และ Technical requirement
ถ้าสำเร็จก็สำเร็จร่วมกัน
ถ้าผิดก็ผิดร่วมกัน
เมื่อนำมารวมกันจึงเรียกว่า BizDevOps

BizDevOps Lifecycle

แสดงให้เห็น workflow การพัฒนา software
ตั้งแต่ business strategy, requirement, develop, test, deploy ไปจนถึงการ maintenance
แน่นอนว่าต้องมีเป้าหมายร่วมกันหรืออย่างเดียวกัน
สิ่งที่สำคํญมาก ๆ คือ ในแต่ละรอบนั้นมันเร็วเพียงใด
แนวคิดนี้เอื้อให้เกิดขั้นตอนการทำงานแบบอัตโนมัติ
ผลที่ตามมาคือ ความเร็วและประสิทธิภาพของระบบงานน นั่นคือองค์กรหรือทีมของคุณนั่นเอง

แสดงดังรูป

สุดท้ายแล้ว Collaboration, Communication และ Trust คือหัวใจที่สำคัญครับ

มาเขียน code กัน