ดาวน์โหลดโปรแกรมฟรี
       
   สมัครสมาชิก   เข้าสู่ระบบ
THAIWARE.COM | ทิปส์ไอที
 

Agile Software Development คืออะไร ? สำคัญกับการพัฒนาซอฟต์แวร์อย่างไร ?

Agile Software Development คืออะไร ? สำคัญกับการพัฒนาซอฟต์แวร์อย่างไร ?
ภาพจาก : https://www.freepik.com/free-ai-image/3d-illustration-group-people-sitting-table-working-creative-building_176733794.htm
เมื่อ :
|  ผู้เข้าชม : 1,299
เขียนโดย :
0 Agile+Software+Development+%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3+%3F+%E0%B8%AA%E0%B8%B3%E0%B8%84%E0%B8%B1%E0%B8%8D%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2%E0%B8%8B%E0%B8%AD%E0%B8%9F%E0%B8%95%E0%B9%8C%E0%B9%81%E0%B8%A7%E0%B8%A3%E0%B9%8C%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3+%3F
A- A+
แชร์หน้าเว็บนี้ :

Agile Software Development คืออะไร ?

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

บทความเกี่ยวกับ Software อื่นๆ

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

เนื้อหาภายในบทความ

ทำไมต้อง พัฒนาซอฟต์แวร์แบบเอจายล์ ? (Why should you develop software by using Agile Software Development ?)

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

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

Agile Software Development คืออะไร ? สำคัญกับการพัฒนาซอฟต์แวร์อย่างไร ?
ภาพจาก : https://workforce.caspercollege.edu/training-programs/full-stack-software-developer/

วงจร ของการพัฒนาซอฟต์แวร์แบบเอจายล์ (Agile Software Development Life Cycle)

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

แนวคิด (Concept)

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

เริ่มต้น (Inception)

ปูพื้นฐานสู่การพัฒนา เมื่อได้แนวคิดที่ชัดเจนแล้วขั้นตอนต่อมาคือการจัดตั้งทีมหาเงินทุนสนับสนุน และหารือความต้องการเบื้องต้นกับลูกค้า ขั้นตอนนี้สำคัญมากเพราะเป็นการวางรากฐานให้ทีมและลูกค้าเข้าใจตรงกัน รวมถึงการสร้างตารางเวลาที่ชัดเจน กำหนดช่วงเวลาการทำงานแต่ละรอบ (Sprint) โดยแต่ละ sprint จะมีเวลาประมาณ 2-4 อาทิตย์ เป้าหมายของแต่ละ sprint คือการมีซอฟต์แวร์ที่ใช้งานได้เบื้องต้น ทีมจะนำฟีเจอร์ที่สำคัญที่สุดมาพัฒนาให้เสร็จก่อน

สร้าง/ปรับปรุง (Iteration/Construction)

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

ปล่อยใช้งาน (Release)

ส่งมอบซอฟต์แวร์เวอร์ชันใหม่ เมื่อสิ้นสุดแต่ละ sprint ทีมจะนำเสนอซอฟต์แวร์ที่พัฒนาเสร็จในรอบนั้นให้กับลูกค้า ขั้นตอนนี้จะมีการทดสอบคุณภาพครั้งสุดท้าย, แก้ไขปัญหาที่พบ, ปรับเอกสารคู่มือ และสุดท้ายคือการปล่อยซอฟต์แวร์เวอร์ชันสุดท้าย (Final) ออกไปใช้งานจริง

ใช้งานจริง (Production)

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

เลิกใช้งาน (Retirement)

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

Agile Software Development คืออะไร ? สำคัญกับการพัฒนาซอฟต์แวร์อย่างไร ?
ภาพจาก : https://www.techtarget.com/searchsoftwarequality/definition/agile-software-development

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

คุณค่า และหลักการ ของการพัฒนาซอฟต์แวร์แบบเอจายล์ (Values ​​and Principles of Agile Software Development)

ในปี ค.ศ. 2001 (พ.ศ. 2544) บุคลากรที่เชี่ยวชาญด้านการพัฒนาซอฟต์แวร์จำนวน 17 คน ได้มารวมตัวกันเพื่อหารือเกี่ยวกับแนวคิดการพัฒนาซอฟต์แวร์ที่มีขนาดเล็ก ซึ่งนำไปสู่การสร้างประกาศของ Agile หรือว่า Agile Manifesto ซึ่งได้ระบุคุณค่าหลักทั้ง 4 ประการของ Agile แม้ว่าจะมีการถกเถียงกันว่า Agile Manifesto มีประโยชน์น้อยลงแล้วหรือไม่ ? แต่มันก็ยังคงเป็นหัวใจสำคัญของแนวทางการพัฒนาซอฟต์แวร์แบบ Agile อยู่ดีซึ่งประกอบไปด้วย

Agile Software Development คืออะไร ? สำคัญกับการพัฒนาซอฟต์แวร์อย่างไร ?
ภาพจาก : https://www.linkedin.com/pulse/what-4-principles-agile-chicago-management-training-instit-kmacf/

1. คนสำคัญกว่าเครื่องมือ

การทำงานร่วมกันเป็นทีมสำคัญกว่าแค่ทำตามกฎ หรือใช้เครื่องมือที่เหนือชั้น  ทีมต้องปรับตัวได้ตามความต้องการของลูกค้า กระบวนการที่ยุ่งยากซับซ้อนจะทำให้ตอบสนองลูกค้าได้ช้าลง

2. ซอฟต์แวร์ที่ใช้งานได้จริงดีกว่าเอกสารยาว ๆ

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

3. ทำงานร่วมกันดีกว่ามัวแต่ต่อรอง

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

4. ปรับตัวได้ตามความเปลี่ยนแปลง

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

หลักการ 12 ข้อของ Agile

ในประกาศของการพัฒนาซอฟต์แวร์ Agile ยังระบุหลักการสำคัญ 12 ประการสำหรับกระบวนการพัฒนาไว้ด้วย

  1. ส่งมอบงานที่มีคุณค่าให้ลูกค้าอย่างต่อเนื่อง และรวดเร็ว
  2. ย่อยงานใหญ่ให้มีขนาดเล็กลง เพื่อเพิ่มความเร็วในการพัฒนา
  3. งานที่ดีที่สุดมักมาจากทีมที่บริหารตัวเองได้
  4. สร้างสภาพแวดล้อมที่ดี สนับสนุนทีมให้พวกเขาทำงานได้อย่างเต็มที่
  5. สร้างกระบวนการทำงานที่ยั่งยืน ไม่กดดัน
  6. รักษาความเร็วในการทำงานอย่างต่อเนื่อง
  7. ยินดีรับความเปลี่ยนแปลง แม้การพัฒนาจะใกล้เสร็จสิ้นแล้วก็ตาม
  8. ทีมพัฒนา และเจ้าของโปรเจคทำงานร่วมกันทุกวัน
  9. ทีมประเมินตัวเองเสมอ เพื่อหาทางทำงานที่ดีขึ้น ปรับปรุงการทำงานให้มีประสิทธิภาพมากกว่าเดิม
  10. วัดความสำเร็จด้วยปริมาณงานที่ทำเสร็จ
  11. มุ่งเน้นความเป็นเลิศ พัฒนาอยู่เสมอ
  12. ใช้ประโยชน์จากการเปลี่ยนแปลง เพื่อให้ได้เปรียบคู่แข่ง

ประเภท ของการพัฒนาซอฟต์แวร์แบบเอจายล์ (Types of Agile Software Development)

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

Scrum

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

Scrum เน้นการทำงานเป็นทีม เจ้าของผลิตภัณฑ์จะสร้างรายการสิ่งที่ต้องทำ (Product Backlog) ซึ่งเป็นเหมือนลิสต์รายการต่าง ๆ ที่ต้องทำเพื่อสร้างซอฟต์แวร์ที่ใช้งานได้สำเร็จ รายการนี้จะรวมไปถึงการแก้ไขบั๊ก (Bug) เพิ่มฟีเจอร์ใหม่ ๆ และข้อกำหนดอื่น ๆ ที่จำเป็น ทีมงานจะร่วมกันพิจารณา และจัดลำดับความสำคัญของแต่ละอย่างในรายการ

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

Scrum ได้รับความนิยมมากเพราะว่าใช้งานง่าย ช่วยให้ทำงานได้อย่างมีประสิทธิภาพ และสามารถปรับใช้ร่วมกับวิธีการ Agile อื่น ๆ ได้อีกด้วย

Lean Software Development

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

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

Lean ยังสนับสนุนให้เขียนโปรแกรมทดสอบ (Unit test) ควบคู่ไปกับการเขียนโค้ด เพื่อให้แน่ใจว่าทุกคนในทีมทำงานได้อย่างมีประสิทธิภาพสูงสุด

Extreme Programming (XP)

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

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

Crystal

Crystal เป็นวิธีการพัฒนาซอฟต์แวร์แบบ Agile ที่ยืดหยุ่น และปรับเปลี่ยนได้ตามความต้องการของแต่ละโปรเจคมากที่สุด Crystal เน้นที่คน และการทำงานร่วมกันภายในทีม โดยคำนึงถึงความสำคัญของระบบที่กำลังพัฒนา Crystal เข้าใจว่าแต่ละโปรเจคมีความแตกต่างกัน ดังนั้น Crystal จึงไม่ได้มีกฎตายตัว แต่จะมีแนวทางย่อย ๆ อย่าง Crystal Orange, Crystal Clear และ Crystal Yellow ซึ่งแต่ละแนวทางก็จะมีจุดเด่นที่ต่างกัน ขึ้นอยู่กับความสำคัญของโปรเจค ขนาดของทีม และความซับซ้อนของระบบ

เหมือนกับวิธีการ Agile อื่น ๆ Crystal เน้นการส่งมอบซอฟต์แวร์ที่ใช้งานได้บ่อยครั้ง ให้ลูกค้ามีส่วนร่วม, ปรับเปลี่ยนได้ตามสถานการณ์ และลดขั้นตอนที่ไม่จำเป็น หัวใจสำคัญของ Crystal คือ การสื่อสาร การทำงานเป็นทีม และความเรียบง่าย

Kanban

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

Kanban มีหลักการพื้นฐาน 3 ข้อ:

  1. แสดงภาพรวมกระบวนการทำงานให้ชัดเจน
  2. จำกัดปริมาณงานที่อยู่ระหว่างดำเนินการ
  3. ปรับปรุงกระบวนการทำงานให้ไหลลื่น

คล้ายกับ Scrum เทคนิค Kanban ถูกออกแบบมาเพื่อให้ทีมทำงานร่วมกันได้อย่างมีประสิทธิภาพ Kanban เน้นการทำงานร่วมมืออย่างต่อเนื่อง และพยายามปรับกระบวนการทำงานให้ดีที่สุด เพื่อส่งเสริมการเรียนรู้และพัฒนาอย่างต่อเนื่องภายในทีม

DSDM (Dynamic Systems Development Method)

DSDM (Dynamic Systems Development Method) เป็นวิธีการพัฒนาซอฟต์แวร์ที่เน้นความรวดเร็ว ถูกสร้างขึ้นมาเพื่อตอบสนองความต้องการกรอบการทำงานกลางในอุตสาหกรรม DSDM มีหลักการสำคัญ 8 ข้อ ซึ่งการละเลยข้อใดข้อหนึ่งอาจส่งผลต่อความสำเร็จของโปรเจค หลักการเหล่านี้มีดังนี้

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

DSDM ยอมรับว่าการแก้ไขงานเป็นเรื่องปกติ และทุกการเปลี่ยนแปลงควรสามารถย้อนกลับได้ ความสำคัญของระบบจะถูกแบ่งตามกฎ MoSCoW ดังนี้

  • M (Must have) - สิ่งที่ต้องมี ขาดไม่ได้
  • S (Should have) - ควรมี แต่ไม่ใช่สิ่งจำเป็นที่สุด
  • C (Could have) - อาจจะมีได้ แต่ไม่ใช่สิ่งสำคัญเร่งด่วน
  • W (Won't have now) - ตอนนี้ยังไม่ต้องมี แต่จะมีในอนาคตได้

Agile Software Development คืออะไร ? สำคัญกับการพัฒนาซอฟต์แวร์อย่างไร ?
ภาพจาก : https://www.techtarget.com/searchsoftwarequality/definition/MoSCoW-method

ใน DSDM ไม่ใช่ทุกความต้องการที่จะเป็นสิ่งสำคัญ แต่ละรอบการพัฒนา ควรมีพื้นที่สำหรับฟีเจอร์ที่สำคัญน้อยกว่า เพื่อให้ทีมสามารถโฟกัสกับฟีเจอร์ที่มีความสำคัญสูงก่อนได้อย่างเต็มที่

Feature-Driven Development (FDD)

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

FDD เริ่มต้นด้วยการกำหนดภาพรวมของโมเดล ซึ่งจะช่วยสร้างรายการฟีเจอร์ต่าง ๆ จากนั้น FDD จะแบ่งการทำงานเป็นรอบย่อย ๆ โดยแต่ละรอบใช้เวลาประมาณ 2 อาทิตย์ เน้นการวางแผน, ออกแบบ และสร้างฟีเจอร์ทีละฟีเจอร์ ถ้าฟีเจอร์ไหนใช้เวลานานเกิน 2 อาทิตย์ ก็ควรจะแบ่งฟีเจอร์นั้นออกเป็นฟีเจอร์ที่เล็กกว่า

จุดเด่นของ FDD คือความสามารถในการปรับขนาดให้เหมาะสมกับทีมงานได้ ไม่ว่าจะเป็นทีมขนาดเล็กหรือใหญ่ โดยอาศัยแนวคิด "Just Enough Design Initially (JEDI)" ซึ่งหมายความว่า ไม่จำเป็นต้องออกแบบทุกอย่างลงรายละเอียดตั้งแต่แรก ออกแบบให้พอดีต่อการเริ่มต้นการพัฒนา แล้วค่อย ๆ ออกแบบเพิ่มเติมไปทีละน้อย

บทสรุป ของการพัฒนาซอฟต์แวร์แบบเอจายล์ (Agile Software Development Conclusions)

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

แนวทาง Agile ช่วยเพิ่มความคล่องตัวและประสิทธิภาพในการพัฒนา แต่ก็ต้องการการบริหารจัดการที่ดีเพื่อไม่ให้เกิดความเครียด และปัญหาจากการส่งมอบงานในระยะเวลาสั้นๆ


ที่มา : www.techtarget.com , www.techtarget.com

0 Agile+Software+Development+%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3+%3F+%E0%B8%AA%E0%B8%B3%E0%B8%84%E0%B8%B1%E0%B8%8D%E0%B8%81%E0%B8%B1%E0%B8%9A%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%9E%E0%B8%B1%E0%B8%92%E0%B8%99%E0%B8%B2%E0%B8%8B%E0%B8%AD%E0%B8%9F%E0%B8%95%E0%B9%8C%E0%B9%81%E0%B8%A7%E0%B8%A3%E0%B9%8C%E0%B8%AD%E0%B8%A2%E0%B9%88%E0%B8%B2%E0%B8%87%E0%B9%84%E0%B8%A3+%3F
แชร์หน้าเว็บนี้ :
Keyword คำสำคัญ »
เขียนโดย
นักเขียน : Editor    นักเขียน
 
 
 

ทิปส์ไอทีที่เกี่ยวข้อง

 


 

แสดงความคิดเห็น