บทที่ 3 การพัฒนาซอฟต์แวร์แบบเอจายล์
วัตถุประสงค์ • เพื่อทาความรู้จักกับการพัฒนาซอฟต์แวร์แบบเอจายล์ • เพือ่ ศึกษาแบบจาลองกระบวนการพัฒนาซอฟต์แวร์แบบเอจายล์ใน รูปแบบต่าง ๆ • เพื่อศึกษาการประเมินและการปรับปรุงกระบวนการพัฒนาซอฟต์แวร์
กล่าวนา การพัฒนาซอฟต์แวร์แบบเอจายล์ คือ แนวคิดใหม่ของ กระบวนการพัฒนาซอฟต์แวร์ที่มีลกั ษณะการทางานแบบวนซา โดยมุ่งเน้นการ พัฒนาซอฟต์แวร์ให้มีความก้าวหน้าและเป็นไปตามมาตรฐานที่วางไว้ เน้น • การสื่อสารระหว่างผู้พัฒนา กับผู้ใช้/ลูกค้า • เน้นสื่อสารมากกว่าใช้เอกสาร • มีเอกสารที่เกี่ยวข้องไม่มาก • เวลาที่ใช้ในการพัฒนาซอฟต์แวร์ไม่นาน • ส่งมอบกับลูกค้าได้อย่างรวดเร็ว ทาให้ประหยัดเวลาและค่าใช้จ่าย
การพัฒนาซอฟต์แวร์แบบเอจายล์ เป้าหมายหลัก คือ สนับสนุนการทางานของระบบที่มีความซับซ้อนและ ตอบสนองความต้องการของลูกค้าหรือผู้ใช้ที่ไม่ชัดเจนหรือเปลี่ยนแปลง บ่อย
แบบจาลองกระบวนการพัฒนาซอฟต์แวร์แบบเอจายล์ • • • •
ถูกคิดค้นกลางปี 1990 แก้ไขปัญหาความต้องการของลูกค้าเปลี่ยนแปลงบ่อย สามารถย้อนกลับไปแก้ไขงานที่ไม่สมบูรณ์ ค.ศ. 2001 ตังชื่อว่า ระเบียบวิธีเอจายล์ (Agile Method)
กระบวนการพัฒนาซอฟต์แวร์แบบเอจายล์ • • • • • •
ลักษณะทางานวนซา การออกแบบซอฟต์แวร์ไม่ออกแบบทังหมดในคราวเดียว ออกแบบทีละเล็กทีละน้อย สื่อสารกับผู้ใช้แบบไม่เป็นทางการ จัดทาเอกสารที่สาคัญเท่านัน ส่งมอบงานให้กับลูกค้าหรือผู้ใช้บ่อย
วัตถุประสงค์แบบเอจายล์แก้ไขปัญหา • ใช้เวลาในการพัฒนาซอฟต์แวร์นาน • ลูกค้าหรือผู้ใช้ไม่สามารถเปลี่ยนแปลงความต้องการระหว่างการพัฒนา ซอฟต์แวร์ • นักพัฒนาซอฟต์แวร์เข้าใจความต้องการของลูกค้าหรือผู้ใช้ ตังแต่เริ่ม โครงการซึ่งความต้องการอาจไม่ชัดเจน • ใช้นักพัฒนาซอฟต์แวร์เป็นจานวนมากและทีมงานทุกคนทางานหนัก • มีระเบียบวิธีที่ซับซ้อน • นักพัฒนาซอฟต์แวร์ต้องจัดทาเอกสารจานวนมาก และใช้เวลานาน
บทบัญญัติของเอจายล์ • การให้ความสาคัญกับผู้ปฏิบัติงาน โดยเน้นความถนัดของแต่ละบุคคล และเน้นการปฏิสัมพันธ์ระหว่างผู้ร่วมงาน มากกว่าการทางานตาม กระบวนการและเครื่องมือที่ใช้สนับสนุนการพัฒนาซอฟต์แวร์ • การพัฒนาซอฟต์แวร์ เพื่อนาไปใช้งานได้จริง มากกว่าการจัดทาเอกสาร • การทางานร่วมกับลูกค้าหรือผู้ใช้ มากกว่าการเจรจาต่อรองตามสัญญา • การแก้ไขซอฟต์แวร์ตามการเปลี่ยนแปลงความต้องการของลูกค้าหรือ ผู้ใช้ มากกว่าการปฏิบัติงานตามแผนที่ได้กาหนดไว้
แบบจาลองกระบวนการพัฒนาซอฟต์แวร์แบบเอจายล์ • • • • • •
แบบจาลอง Extreme Programming แบบจาลองการพัฒนาซอฟต์แวร์แบบปรับตัว แบบจาลองผลึก แบบจาลอง Agile Unified Process แบบจาลอง Microsoft Solutions Framework แบบจาลอง สครัม
แบบจาลอง Extreme Programming
• • • •
ใช้แนวความคิดของการออกแบบเชิงวัตถุ การทางานมี 4 ขันตอน การวางแผน การออกแบบ การเขียนโปรแกรม การทดสอบระบบ
ที่มา http://www.ques10.com
แบบจาลองการพัฒนาซอฟต์แวร์แบบปรับตัว Adaptive Software Development: ASD แบบจาลองที่ถูกคิดค้นโดย Jim Highsmith และ Sam Bayer ในปี ค.ศ. 2000 เหมาะกับโครงการซอฟต์แวร์ที่มี ความซับซ้อน มี 3 ขันตอน • การคาดคะเน • การร่วมมือ • การเรียนรู้ ที่มา http://www.ques10.com
แบบจาลองผลึก Crystal Model แบบจาลองที่ถูกคิดค้นโดย Alistair Cockburn และ Jim Highsmith ในปี ค.ศ.1990 เป็นระเบียบวิธีแบบเบา ลักษณะการทางานแบบวนซา ใช้ทรัพยากรอย่าง จากัด มีการสื่อสารระหว่างทีม มุ่งเน้น • คน • การปฏิสัมพันธ์ • สังคม • ทักษะ • ความสามารถพิเศษ • การสื่อสาร เป้าหมายหลัก ส่งมอบซอฟต์แวร์ให้ผู้ใช้ เกิดประโยชน์ เป้าหมายรอง การจัดเตรียมความพร้อม เพื่อใช้ในโครงการซอฟต์แวร์ถัดไป
แบบจาลองผลึก Crystal Model • เป้าหมายหลัก ส่งมอบซอฟต์แวร์ให้ผู้ใช้ เกิดประโยชน์ • เป้าหมายรอง การจัดเตรียมความพร้อม เพื่อใช้ในโครงการซอฟต์แวร์ ถัดไป
แบบจาลอง Agile Unified Process ถูกคิดค้นโดย Scott Ambler การประยุกต์แบบจาลอง RUP ให้มี แนวความคิดการพัฒนาซอฟต์แวร์แบบเอจายล์ มี 7 ขันตอน • การสร้างแบบจาลอง • การเขียนโปรแกรม • การทดสอบ • การนาไปใช้ • การจัดการโครงแบบ • การบริหารโครงการ • สภาพแวดล้อม
แบบจาลอง Microsoft Solutions Framework แบบจาลองคิดค้นโดย Microsoft ปี ค.ศ.1993 สนับสนุนการพัฒนา ซอฟต์แวร์และใช้ทีมงานขนาดเล็กจากหลายสาขา มี 6 บทบาท • การจัดการผลิตภัณฑ์ • การจัดการโปรแกรม • การพัฒนา • การทดสอบ • การส่งมอบ • ประสบการณ์ผู้ใช้
แบบจาลองกระบวนการ MSF คือ แบบจาลองที่มีลักษณะการทางานเหมือนกับแบบจาลองเวียนก้น หอย แบ่งเป็น 5 ขันตอน • การนึกคิด • การวางแผน • การพัฒนา • การสนับสนุน • การใช้งาน ที่มา https://technet.microsoft.com/en-us/library/bb497060.aspx
แบบจาลอง สครัม แบบจาลองที่พัฒนาโดย Jeff Sutherland ในปี ค.ศ. 1999 และพัฒนาต่อ โดย Ken Schwaber และ Mike Beedle ในปี ค.ศ.2001 แบบจาลองสครัมมี ลักษณะคล้ายกีฬารักบี • การทางานที่แต่ละคนต่างผลักดันซึ่งกันและกัน • สามารถนาไปปรับใช้ในการบริหารจัดการและควบคุมโครงการซอฟต์แวร์ • ทางานใกล้ชิดกับลูกค้า/ผู้ใช้ เพื่อเก็บรวบรวมความต้องการ • อยู่บนพืนฐานของการวนซา • การทางานเป็นช่วงประมาณ 2-4 สัปดาห์
แบบจาลองสครัม
ที่มา https://www.pinterest.com/pin/560276009863679342/
คาถามท้ายบท • การพัฒนาซอฟต์แวร์แบบเอจายล์คืออะไร มีความสาคัญอย่างไร • อธิบายแบบจาลอง ที่สนใจมาคนละ 1 แบบ • บอกข้อดีข้อเสียของแบบจาลองสครัม