in Uncategorized

Team Topologies ที่ผมได้รับรู้จากงาน Virtual Agile Meetup EP.3

(credit cover: ทีมงาน Agile66 https://www.facebook.com/groups/agile66/)

ผมได้มีโอกาสเข้าร่วม session Virtual Agile Meetup#3 – ทีม ทีม ทีม จัดยังไงให้มีประสิทธิภาพ ทำจริงเจ็บจริง กับ Team Topologies ของคุณ ไมเคิล อธิวรรธน์  อำนวยการจัดงานโดย ทีมงาน Agile66 มีหลายประเด็นที่น่าสนใจ เลยสรุปตามที่ตัวเองรับรู้มาได้ประมาณนี้ครับ

“ทีมเป็นอย่างไร ระบบที่ถูกสร้างขึ้นก็จะเป็นแบบนั้น, Culture ของบริษัทเป็นอย่างไร Culture ของระบบก็จะเป็นแบบนั้น, Convention ของคนมีความยุ่งเหยิงพันกันอย่างไร ระบบก็จะสะท้อนสิ่งที่ยุ่งเหยิงพันกันออกมาแบบนั้น”

(ผู้เข้าร่วมงานท่านหนึ่ง)

คือหนึ่งคำตอบ จากใน Session นี้ (ซึ่งสอดคล้องกับ Conway’s Law) ที่ได้ยินแล้วผมเองก็รู้สึก “เออหว่ะ! จริงอย่างที่เขาตอบเนอะ” และโดยปกติแล้ว การที่มีระบบหนึ่งเกิดขึ้นมา ต้องมีการบริหารจัดการทั้งส่วนของทีม (Socio) และส่วนของเทคนิค (Technical) ซึ่งมีความสัมพันธ์ล้อกันอยู่ การลงมือทำสิ่งใดเพื่อ Improve ควรที่จะต้องทำไปที่ส่วนของทีมและส่วนของ Technical ด้วย

(image credit: https://blog.octo.com/wp-content/uploads/2021/03/duckconf-team-topologies-rva-en.png)

ผมอยากจะชวนกลับมาที่คำตอบที่ทำ Quote ไว้ด้านบน ถ้าต้องการจะได้ระบบที่มี ปฏิสัมพันธ์ของแต่ละ Module ที่ดี ไม่มีความยุ่งเหยิง ควรที่เริ่มจะออกแบบตั้งแต่การสื่อสารของคนในทีมกันเอง และ ระหว่างทึม ที่ชัดเจนไม่ยุ่งเหยิงพันกัน เพื่อให้ได้ ระบบที่ต้องการ (เรียกว่า Inverse Conway Maneuver)

Team Cognitive Load

คือ ข้อมูลที่จำเป็นต้องรู้ เพื่อให้การทำงาน End-to-End Flow ของทีมนั้น ทำได้อย่างมีประสิทธิภาพ ซึ่งถ้าทีมมีข้อมูลที่จำเป็นต้องรู้ที่ครอบคลุม จะเป็นการลด knowledge dependency ที่ต้องมีการร้องขอจากทีมอื่นๆ performance ของทีมก็จะสะท้อนออกมาได้ดี
ทฤษฎีที่เอื้อให้เกิด Cognitive Load มีอยู่ 3 ข้อ

  1. Intrinsic คือ ทักษะหลักที่คนในทีมต้องรู้ เพื่อสามารถทำให้งานจบได้
  2. Extraneous คือ กลไกภายนอกอื่นๆที่เกี่ยวข้อง ซึ่งเอื้อให้ การทำงานแบบ End-to-End นั้นราบรื่น
  3. Germane คือ Business Domain ที่ต้องเข้าใจในการ ส่งมอบ Solution ดังกล่าวได้อย่างตอบโจทย์

แต่การที่จะทำเกิด Cognitive Load ที่ดีนั้น เน้นที่ Germane ให้มาก พยายามลด Extraneous ให้เหลือน้อยที่สุดเท่าที่จำเป็นต้องมี (อาจจะเป็นการใช้ platform, framework, automation tools ที่มีอยู่แล้วมาช่วยในการส่งมอบ)

พื้นฐาน Topologies มีในรูปแบบของทีม ได้ 4 ทีม

  • Stream-Aligned Team คือ Team ที่ทำ End-to-End ได้
  • Enabling Team คือ ทีมที่สามารถ Coaching เพิ่มทักษะให้กับทีมอื่นได้
  • Complicated Subsystem Team คือ ทีมที่มีความเชี่ยวชาญพิเศษเฉพาะทาง เช่น AI, Computer Vision เป็นต้น
  • Platform Team คือ ทีมที่สร้าง solution ต่างที่ช่วยลด cognitive load ของทีมอื่น เอื้อในการส่งมอบได้เร็วขึ้น

เมื่อทำทั้งสี่ทีมมาหาความสัมพันธ์ต่อกันในการส่งมอบ solution แล้ว

Complicated Subsystem Team มักจะอยู่ในกลุ่ม ABC-as-Service เพื่อใช้ความชำนาญที่มีเฉพาะ ช่วยเหลือในส่วนที่ Stream-Aligned Team ขาด ให้สามารถทำงาน End-to-End จบได้

ส่วน Enabling Team จะเข้าทำการ Coaching ให้กับ Stream-Aligned Team ในทักษะที่ต้องการ เพื่อให้เชี่ยวชาญ สามารถทำงาน End-to-End ดังกล่าวได้ดีขึ้น

ส่วน Platform Team จะทำการเตรียมสิ่งที่จำเป็นไม่ว่าจะ pipline, automation tool ต่างๆ ที่เอื้อต่อการทำงาน End-to-End ให้จบลงได้รวดเร็ว

Write a Comment

Comment