อ่านบทความเรื่อง Best practices can slow your application down
จากทาง Stack Overflow
โดยได้อธิบายว่า ไม่ค่อยทำตาม best practice ในการพัฒนาระบบมาเลย
ทั้งการออกแบบ เขียน code ที่ช่วยให้อ่านและดูแลได้ง่าย
รวมถึงการทดสอบ และ deploy ระบบ
เป็นเรื่องที่น่าสนใจมาก ๆ ว่า แล้วตัดสินใจกันอย่างไร ?
ว่าจะเลือกไปทางไหนในการพัฒนาระบบ

สิ่งที่ใช้ในการตัดสินใจคือ Cynefin framework
แสดงดังรูป

โดยระบบของ Stack Overflow ในปัจจุบันนั้น เรียกได้ว่าเป็น Obvious แล้ว
เนื่องจากเป็นปัญหาที่ชัดเจนมาก ๆ แล้ว
มี best practice เพื่อแก้ไขปัญหาให้ทำตามเพียบ
ซึ่งทำให้เราพัฒนาได้เร็วขึ้น

แต่เมื่อย้อนกลับไปเมื่อปี 2008 แล้ว ปัญหาที่เจอหรือระบบที่พัฒนาไม่ได้ Obvious เลย

น่าจะเป็น complex หรือ complicate มากกว่า
เพราะว่า จะทำอย่างไรให้ระบบที่เป็นอยู่ scale ได้
ซึ่งไม่มีคำตอบที่ชัดเจน
รวมทั้งไม่มี expert มาช่วยได้เลย
มีคนที่เจอปัญหาเหมือน ๆ กัน มาคุยกัน

จนมาวันหนึ่งได้ตั้งเป้าหมายไว้ว่า Performance is a feature
นั่นหมายความว่า ต้องทำการปรับปรุง เปลี่ยนแปลงระบบให้ดีขึ้น
ด้วยการลองแยก ลองทดสอบ ลอง deploy
จนได้แนวทางที่เหมาะสม
และกลายมาเป็น best practice ในที่สุด
และเหมาะสมกับความต้องการของเราเอง
จากปัญหาที่เป็น complex/complicate กลายมาเป็น obvious

ดังนั้นเราอาจจะต้องรู็และเข้าใจปัญหาของเราก่อน
ที่จะเลือก solution ใด ๆ มาแก้ไข