ความเป็นมาของ Agile Method.
การพัฒนาซอฟต์แวร์โดยวิธี Agile ถูกคิดค้นขึ้นมาเมื่อประมาณกลางปี ค.ศ. 1990 เพื่อแก้ปัญหาการพัฒนาระบบที่ความต้องการมีการเปลี่ยนแปลงค่อนข้างบ่อย มีความยุ่งยากในการจัดการ การพัฒนาซอฟต์แวร์โดยวิธี Agile สามารถย้อนกลับไปแก้ไขงานในส่วนที่ยังไม่สมบูรณ์ได้ วิธี Agile ได้รับการปรับปรุงอย่างต่อเนื่อง จนกระทั่งปี ค.ศ. 2001 ทีมงานที่พัฒนาได้ตั้งชื่อเต็มเป็น “Agile Method” หลังจากนั้นได้มีองค์กรที่ไม่หวังผลกำไรช่วยกันสนับสนุนวิธีการนี้ ซึ่งองค์กรดังกล่าวมีข้อมูลที่เว็บไซต์ http://www.agilealliance.com เพื่อสนับสนุนการพัฒนาซอฟท์แวร์โดยใช้วิธี Agile method
Agile model เป็นโมเดลที่ออกแบบให้มีความรวดเร็ว ยืดหยุ่น พร้อมที่จะรับกับความเปลี่ยนแปลง เพื่อลดความเสียงในการพัฒนาซอฟต์แวร์ โดยการแบ่งการพัฒนาออกเป็น iteration โดยแบ่งเวลาออกเป็นช่วง ๆ แต่ละช่วงยาวนานไม่มากนัก ไม่เกิน 1 เดือน หรือ 4 สัปดาห์ การพัฒนาจะดำเนินการอย่างต่อเนื่อง ถึงแม้ว่ามีอะไรมากระทบก็ไม่สนใจ เมื่อเกิดความเปลี่ยนแปลงก็จะพัฒนาให้สามารถรองรับกับความเปลี่ยนแปลงนั้น ได้ อย่างไม่มีข้อจำกัดตายตัว
ในการพัฒนาจะเน้นการพูดคุยกันในทีมงานและผู้ใช้มากกว่าเน้น process หรือ tools การทำงานจะยึดที่ผลผลิตหรือตัวซอฟต์แวร์เป็นหลัก ไม่ค่อยเน้นการจัดทำเอกสาร เน้นที่ความสัมพันธ์ของทีมงานและการสื่อสารเป็นหลัก เพื่อให้ได้ความต้องการมาครบถ้วนและพร้อมที่จะยอมรับความเปลี่ยนแปลงเพิ่ม เติมของความต้องการ
หัวใจของ Agile model ได้แก่ เน้นความพึงพอใจของลูกค้า โดยการส่งมอบซอฟต์แวร์ให้ลูกค้าอย่างต่อเนื่องทุก 2 สัปดาห์ ยินดียอมรับความต้องการที่เปลี่ยนแปลงเสมอ ทีมพัฒนาระบบจะดำเนินโครงการที่เว็บไซต์ของลูกค้ามีการพบหน้ากันทุกวันจนกว่า โครงการจะเสร็จ มีการประชุมพบหน้ากันสม่ำเสมอ ทีมงานมีอำนาจในการตัดสินใจเต็มที่ วัดความก้าวหน้าของงานกันที่ตัวซอฟต์แวร์ การทำงานใช้กระบวนการที่ไม่หวือหวา เน้นความคุณภาพชีวิตของทีมงาน มีเทคนิคต่าง ๆ ก็นำมาแลกเปลี่ยนกัน เน้นเทคนิคการออกแบบที่ง่าย ไม่ซับซ้อน ทำให้บำรุงรักษาปรับเปลี่ยนระบบได้ง่าย
Agile
โดยมากจะเป็นการพยายามลดความเสี่ยง โดยพัฒนาซอฟแวร์ในรูปแบบของ timebox
สั้นๆ เรียกว่า iteration
ตั้งแต่ 1
ถึง 4
สัปดาห์ แต่ละ iteration
เปรียบเสมือน software project
ของมันเองซึ่งประกอบไปด้วย task
ต่างๆที่จำเป็นให้เสร็จงาน ซึ่งอาจจะประกอบไปด้วยการ planning, requirements analysis, design, coding, testing,
และการทำเอกสารagile software project
พยายามที่จะ release
ซอฟแวร์ออกมาทุกๆ iteration
และเมื่อจบแต่ละ iteration
จะมีการประเมินผลด้วยการทำงานแบบ agile
จะนิยมการติดต่อสื่อสารแบบ Realtime
คือการคุยกันน่าต่อน่า แทนที่จะเป็นการเขียนเอกสาร โดยทีมงานจะทำงานร่วมกันภายใต้ bullpen
ซึ่งประกอบไปด้วยคนที่เกี่ยวข้องกับการทำซอฟแวร์ให้เสร็จ อย่างน้อยได้แก่ programmer
และ customer (product manager, business analysts, actual customer)
หรืออาจจะรวมถึง tester, interaction designers, technical writers, manager
ด้วยมีการเขียนเอกสารเฉพาะเท่าที่จำเป็นเพื่อให้สามารถติดต่อประสานงานได้ สรุปเป็นการแบ่ง pharse software
โดยทำให้เสร็จทีละ pharse
ไป และแต่ละ pharse
ก็เปรียบเสมือน project
ย่อยๆ ที่มี task
ภายในให้ project
สำเร็จอันได้แก่ การวางแผนงาน การวิเคราะห์ความต้องการ การออกแบบระบบ การพัฒนาระบบ การตรวจสอบ และการทำเอกสาร แต่ละ pharse
จะมี function
งานใหม่ๆออกมา