สมมติว่าทีมผลิตภัณฑ์จากตอนแรกเริ่มขอฐานข้อมูลทดสอบผ่านบริการที่ทำไว้ได้แล้ว นักพัฒนากดขอและเชื่อมต่อได้เอง แต่เมื่อคำขอค้างยังต้องตามคนที่เขียนระบบไว้ งานอัปเดตรอให้คนนั้นว่าง และเมื่อทดสอบเสร็จก็ยังไม่มีใครแน่ใจว่าทรัพยากรที่เลิกใช้ถูกเก็บกวาดครบหรือยัง
ถ้ามองจากหน้าจอ บริการนี้ดูพร้อมขึ้นมาก แต่ถ้าจะให้ทีมอื่นเข้ามาใช้เพิ่ม ผมอยากดูว่า สิ่งที่ผู้ใช้ทำได้เอง มีคนและวิธีดูแลรองรับแค่ไหน ปุ่มที่ทำงานได้บอกเรื่องหนึ่ง ส่วนความพร้อมของบริการต้องดูให้ถึงงานที่เกิดหลังจากนั้นด้วย
ตอนนี้จึงจะใช้บริการฐานข้อมูลทดสอบสมมติเดิมมาลองสำรวจว่าอะไรควรปรับต่อ สถานการณ์ทั้งหมดเป็นตัวอย่างเพื่ออธิบายวิธีคิด ไม่ใช่ผลใช้งานของบริษัทใด
ใช้กรอบความพร้อมเพื่อเลือกงานที่ควรแก้
CNCF Platform Engineering Maturity Model แยกการพิจารณาเป็น 5 ด้าน คือการลงทุน การนำไปใช้ ช่องทางใช้งาน การดูแลบริการ และการวัดผล แต่ละด้านมี 4 ระดับตามตารางของต้นฉบับ ได้แก่ Provisional (เริ่มต้น), Operational (จัดการเป็นงานประจำ), Scalable (รองรับการขยาย) และ Optimizing (ปรับปรุงต่อเนื่อง)
แต่ละด้านต้องพิจารณาแยกกัน และยังมีความเกี่ยวข้องกันอยู่ ไม่ควรรวมเป็นเกรดเดียวของทั้งองค์กร อีกทั้งระดับที่สูงขึ้นต้องใช้เงินและเวลาคนเพิ่ม จึงต้องเลือกให้เหมาะกับงาน ไม่จำเป็นต้องตั้งเป้าว่าทุกด้านต้องไปถึงระดับสูงสุด
ผมจะใช้กรอบนี้ช่วยตั้งคำถามกับบริการเดียวที่เรากำลังทำ มากกว่าพยายามตัดสินว่าทีมเก่งระดับไหน เริ่มจากสิ่งที่เกิดขึ้นกับผู้ใช้และผู้ดูแลจริง แล้วเลือกปัญหาที่ควรลงมือแก้ต่อ
บริการเดียวอาจพร้อมไม่เท่ากันในแต่ละด้าน
ลองกลับมาที่ทีมสมมติ การขอใช้ฐานข้อมูลด้วยตัวเองได้เป็นความคืบหน้าที่เห็นชัด แต่ยังไม่ได้ตอบว่าคนที่ดูแลมีเวลาพอหรือไม่ ผู้ใช้เลือกบริการนี้เพราะอะไร และทีมรู้ได้อย่างไรว่าการทดสอบงานจบลงแล้ว
ขอใช้เองได้ แล้วงานที่เหลือล่ะ?
- การลงทุน
- ยังไม่มีเวลาที่กันไว้สำหรับดูแลบริการ
- การนำไปใช้
- คนรู้จักบริการจากการบอกต่อ ยังไม่รู้เหตุที่บางคนเลิกใช้
- ช่องทางใช้งาน
- ผู้ใช้ขอฐานข้อมูลและเชื่อมต่อเองได้ในแบบที่รองรับ
- การดูแลบริการ
- เมื่อคำขอค้างหรือเลิกใช้ ยังต้องให้คนตามจัดการเป็นครั้ง ๆ
- การวัดผล
- เห็นจำนวนที่สร้าง แต่ยังไม่รู้ว่าผู้ใช้ทดสอบงานจบหรือไม่
ถ้าเราเรียกทั้งหมดนี้ว่าแพลตฟอร์มพร้อมขยายแล้ว งานที่ยังไม่มีคนรับผิดชอบก็อาจตามไปเพิ่มกับผู้ใช้กลุ่มใหม่ด้วย ผมจึงอยากให้คำว่าพร้อมบอกได้ว่า พร้อมให้ใครทำงานอะไร ภายใต้ขอบเขตใด ไม่ใช้เพียงความสะดวกตอนเริ่มขอเป็นคำตอบแทนทุกด้าน
ถามให้เจอทั้งงานของผู้ใช้และงานของผู้ดูแล
ผมจะให้ผู้ใช้กับคนดูแลลองตามคำขอเดียวกันตั้งแต่ต้น เพื่อหาว่าตรงไหนทำเองได้ ตรงไหนรอ และตรงไหนมีคนช่วยอยู่โดยที่หน้าจอไม่ได้แสดงให้เห็น จากนั้นคุยกันด้วยหลักฐานที่ตรวจกลับได้ เช่น ประวัติคำขอ บันทึกปัญหา และงานดูแลที่อยู่ในแผน
| ด้านที่สำรวจ | คำถามที่ควรตอบให้ได้ | สิ่งที่ใช้ตรวจประกอบ |
|---|---|---|
| การลงทุน | เมื่อมีงานด่วนอื่น งานอัปเดตและช่วยผู้ใช้ยังมีใครรับผิดชอบหรือไม่ | เวลาที่จัดสรร ผู้รับผิดชอบแทน และงานดูแลที่ค้าง |
| การนำไปใช้ | คนเลือกบริการนี้เพราะช่วยงานส่วนไหน และคนที่เลิกใช้ติดอะไร | การลองใช้งานจริง เหตุที่ขอความช่วยเหลือ และคำอธิบายจากผู้ใช้ |
| ช่องทางใช้งาน | ผู้ใช้ทำงานที่รองรับได้เองหรือเพียงส่งคำขอเข้าคิว | ขั้นตอนที่ผู้ใช้ทำได้ สถานะที่เห็น และจุดที่ยังรอคนจัดการ |
| การดูแลบริการ | เมื่อใช้ไม่ได้ ต้องอัปเดต หรือเลิกใช้ ใครทำอะไรต่อ | ประวัติปัญหา แผนอัปเดต และผลตรวจสิทธิหรือทรัพยากรที่ค้าง |
| การวัดผล | ทีมรู้ได้อย่างไรว่าสิ่งที่แก้ช่วยให้ผู้ใช้ทำงานจบ | ผลก่อนและหลังแก้ในงานที่เทียบกันได้ พร้อมคำอธิบายจากผู้ใช้และผู้ดูแล |
บางคำตอบอาจยังไม่มี นั่นเป็นรายการที่ต้องหาต่อ ไม่ใช่ช่องที่ต้องเติมคำว่าผ่านให้ครบ และไม่จำเป็นต้องทำรายงานใหญ่ก่อนเริ่มแก้ หากประวัติคำขอกับการคุยกับผู้ใช้ช่วยระบุปัญหาได้แล้ว ก็นำไปทดลองแก้ในขอบเขตเล็กได้
แก้ให้ถึงงานหลังขอใช้
สำหรับสถานการณ์สมมตินี้ ผมจะเริ่มจากกันเวลางานดูแลให้ชัด มีผู้รับผิดชอบแทนเมื่อคนหลักไม่อยู่ แล้วทำให้คำขอที่ค้างตรวจสถานะและส่งต่อได้ การเปลี่ยนคนรับผิดชอบต้องมีข้อมูลให้รับช่วงต่อด้วย ไม่ใช่เพียงใส่ชื่อเพิ่มในเอกสาร
อีกเรื่องคือทำให้การเลิกใช้จบจริง ผู้ใช้ควรรู้ว่าจะขอใช้ต่อหรือยืนยันให้ยุติอย่างไร ส่วนคนดูแลต้องตรวจได้ว่าสิทธิ ทรัพยากร และข้อมูลส่วนใดจัดการแล้ว รวมถึงสิ่งที่ยังต้องเก็บตามเงื่อนไขของบริการ การลบบนหน้าจอสำเร็จไม่ได้ยืนยันว่าทุกส่วนหายไปหรือหยุดคิดค่าใช้บริการแล้ว
- ขอใช้รู้ว่างานใดอยู่ในขอบเขตและใครรับผิดชอบ
- ตรวจคำขอตรวจสิทธิ ข้อจำกัด และข้อมูลที่จะใช้
- สร้างและเชื่อมต่อเห็นสถานะและเข้าถึงได้ตามสิทธิ
- ใช้และดูแลรับปัญหา อัปเดต และตรวจความจำเป็น
- ยุติและตรวจของค้างจัดการสิทธิ ทรัพยากร และข้อมูลตามเงื่อนไข
กติกาเรื่องสิทธิต้องตรวจที่ระบบรับคำขอจริงด้วย ทั้งเมื่อเรียกผ่านหน้าเว็บและคำสั่ง ข้อมูลลับสำหรับเชื่อมต่อต้องส่งและเก็บอย่างจำกัดสิทธิ ส่วนข้อมูลทดสอบเริ่มจากข้อมูลที่สร้างขึ้นสำหรับทดสอบ ไม่คัดลอกข้อมูลลูกค้าจริงมาเป็นค่าเริ่มต้น หากต้องใช้ข้อมูลอ่อนไหวต้องพิจารณาเงื่อนไขที่เกี่ยวข้องแยกต่างหาก
จากนั้นจึงกลับไปหาคนที่ลองใช้ ทั้งคนที่ทำงานสำเร็จและคนที่ติดขัด จดว่าปัญหาที่เลือกแก้เปลี่ยนไปอย่างไร และภาระที่คนดูแลรับเพิ่มเป็นเท่าไร ถ้าเราเก็บความเห็นแล้วไม่มีใครนำไปตัดสินใจ ผู้ใช้ก็ยังต้องเจอปัญหาเดิม แม้จะมีแบบสอบถามมากขึ้นก็ตาม
พร้อมขึ้นในจุดที่งานต้องการ
ทีมเล็กอาจยังไม่ต้องมีผู้ดูแลเต็มเวลาหรือเครื่องมือชุดใหม่ แต่ต้องตกลงได้ว่างานดูแลจะใช้เวลาของใคร และงานอื่นใดต้องหลีกทางให้ การให้คนทำเพิ่มโดยไม่จัดเวลาไม่ได้ทำให้ต้นทุนหายไป มันเพียงยังไม่ปรากฏอยู่ในแผน
สำหรับทีมสมมติ ผมจะยังไม่เพิ่มชนิดฐานข้อมูลในรอบนี้ จะทำสถานะคำขอ การรับช่วงงาน และการเลิกใช้ให้ตรวจได้ก่อน แล้วกลับมาดูว่าผู้ใช้ทำงานจบขึ้นจริงหรือไม่ ข้อมูลชุดนั้นจะช่วยตัดสินใจในตอนถัดไปว่าอะไรควรขยาย และอะไรควรแก้ของเดิมต่อ
ที่มาและขอบเขต
ใช้ CNCF Platform Engineering Maturity Model เป็นกรอบตั้งคำถาม ส่วนสถานการณ์ฐานข้อมูลทดสอบ ภาพอธิบาย ตารางคำถาม และข้อเสนอในบทความเป็นการประยุกต์กับกรณีสมมติ ไม่มีการรับรองระดับความพร้อมหรือผลลัพธ์ขององค์กรใด