By | February 2, 2022

วิธีการพัฒนาซอฟต์แวร์ในยุคแรกๆ นั้นจำกัดอยู่ที่ “โค้ดและการแก้ไข” โดยมีการวางแผนระยะยาวเพียงเล็กน้อย ซึ่งทำงานได้ดีสำหรับระบบชุดเล็กๆ แต่เมื่อระบบเติบโตขึ้น พวกเขาก็เสี่ยงต่อจุดบกพร่องและทำงานอย่างมีประสิทธิภาพได้ยากขึ้น วิธีการที่ใหม่กว่านำมาซึ่งการวางแผนและระเบียบวินัยในกระบวนการพัฒนาซอฟต์แวร์ โดยมีเป้าหมายเพื่อให้การพัฒนาซอฟต์แวร์มีประสิทธิภาพและยืดหยุ่นมากขึ้น ความก้าวหน้าของเทคโนโลยีและการแข่งขันทางการตลาดที่มากขึ้นได้เพิ่มแนวทางต่างๆ ในการพัฒนาซอฟต์แวร์ ในช่วงหลายปีที่ผ่านมา บริษัทบางแห่งได้แนะนำชุดวิธีการแบบกำหนดเองของตนเองสำหรับการพัฒนาซอฟต์แวร์ แต่บริษัททั่วโลกส่วนใหญ่ปฏิบัติตามวิธีการสองประเภท: รุ่นหนาและรุ่นน้ำหนักเบา

วิธีการแบบ “เฮฟวี่เวท” แบบดั้งเดิมมีโครงสร้างที่มากกว่า – เป็นกระบวนการและเครื่องมือที่มุ่งเน้น และเป็นไปตามเส้นทางที่คาดการณ์ได้ ซึ่งต้องมีเอกสารประกอบที่ครอบคลุมและมีรายละเอียด วิธีการดั้งเดิมที่ได้รับความนิยม ได้แก่ น้ำตก กระบวนการแบบครบวงจร และเกลียว วิธีการเหล่านี้อิงตามชุดของขั้นตอนตามลำดับ ซึ่งงานเริ่มต้นด้วยการอธิบายและเอกสารโดยละเอียดของข้อกำหนดโดยรวม ตามด้วยการพัฒนาด้านสถาปัตยกรรมและการออกแบบระดับสูง และจุดตรวจและผลงานในแต่ละขั้นตอน เนื่องจากกระบวนการที่ยาวนานและแนวทางที่ค่อนข้างไม่ยืดหยุ่น วิธีการนี้จึงได้ชื่อว่าเป็นรุ่นหนา

วิธีการ “น้ำหนักเบา” ที่ใหม่กว่าหรือที่เรียกว่าการสร้างแบบจำลอง “เปรียว” คือชุดของค่านิยมหรือปรัชญา Agile เผยให้เห็นความผิดปกติขององค์กร ต่างจากวิธีการทั่วไป วิธีการแบบเปรียวโอบรับการทำซ้ำมากกว่าขั้นตอน Agile ใช้วงจรการวนซ้ำแบบสั้น, การเปิดตัวแบบสั้น/แบบสั้น, การออกแบบที่เรียบง่าย, การปรับโครงสร้างการบูรณาการอย่างต่อเนื่อง และอาศัยความรู้โดยปริยายภายในทีมเมื่อเทียบกับการจัดทำเอกสาร วิธีที่นิยมใช้กัน ได้แก่ Extreme Programming, Scrum, Lean, Kanban, Dynamic System Development Method, Feature Driven Development และ Adaptive Software Development

ความแตกต่างที่สำคัญระหว่างวิธีการแบบเฮฟวี่เวทและแบบคล่องตัวคือปัจจัยในการปรับตัว ในวิธีการที่คล่องตัว หากจำเป็นต้องเปลี่ยนแปลงครั้งใหญ่ ทีมงานจะไม่หยุดกระบวนการทำงาน ค่อนข้างจะเป็นตัวกำหนดว่าจะจัดการกับการเปลี่ยนแปลงที่เกิดขึ้นตลอดทั้งโครงการได้ดีขึ้นอย่างไร กระบวนการตรวจสอบในวิธีเปรียวเกิดขึ้นเร็วกว่ามากในกระบวนการพัฒนา ในทางกลับกัน วิธีการแบบเฮฟวี่เวทจะหยุดความต้องการของผลิตภัณฑ์และไม่อนุญาตการเปลี่ยนแปลง ใช้กระบวนการคาดการณ์และอาศัยการกำหนดและจัดทำเอกสารชุดข้อกำหนดที่มั่นคงในช่วงเริ่มต้นของโครงการ

โมเดล Agile นำเสนอเวอร์ชันที่ใช้งานได้ของผลิตภัณฑ์ และการมีส่วนร่วมของผู้ใช้โดยตรงในกระบวนการพัฒนานั้นเร็วมากเมื่อเทียบกับวิธีการแบบเดิม รอบการทดสอบสำหรับ Agile นั้นต่อเนื่องและค่อนข้างสั้นเมื่อเทียบกับวิธีดั้งเดิม เนื่องจากการทดสอบทำควบคู่ไปกับการพัฒนา โมเดลดั้งเดิมส่วนใหญ่มีความแข็งแกร่งมาก และไม่รองรับการเปลี่ยนแปลง และค่อนข้างยืดหยุ่นน้อยกว่ารุ่น Agile เนื่องจากข้อดีทั้งหมดเหล่านี้ Agile จึงมีการตอบสนองที่ครอบคลุมต่อความท้าทายส่วนใหญ่ที่องค์กรต้องเผชิญในตลาดโลกที่มีการแข่งขันสูงและเปลี่ยนแปลงอย่างรวดเร็ว