หลังจากอ่านบทความเรื่อง The Value of Socially Driven Architecture
ว่าด้วยเรื่องของ software architecture กับโครงสร้างขององค์กร
พบว่าบ่อยครั้งที่สิ่งที่ดี ๆ จากที่อ่าน แต่เมื่อนำมาใช้งานกลับได้ดี
หรือไม่ได้แก้ไข หรือ ปรับปรุงระบบให้ดีขึ้นเลย
ดังนั้นมาดูกันหน่อยว่าเพราะอะไร ?
สิ่งที่น่าสนใจคือ Architecture ของระบบนั้น
มันไม่ใช่ของใครคนใดคนหนึ่ง
มิเช่นนั้น solution หรือ architecture ที่ได้ จะเป็นสิ่งที่เรัยกว่า Zombie solution !!
แต่มันคือเรื่องของ social หรือ สังคมในองค์กรนั้น ๆ
โดยจะส่งผลออกมาในระบบงานที่พัฒนาออกมานั่นเอง
บ่อยครั้งจะดูได้จากโครงสร้างขององค์กรจากระบบของ HR ได้เลย
ยกตัวอย่างเช่น
หรืออาจจะเป็น
และบ่อยครั้งการ transition หรือ handover งานระหว่างทีม
ส่งผลทำให้ flow การทำงานแย่ลงไป ต้องระวังมาก ๆ
ดังนั้นทีมควรมีหน้าที่รับผิดชอบเรื่อง
- การทดสอบ
- การส่งมอบ
- การจัดการ และ สนับสนุนเรื่องต่าง ๆ หลังส่งมอบ
หัวใจสำคัญของการทำงานคือ การมีส่วนร่วมของ domain ต่าง ๆ ที่เกี่ยวข้อง
เพื่อให้คนต่าง ๆ เข้าใจความต้องการ และ ข้อจำกัดต่าง ๆ ตั้งแต่เริ่มต้น
ดังนั้นการทำงานเชิง Value-Driven Design นั้น ประกอบไปด้วย
- การออกแบบโครงสร้างขององค์กร ให้เอื้อต่อการมีส่วนร่วมของการออกแบบ และ หาแนวทางการแก้ไขปัญหา
- โดยต้องทำควบคู่กันไปทั้งโครงสร้างองค์กร และ ระบบงาน
- มีระบบที่ fast feedback loop จากระบบที่ทำงานจริง ๆ เพื่อนำมาใช้ในการปรับปรุงระบบงาน ดัวนั้นเรื่องของ architecture มันคือสิ่งที่มีชีวิต
- การทำงานต่าง ๆ ต้องมี time-box เสมอ ไม่ใช่ทำไปเรื่อย ๆ
- ว่าด้วยเรื่องของ team-first เป็นการตัดสินใจต่าง ๆ ร่วมกัน ไม่ใช่เพียงคนใดคนหนึ่งเท่านั้น
สิ่งที่ทำลงไปนั้น มันได้ value หรือมีคุณค่าใดบ้าง
ทั้งในมุมมองของผู้ใช้งาน และ ทีมพัฒนาหรือส่งมอบ
ถ้ายิ่งทำยิ่งไม่ได้เพิ่ม value ใด ๆ แต่เพียงสนองความต้องการของตัวเอง ก็ไม่น่าใช่แนวทางที่ดี
เมื่อความต้องการเปลี่ยนไป architecture ของระบบก็ต้องปรับเปลี่ยนไปในทางเดียวกัน
ซึ่งเป็นเรื่องปกติของสังคมมาก ๆ
น่าสนใจมาก ๆ