แนวทางปฏิบัติของ TDD และ Agile สามารถรับประกันได้ว่าจะสร้างทางออกที่ดีที่สุดได้หรือไม่? (หรือแม้แต่โซลูชันที่ "ดี")
ไม่แน่นอน แต่นั่นไม่ใช่จุดประสงค์ของพวกเขา
วิธีการเหล่านี้ให้ "เส้นทางที่ปลอดภัย" จากรัฐหนึ่งไปอีกรัฐหนึ่งโดยยอมรับว่าการเปลี่ยนแปลงนั้นใช้เวลานานยากและมีความเสี่ยง และจุดประสงค์ของการปฏิบัติทั้งสองคือเพื่อให้แน่ใจว่าแอปพลิเคชันและรหัสมีทั้งที่ทำงานได้และได้รับการพิสูจน์แล้วว่าตรงตามข้อกำหนดมากขึ้นอย่างรวดเร็วและสม่ำเสมอ
... [TDD] ตรงข้ามกับการพัฒนาซอฟต์แวร์ที่อนุญาตให้เพิ่มซอฟต์แวร์ที่ไม่ได้รับการพิสูจน์ว่าตรงตามข้อกำหนด ... Kent Beck ผู้ซึ่งให้เครดิตว่ามีการพัฒนาหรือ 'ค้นพบใหม่' เทคนิคระบุไว้ในปี 2003 ว่าTDD ส่งเสริมให้ง่าย การออกแบบและสร้างแรงบันดาลใจความมั่นใจ ( Wikipedia )
TDD มุ่งเน้นที่การสร้างความมั่นใจว่า "chunk" ของโค้ดแต่ละตัวเป็นไปตามข้อกำหนด โดยเฉพาะอย่างยิ่งจะช่วยให้มั่นใจได้ว่าโค้ดตรงตามข้อกำหนดที่มีอยู่ก่อนหน้าซึ่งตรงข้ามกับความต้องการให้ได้รับการขับเคลื่อนด้วยการเข้ารหัสที่ไม่ดี แต่มันก็ไม่ได้สัญญาว่าการใช้งานจะ "ดีที่สุด" ในทางใดทางหนึ่ง
สำหรับกระบวนการเปรียว:
ซอฟต์แวร์ที่ใช้งานเป็นมาตรการหลักของความคืบหน้า ... ในตอนท้ายของการทำซ้ำแต่ละครั้งผู้มีส่วนได้ส่วนเสียและตัวแทนลูกค้าจะทบทวนความคืบหน้าและประเมินลำดับความสำคัญอีกครั้งเพื่อให้ได้ผลตอบแทนจากการลงทุนสูงสุด ( Wikipedia )
ความคล่องตัวไม่ได้มองหาที่ดีที่สุดวิธีการแก้ปัญหา ; เป็นเพียงแค่การทำงานแก้ปัญหา - ด้วยความตั้งใจของการเพิ่มประสิทธิภาพผลตอบแทนการลงทุน มันสัญญาว่าจะแก้ปัญหาการทำงานเร็วกว่าในภายหลัง ; ไม่ใช่ "ดีที่สุด"
แต่นั่นก็โอเคเพราะคำถามนั้นผิด
การพัฒนาซอฟต์แวร์ที่เหมาะสมที่สุดนั้นคลุมเครือและมีเป้าหมายเคลื่อนที่ ข้อกำหนดมักจะอยู่ในสภาพคล่องและเต็มไปด้วยความลับที่เกิดขึ้นกับความลำบากใจของคุณในห้องประชุมที่เต็มไปด้วยเจ้านายของคุณ และ "ความดีที่อยู่ภายใน" ของสถาปัตยกรรมและการเข้ารหัสของโซลูชันนั้นถูกจัดระดับโดยความคิดเห็นที่แยกและเป็นอัตวิสัยของเพื่อนของคุณและของผู้บริหารระดับสูงของคุณซึ่งไม่มีใครรู้เรื่องซอฟต์แวร์ที่ดี
อย่างน้อยที่สุดวิธีปฏิบัติของ TDD และ Agile ยอมรับความยากลำบากและพยายามปรับให้เหมาะสมสำหรับสองสิ่งที่มีวัตถุประสงค์และสามารถวัดได้: Working v. Not-WorkingและSooner v ภายหลัง
และแม้ว่าเราจะมี "การทำงาน" และ "เร็วกว่า" เป็นตัวชี้วัดเป้าหมายความสามารถในการเพิ่มประสิทธิภาพสำหรับพวกเขานั้นขึ้นอยู่กับทักษะและประสบการณ์ของทีมเป็นหลัก
สิ่งที่คุณสามารถตีความว่าเป็นความพยายามในการผลิตโซลูชั่นที่ดีที่สุดรวมถึงสิ่งต่าง ๆ เช่น:
ฯลฯ ..
ไม่ว่าแต่ละสิ่งเหล่านั้นจะสร้างทางออกที่ดีที่สุดจริง ๆ หรือไม่ก็เป็นคำถามที่ยอดเยี่ยมที่จะถาม!