พันธกิจ (Mission)
ในส่วนนี้เราจะอธิบายเป้าหมายและข้อจำกัดในการนำระเบียบวิธีนี้ไปใช้ ซึ่งเป็นสิ่งที่เรายึดถือในการพัฒนาระเบียบวิธีนี้
- เรามองว่าเป้าหมายของเราคือความสมดุลระหว่างอุดมการณ์และความเรียบง่าย
- เราไม่สามารถสร้าง "กระสุนเงิน" (Silver Bullet) ที่ตอบโจทย์ทุกคนได้
แต่อย่างไรก็ตาม ระเบียบวิธีนี้ควรจะเข้าถึงได้ง่ายและเป็นประโยชน์สำหรับนักพัฒนากลุ่มกว้าง
เป้าหมาย
ความชัดเจนที่เข้าใจง่ายสำหรับนักพัฒนากลุ่มกว้าง
ระเบียบวิธีควรจะเข้าถึงได้ง่าย สำหรับคนส่วนใหญ่ในทีมโปรเจกต์
เพราะถึงจะมีเครื่องมือล้ำยุคแค่ไหน ก็คงไม่พอ ถ้ามีแค่ระดับ Senior/Lead เท่านั้นที่เข้าใจระเบียบวิธีนี้
การแก้ปัญหาในชีวิตประจำวัน
ระเบียบวิธีควรจะระบุเหตุผลและวิธีแก้ปัญหาที่เราเจอกันทุกวันในการพัฒนาโปรเจกต์
และยังต้องมีเครื่องมือสนับสนุน (CLI, Linters) มาช่วยด้วย
เพื่อให้นักพัฒนาสามารถใช้แนวทางที่ ผ่านการทดสอบในสนามจริง (Battle-tested) ซึ่งช่วยให้ก้าวข้ามปัญหาเดิมๆ เรื่องสถาปัตยกรรมและการพัฒนาไปได้
@sergeysova: ลองจินตนาการว่านักพัฒนาเขียนโค้ดตามกรอบของระเบียบวิธีนี้ แล้วเจอปัญหาน้อยลง 10 เท่า เพียงเพราะมีคนอื่นช่วยคิดวิธีแก้ปัญหาหลายๆ อย่างมาให้แล้ว
ข้อจำกัด
เราไม่อยาก ยัดเยียดมุมมองของเรา และในขณะเดียวกันเราก็เข้าใจว่า นิสัยหลายอย่างของเราในฐานะนักพัฒนา มักจะเป็นอุปสรรคในแต่ละวัน
ทุกคนมีระดับประสบการณ์ในการออกแบบและพัฒนาระบบที่ต่างกัน ดังนั้น จึงควรทำความเข้าใจเรื่องต่อไปนี้:
-
สิ่งที่จะไม่เกิดขึ้น: ง่ายมากๆ, ชัดเจนสุดๆ, เหมาะสำหรับทุกคน
@sergeysova: คอนเซปต์บางอย่างไม่สามารถเข้าใจได้โดยสัญชาตญาณ จนกว่าคุณจะเจอปัญหาและใช้เวลาเป็นปีๆ ในการแก้มัน
- ในโลกคณิตศาสตร์: ทฤษฎีกราฟ
- ในฟิสิกส์: กลศาสตร์ควอนตัม
- ในการเขียนโปรแกรม: สถาปัตยกรรมแอปพลิเคชัน
-
สิ่งที่เป็นไปได้และควรจะเป็น: ความเรียบง่าย, ความสามารถในการขยาย (Extensibility)