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

Agile Software Development คืออะไร
SCRUM และวิธีการ Agile ชั้นนำอื่นๆ
Agile เป็นกรอบความคิด และเป็นชุดของค่านิยมและหลักการ Agile เป็นวิธีการคิดและการกระทำ Agile เป็นเรื่องของรอบสั้นๆ การส่งมอบแบบวนซ้ำและเพิ่มเติมทีละน้อย ความล้มเหลวได้เร็ว การได้รับความเห็น การส่งมอบมูลค่าธุรกิจให้กับลูกค้าเร็วๆนี้ และเกี่ยวกับคน ความร่วมมือ และการมีปฏิสัมพันธ์ Agile เป็นกรอบความคิดซึ่งเป็นเรื่องเกี่ยวกับความโปร่งใส การตรวจสอบ และการปรับตัว Agile อย่างไรก็ตาม ไม่มี บทบาท เหตุการณ์ หรือ สิ่งประดิษฐ์ มันเป็นกรอบความคิด ตัวอย่างเช่น SCRUM เป็นหนึ่งในกรอบงานที่ใช้กันอย่างแพร่หลายภายใต้ร่มเงา Agile ซึ่งอาจช่วยคุณในการกลายเป็น Agile มากขึ้น อย่างไรก็ตาม มีกรอบงานมากมายอื่นๆ ภายใน Agile movement เช่น Kanban, XP, Crystal และอีกหลายตัวดังที่แสดงในรูปด้านล่าง

Agile Methods
SCRUM:
SCRUM เป็นกรอบงานที่ภายในนั้นคนสามารถจัดการปัญหาการปรับตัวที่ซับซ้อน ขณะส่งผลิตภัณฑ์ของมูลค่าสูงสุดอย่างมีประสิทธิผลและสร้างสรรค์ มันถูกใช้เพื่อจัดการโครงการซอฟต์แวร์และการพัฒนาผลิตภัณฑ์หรือแอปพลิเคชัน โฟกัสของมันคือกลยุทธ์การพัฒนาผลิตภัณฑ์ที่ปรับตัวได้ โดยทีมข้ามสาขาทำงานเป็นหน่วยเดียวเพื่อให้บรรลุเป้าหมายร่วมกันภายใน 2-4 สัปดาห์ (Sprint) มันประกอบด้วยชุดของค่านิยม สิ่งประดิษฐ์ บทบาท พิธีกรรม กฎ และแนวปฏิบัติที่ดีที่สุด
Lean:
Lean มีต้นกำเนิดจากระบบการผลิตของ Toyota หรือ TPS ซึ่งปฏิวัติการผลิตสินค้าทางกายภาพในยุค 1950, 60 และอื่นๆ Lean ยังคงถือครองอำนาจในการผลิต แต่ยังพบการประยุกต์ใช้ใหม่ในงานด้านความรู้ช่วยให้ธุรกิจในทุกอุตสาหกรรมกำจัดของเสีย ปรับปรุงกระบวนการ และสนับสนุนนวัตกรรม การพัฒนาซอฟต์แวร์เป็นการประยุกต์ใช้ของวิธี Lean ตามธรรมชาติ เพราะมากเหมือนกับการผลิต โดยทั่วไปแล้วมันจะตามกระบวนการที่กำหนด มีเงื่อนไขการยอมรับที่กำหนด และส่งผลให้การส่งมอบมูลค่าที่จับต้องได้ แนวคิดสำคัญที่นำทางการปฏิบัติทั้งหมดของวิธี Lean ซึ่งเราเรียกว่าเสาหลักของ Lean คือ
- การปรับปรุงอย่างต่อเนื่อง
- ความเคารพต่อประชาชน
- ความเป็นผู้นำที่เบา
Kanban:
Kanban เป็นวิธีการจัดการการไหลของงานที่มองเห็นได้สูง ซึ่งได้รับความนิยมในบรรดาทีม Lean ในความเป็นจริง 83% ของทีมที่ปฏิบัติ Lean ใช้ Kanban เพื่อจินตนาการและจัดการการสร้างผลิตภัณฑ์อย่างแข็งขันโดยมีการเน้นการส่งมอบต่อเนื่อง ขณะที่ไม่โหลดทีมพัฒนาเกินมากมายเท่า เหมือน SCRUM Kanban เป็นกระบวนการที่ออกแบบมาเพื่อช่วยให้ทีมทำงานร่วมกันได้อย่างมีประสิทธิผลมากขึ้น
Kanban อิงตามหลักการพื้นฐาน 3 ประการ
- จินตนาการว่าคุณจะทำอะไรในวันนี้ (workflow): การเห็นรายการทั้งหมดในบริบทของกันและกันสามารถให้ข้อมูลมากมาย
- จำกัดจำนวนงานที่กำลังดำเนินการ (WIP): สิ่งนี้ช่วยปรับสมดุลวิธีการที่ใช้งานได้ เพื่อให้ทีมไม่เริ่มและมอบหมายงานมากเกินไปในครั้งเดียว
- ปรับปรุงการไหล: เมื่อสิ่งใดสิ่งหนึ่งเสร็จ รายการลำดับความสำคัญสูงสุดถัดไปจากแคตตาล็อกจะถูกนำมาใช้
Kanban ส่งเสริมการร่วมมือแบบต่อเนื่องและส่งเสริมการเรียนรู้และการปรับปรุงอย่างแข็งขัน โดยการกำหนด workflow ของทีมที่ดีที่สุด
Dynamic Systems Development Method (DSDM):
DSDM เป็นกรอบงานที่ประกอบด้วยหลักการแปด วงจรชีวิต และผลิตภัณฑ์ บทบาท และความรับผิดชอบ และเทคนิคแนวปฏิบัติที่ดีที่สุดหลายประการ สิ่งเหล่านี้รองรับและสนับสนุนปรัชญาของการส่งมอบประโยชน์ที่สอดคล้องกับกลยุทธ์ของธุรกิจ โดยเร็วที่สุดเท่าที่เป็นไปได้ เพื่อให้องค์กรได้ผลตอบแทนจากการลงทุนที่ดีที่สุด (ROI)
DSDM เป็นวิธีการที่ให้ความสำคัญกับตารางเวลาและคุณภาพมากกว่าฟังก์ชันการทำงาน ซึ่งกำหนดต้นทุน คุณภาพ และเวลา ณ จุดเริ่มต้น และใช้วิธี MoSCoW ของการจัดลำดับความสำคัญ ซึ่งแบ่งโครงการออกเป็นข้อกำหนดสี่ประเภท
- ต้องมี (M)
- ควรมี (S)
- สามารถมี (C)
- จะไม่มี (W)
มีหลักการแปดประการที่รองรับ DSDM Atern หลักการเหล่านี้นำทีมในท่าทีที่พวกเขาต้องเตรียมและกรอบความคิดที่พวกเขาต้องยอมรับเพื่อส่งมอบอย่างสม่ำเสมอ
- มุ่งเน้นไปที่ความต้องการของธุรกิจ
- ส่งมอบตรงเวลา
- ความร่วมมือ
- อย่าประนีประนอมคุณภาพ
- สร้างขึ้นทีละน้อยจากรากฐานที่มั่น
- พัฒนาแบบวนซ้ำ
- สื่อสารอย่างต่อเนื่องและชัดเจน
- สาธิตการควบคุม
Extreme Programming:
Extreme Programming (XP) ซึ่งเดิมอธิบายโดย Kent Beck ได้เกิดขึ้นเป็นหนึ่งในวิธี Agile ที่ได้รับความนิยมและถกเถียงมากที่สุด XP เป็นวิธีการที่มีวินัยสำหรับการส่งมอบซอฟต์แวร์คุณภาพสูงอย่างรวดเร็วและต่อเนื่อง โดยมีจุดมุ่งหมายเพื่อปรับปรุงคุณภาพซอฟต์แวร์และการตอบสนองต่อความต้องการของลูกค้าที่เปลี่ยนแปลง มันส่งเสริมความเกี่ยวข้องของลูกค้าสูง ลูปความเห็นที่รวดเร็ว การทดสอบต่อเนื่อง การวางแผนต่อเนื่อง และการทำงานอย่างใกล้ชิดเพื่อส่งซอฟต์แวร์ที่ทำงานอยู่ในช่วงเวลาที่นัดหมายอย่างเรื่อยๆ โดยปกติทุก 1-3 สัปดาห์
วิธีการใช้ชื่อของมันมาจากแนวคิดที่ว่าองค์ประกอบที่มีประโยชน์ของแนวปฏิบัติด้านวิศวกรรมซอฟต์แวร์แบบดั้งเดิม นำไปสู่ระดับ “สูง” เป็นตัวอย่างการตรวจสอบโค้ดจะถือว่าเป็นแนวปฏิบัติที่มีประโยชน์ โดยนำไปสู่สุดขั้ว โค้ดสามารถตรวจสอบได้อย่างต่อเนื่องผ่านแนวปฏิบัติของการเขียนโปรแกรมเป็นคู่
วิธี XP เดิมอิงตามค่านิยมสี่ประการ – ความเรียบง่าย การสื่อสาร ความเห็น และความกล้า
มีแนวปฏิบัติสนับสนุนสิบสองประการดังนี้
- Planning Game
- Small Releases
- Customer Acceptance Tests
- Simple Design
- Pair Programming
- Test-Driven Development
- Refactoring
- Continuous Integration
- Collective Code Ownership
- Coding Standards
- Metaphor
- Sustainable Pace

Extreme Programming
Feature Driven Development (FDD):
Feature-Driven Development (FDD) ถูกนำเสนอในปี 1997 โดย Jeff De Luca เมื่อเขาทำงานในโครงการพัฒนาซอฟต์แวร์สำหรับธนาคารขนาดใหญ่ในสิงคโปร์ เป็นกระบวนการพัฒนาซอฟต์แวร์แบบวนซ้ำและเพิ่มเติมทีละน้อย และเป็นวิธี agile สำหรับการพัฒนาซอฟต์แวร์ FDD ผสมผสานแนวปฏิบัติที่ได้รับการยอมรับจากอุตสาหกรรมหลายตัวเข้าเป็นหนึ่งเดียว แนวปฏิบัติเหล่านี้ถูกขับเคลื่อนจากมุมมองของฟังก์ชันการทำงานที่มีค่าของลูกค้า (feature) จุดประสงค์หลักของมันคือการส่งมอบซอฟต์แวร์ที่ทำงานได้และจับต้องได้อย่างสม่ำเสมอในเวลาที่เหมาะสม ข้อดีของการใช้ FDD คือว่ามันสามารถปรับขนาดได้แม้ในทีมขนาดใหญ่เนื่องจากแนวคิดของ “ออกแบบเพียงพอ” (JEDI) เป็นวิธีแก้ปัญหาที่ยอดเยี่ยมเพื่อรักษาการควบคุมเหนือโครงการแบบ Agile ที่พัฒนาทีละส่วนและมีความซับซ้อนโดยธรรมชาติ เนื่องจากกระบวนการที่เน้นไปที่ feature มีกิจกรรมพื้นฐานห้าประการ
- การพัฒนาแบบจำลองโดยรวม
- การสร้างรายชื่อ feature
- การวางแผนตาม feature
- การออกแบบตาม feature
- การสร้างตาม feature

Feature Driven Development (FDD)
โครงการแต่ละครั้งจะมีแบบจำลองเฉพาะของตัวเอง ซึ่งจะส่งผลให้มีรายชื่อ feature กิจกรรมสุดท้ายสามประการเป็นกระบวนการวนซ้ำสั้นๆ โดย feature ไม่ใช้เวลามากกว่าสองสัปดาห์ในการสร้าง หากใช้เวลามากกว่าสองสัปดาห์ ก็ต้องแบ่งออกเป็น feature ที่เล็กกว่า
Crystal:
วิธี Crystal เป็นครอบครัวของวิธีการ (ครอบครัว Crystal) ซึ่งพัฒนาโดย Alistair Cockburn ในช่วงกลางปี 1990 วิธีการมาจากการศึกษาและสัมภาษณ์ทีมเป็นเวลาหลายปีโดย Cockburn การวิจัยของ Cockburn แสดงให้เห็นว่าทีมที่เขาสัมภาษณ์ไม่ได้ปฏิบัติตามวิธีการอย่างเป็นทางการ แต่พวกเขายังคงส่งมอบโครงการที่ประสบความสำเร็จ ครอบครัว Crystal คือวิธีของ Cockburn ในการจัดประเภทสิ่งที่พวกเขาทำ ซึ่งทำให้โครงการประสบความสำเร็จ วิธี Crystal มุ่งเน้นไปที่
- ผู้คน
- การมีปฏิสัมพันธ์
- ชุมชน
- ทักษะ
- พรสวรรค์
- การสื่อสาร
AGILE MANIFESTO
คำว่า “Agile” ถูกบัญญัติขึ้นในปี 2001 ใน Agile Manifesto Manifesto ได้กำหนดหลักการเพื่อนำทางแนวทางที่ดีขึ้นสำหรับการพัฒนาซอฟต์แวร์ Agile Manifesto ประกอบด้วยค่านิยมที่สำคัญ 4 ประการ วิธีการอ่าน Agile Manifesto ไม่ใช่รายการด้านขวามือไม่มีค่า แต่ Agile movement ให้ค่ารายการด้านซ้ายมากขึ้น

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

Agile Manifesto Principles
Agile Manifesto Principles:
- ความสำคัญสูงสุดของเราคือการตอบสนองความต้องการของลูกค้าผ่านการส่งมอบซอฟต์แวร์ที่มีค่าเร็วและต่อเนื่อง
- ต้อนรับการเปลี่ยนแปลงความต้องการ แม้แต่ในช่วงปลายการพัฒนา Agile processes ควรใช้การเปลี่ยนแปลงเพื่อให้ลูกค้าได้ประโยชน์ในการแข่งขัน
- ส่งมอบซอฟต์แวร์ที่ทำงานได้บ่อยๆ ตั้งแต่สองสามสัปดาห์ถึงสองสามเดือน ด้วยลำดับความสำคัญต่อ timescale ที่สั้นกว่า
- ผู้ประกอบการและนักพัฒนาต้องทำงานร่วมกันทุกวันตลอดโครงการ
- สร้างโครงการรอบตัวบุคคลที่มีแรงจูงใจ ให้สภาพแวดล้อมและการสนับสนุนที่พวกเขาต้องการ และเชื่อใจพวกเขาที่จะทำให้งานเสร็จสิ้น
- วิธีการส่งข้อมูลสูงสุดและมีประสิทธิผลต่อและภายในทีมพัฒนาคือการสนทนาแบบหน้าต่อหน้า
- ซอฟต์แวร์ที่ทำงานได้เป็นวิธีการวัดความก้าวหน้า
- Agile processes สนับสนุนการพัฒนาอย่างยั่งยืน
- ผู้สนับสนุน นักพัฒนา และผู้ใช้ควรสามารถรักษาความเร็วที่คงที่ได้อย่างไม่มีกำหนด
- ความสนใจอย่างต่อเนื่องต่อความเป็นเลิศด้านเทคนิคและการออกแบบที่ดีเพิ่มความว่องไว
- ความเรียบง่าย – ศิลปะของการเพิ่มจำนวนงานที่ไม่ได้ทำ – เป็นสิ่งสำคัญ
- สถาปัตยกรรม ความต้องการ และการออกแบบที่ดีที่สุด เกิดขึ้นจากทีมที่จัดตัวเองเอง ในช่วงเวลาปกติ ทีมสะท้อนถึงวิธีการที่จะกลายเป็นประสิทธิผลมากขึ้น จากนั้นปรับแต่งและปรับพฤติกรรมให้สอดคล้อง
สรุป
Agile Development เป็นหนึ่งในคำยอดฮิตมากมายของอุตสาหกรรมการพัฒนาซอฟต์แวร์ซึ่งเป็นวิธีที่แตกต่างของการจัดการโครงการพัฒนาซอฟต์แวร์ แทนที่จะเป็นวิธีการพัฒนาซอฟต์แวร์เฉพาะ มันเป็นศัพท์ที่ครอบคลุมชุดของวิธีการและแนวปฏิบัติอิงจากค่านิยมและหลักการที่แสดงใน Agile Manifesto โซลูชันพัฒนาผ่านความร่วมมือระหว่างทีมที่จัดตัวเองเอง ข้ามสาขาอุตสาหกรรมใช้งานแนวปฏิบัติที่เหมาะสมสำหรับบริบท
แหล่งที่มา https://www.visual-paradigm.com/scrum/what-is-agile-software-development/









