ScholarGate
ผู้ช่วย

การพัฒนาซอฟต์แวร์แบบ Agile

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

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

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

Scope

หัวข้อนี้ครอบคลุมถึงคุณค่าและหลักการของ Agile Manifesto; กรอบการทำงานที่เป็นรูปธรรม เช่น Scrum, Extreme Programming (XP) และ Kanban; แนวปฏิบัติรวมถึงการวนซ้ำสั้นๆ, การตอบรับอย่างต่อเนื่อง, การพัฒนาแบบทดสอบนำ, การเขียนโปรแกรมคู่, การปรับโครงสร้างโค้ด และการเผยแพร่บ่อยครั้ง; รวมถึงบทบาท, พิธีการ และสิ่งประดิษฐ์ที่จัดโครงสร้างทีม Agile

Core questions

  • คุณค่าและหลักการใดที่ทำให้วิธีการ Agile แตกต่างจากการพัฒนาที่ขับเคลื่อนด้วยแผน?
  • กรอบการทำงานเช่น Scrum และ XP จัดโครงสร้างการวนซ้ำ บทบาท และข้อเสนอแนะอย่างไร?
  • แนวปฏิบัติทางวิศวกรรมใดที่ทำให้การส่งมอบบ่อยครั้งและเชื่อถือได้เป็นไปได้?
  • วิธีการ Agile สามารถขยายขนาดไปยังองค์กรขนาดใหญ่หรือองค์กรที่กระจายตัวได้เมื่อใดและดีเพียงใด?

Key theories

ค่านิยมของ Agile Manifesto
คำแถลงค่านิยมสี่ประการให้ความสำคัญกับบุคคลและการปฏิสัมพันธ์ ซอฟต์แวร์ที่ใช้งานได้จริง การทำงานร่วมกันกับลูกค้า และการตอบสนองต่อการเปลี่ยนแปลง โดยมีหลักการสนับสนุนสิบสองประการที่เน้นการส่งมอบตั้งแต่เนิ่นๆ และต่อเนื่อง และการยอมรับความต้องการที่เปลี่ยนแปลงไป
กรอบการทำงาน Scrum
Scrum จัดระเบียบงานออกเป็น Sprint ที่มีระยะเวลาคงที่ พร้อมบทบาทที่กำหนดไว้ (เจ้าของผลิตภัณฑ์, Scrum Master, นักพัฒนา), สิ่งประดิษฐ์ (Product Backlog และ Sprint Backlog, Increment) และกิจกรรม (การวางแผน Sprint, Daily Scrum, การทบทวน, การย้อนหลัง) เพื่อส่งมอบมูลค่าแบบเพิ่มขึ้น
แนวปฏิบัติของ Extreme Programming
XP ผสมผสานการวนซ้ำสั้นๆ เข้ากับแนวปฏิบัติทางวิศวกรรมที่มีระเบียบวินัย เช่น การพัฒนาแบบทดสอบนำ, การเขียนโปรแกรมคู่, การรวมระบบอย่างต่อเนื่อง, การเป็นเจ้าของร่วม และการปรับโครงสร้างโค้ด เพื่อรักษาระดับต้นทุนของการเปลี่ยนแปลงให้ต่ำ

Clinical relevance

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

Evidence & guidelines

The Scrum Guide ให้คำจำกัดความที่เป็นที่ยอมรับอย่างกว้างขวางของกรอบการทำงาน Scrum และ Agile Manifesto ยังคงเป็นคำแถลงพื้นฐานของค่านิยม Agile; กรอบการทำงานสำหรับการขยายขนาด เช่น SAFe และ LeSS ขยายแนวปฏิบัติ Agile ไปยังองค์กรขนาดใหญ่

History

วิธีการแบบน้ำหนักเบา เช่น Scrum และ XP เกิดขึ้นในทศวรรษ 1990 เพื่อตอบสนองต่อกระบวนการที่เน้นเอกสารและมีน้ำหนักมาก ในปี 2001 ผู้ปฏิบัติงานสิบเจ็ดคนได้เผยแพร่ Agile Manifesto ซึ่งรวมวิธีการเหล่านี้ภายใต้ค่านิยมร่วมกัน; หลังจากนั้น Agile ก็กลายเป็นกระแสหลักและก่อให้เกิดกรอบการทำงานสำหรับการขยายขนาดในทศวรรษ 2010

Debates

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

Key figures

  • Kent Beck
  • Ken Schwaber
  • Jeff Sutherland
  • Martin Fowler
  • Alistair Cockburn

Related topics

Seminal works

  • beck2001
  • beck2004
  • schwaber2020

Frequently asked questions

Agile ตรงข้ามกับวิศวกรรมที่มีระเบียบวินัยหรือไม่?
ไม่ การทำงานแบบ Agile ที่มีประสิทธิภาพขึ้นอยู่กับวินัยทางวิศวกรรมอย่างมาก เช่น การทดสอบอัตโนมัติ การรวมระบบอย่างต่อเนื่อง และการปรับโครงสร้างโค้ด; การเน้นของ Agile คือการปรับตัวเข้ากับการเปลี่ยนแปลงอย่างรวดเร็ว ไม่ใช่การละทิ้งความเข้มงวด
Scrum กับ Agile แตกต่างกันอย่างไร?
Agile คือชุดของค่านิยมและหลักการที่กว้างขวาง; Scrum เป็นกรอบการทำงานเฉพาะหนึ่งที่นำค่านิยมและหลักการเหล่านั้นไปใช้ด้วยบทบาท กิจกรรม และสิ่งประดิษฐ์ที่เฉพาะเจาะจง XP และ Kanban เป็นกรอบการทำงาน Agile อื่นๆ ที่มีจุดเน้นที่แตกต่างกัน

Methods for this concept

Related concepts