Team Topologies and Architecture (Team Topologies กับสถาปัตยกรรม)

สถาปนิกและทีมงานต่าง ๆ ได้ทำการวิจัยมากมายเกี่ยวกับจุดตัดระหว่าง architecture กับ team topologies ซึ่งมากไปกว่าผลกระทบของ architecture partitioning ที่เราได้กล่าวถึงไปก่อนหน้านี้ หนังสือที่ทรงอิทธิพลอย่างมากอย่าง Team Topologies โดย Matthew Skelton และ Manuel Pais (IT Revolution Press, 2019) ได้นิยามประเภททีมหลายแบบที่เชื่อมโยงกับ software architecture:

Stream-aligned teams

ในศัพท์ของ team topologies คำว่า stream หมายถึงสายงานที่มีขอบเขตอยู่ที่ business domain หรือความสามารถหนึ่งโดยเฉพาะ Stream-aligned team จะมุ่งเน้นแคบ ๆ ไปที่สายงานเดียว เช่น product, service หรือชุดฟีเจอร์ที่เจาะจง

เป้าหมายของ stream-aligned team คือการเคลื่อนที่ให้เร็วที่สุดเท่าที่จะทำได้ เพราะพวกเขากำลังส่งมอบคุณค่าที่ชัดเจนให้กับองค์กร ด้วยเหตุนี้ ทีมประเภทอื่น ๆ จึงถูกออกแบบมาเพื่อลดแรงเสียดทานใด ๆ ที่อาจขัดขวาง stream-aligned team

Enabling teams

Enabling team ทำหน้าที่เชื่อมช่องว่างของความสามารถบางอย่าง โดยเป็นพื้นที่สำหรับการวิจัย การเรียนรู้ และงานอื่น ๆ ที่จำเป็นแต่ไม่เร่งด่วน พวกเขาจัดหาความรู้และทรัพยากรจาก domain ที่เชี่ยวชาญเฉพาะทางเพื่อสนับสนุน stream-aligned team enabling team ที่ดีจะมีความร่วมมือสูงและมีความกระตือรือร้นเชิงรุก

Complicated-subsystem teams

ระบบหลายระบบมีระบบย่อยหรือส่วนประกอบที่เชี่ยวชาญเฉพาะทางสูง ซึ่งต้องการทักษะเฉพาะทางที่สอดคล้องกัน สมาชิกของ complicated-subsystem team จะเข้าใจ subsystem หรือ domain ที่ซับซ้อนนั้นอย่างถ่องแท้ และสามารถช่วย stream-aligned team นำไปประยุกต์ใช้ได้ เป้าหมายของพวกเขาคือการลด cognitive load ของทีมอื่น ๆ

Platform teams

Platform team จัดหา internal service และส่วนประกอบพื้นฐาน (building block) สำหรับโซลูชันต่าง ๆ ตามที่ Evan Botcher นิยามไว้ platform คือ

รากฐานของ self-service API, เครื่องมือ, service, ความรู้ และการสนับสนุน ที่ถูกจัดวางให้เป็นเสมือนผลิตภัณฑ์ภายในที่น่าดึงดูดใจ ทีม delivery ที่ทำงานอย่างอิสระสามารถใช้ platform นี้เพื่อส่งมอบฟีเจอร์ของผลิตภัณฑ์ได้เร็วขึ้น โดยลดการประสานงานลง

Platform team สนับสนุนทีมอื่น ๆ โดยพยายามขจัดแรงเสียดทานที่ไม่จำเป็นออกไป พร้อมกับให้ governance ที่จำเป็นในเรื่องต่าง ๆ เช่น quality และ security