การพัฒนาซอฟต์แวร์แบบเอจายล์
ลิงก์ข้ามภาษาในบทความนี้ มีไว้ให้ผู้อ่านและผู้ร่วมแก้ไขบทความศึกษาเพิ่มเติมโดยสะดวก เนื่องจากวิกิพีเดียภาษาไทยยังไม่มีบทความดังกล่าว กระนั้น ควรรีบสร้างเป็นบทความโดยเร็วที่สุด |
การพัฒนาซอฟต์แวร์แบบเอจายล์ (อังกฤษ: Agile software development) ประกอบด้วยวิธีการต่าง ๆ ในการพัฒนาซอฟต์แวร์ ภายใต้ข้อกำหนดและแนวทางการพัฒนาที่ทีมทำการพัฒนาและร่วมกัน โดยเป็นความร่วมมือภายในทีม ระหว่างทีมแบบข้ามสายงาน และ เป็นการพัฒนาร่วมกับลูกค้า/ผู้ใช้งานปลายทาง[1] เอจายล์เน้นการวางแผนแบบประยุกต์ (Adaptive planning), การพัฒนาแบบก้าวกระโดด (Evolutionary development), การส่งมอบก่อนกำหนด (Early delivery) และ การปรับปรุงอย่างต่อเนื่อง (Continual improvement) โดยสนับสนุนการตอบสนองแบบรวดเร็วและยืดหยุ่นต่อความเปลี่ยนแปลง
คำว่า Agile ได้รับความนิยมจากถ้อยคำแถลง ในปี ค.ศ.2001 ชื่อ คำแถลงอุดมการณ์แห่งอไจล์ (Manifesto for Agile Software Development)[2] โดย Beck, Kent และคณะ ซึ่งหลักการและค่านิยมต่าง ๆ ที่อยู่ในคำแถลงดังกล่าวมีที่มาจากขอบเขตการพัฒนาซอฟต์แวร์ (Software development framwork) ที่หลากหลาย อาทิ Scrum[3] และ Kanban[4]
ความสำคัญของเอจายล์
[แก้]กระบวนการทำงานแบบเอจายล์จะช่วยให้ทำงานได้เร็วขึ้น ลดการทำงานที่เป็นขั้นตอนและงานด้านเอกสาร มุ่งเน้นเรื่องการสื่อสารกันในทีมให้มากขึ้น ร่วมกันพัฒนาผลิตภัณฑ์ให้เร็วขึ้น แล้วนำผลิตภัณฑ์มาทดสอบ และเก็บผลตอบรับ (Feedback) เพื่อกลับไปแก้ไขปรับปรุง ซึ่งจะทำให้สามารถพัฒนาผลิตภัณฑ์ได้รวดเร็วและตอบโจทย์ผู้ใช้งานมากขึ้น[5]
คำแถลงอุดมการณ์แห่งอไจล์
[แก้]ค่านิยมการพัฒนาซอฟต์แวร์แบบเอจายล์
[แก้]จากประสบการณ์ร่วมกันของผู้ร่วมลงนาม 17 คนในคำแถลงอุดมการณ์แห่งอไจล์ ในการพัฒนาซอฟต์แวร์และการช่วยเหลือผู้อื่นพัฒนาซอฟต์แวร์ ผู้ลงนามในสิบเจ็ดคนในแถลงการณ์ประกาศว่าพวกเขาให้ความสำคัญ 4 ประการในการพัฒนาซอฟต์แวร์:[2]
- คนและการมีปฏิสัมพันธ์กัน มากกว่าการทำตามขั้นตอนและเครื่องมือ
- ซอฟต์แวร์ที่นำไปใช้งานได้จริง มากกว่าเอกสารที่ครบถ้วนสมบูรณ์
- ร่วมมือทำงานกับลูกค้า มากกว่าการต่อรองให้เป็นไปตามสัญญา
- การตอบรับกับการเปลี่ยนแปลง มากกว่าการทำตามแผนที่วางไว้
อธิบายคือ พวกเขาให้ความสำคัญกับทั้งสองอย่าง ใแต่ว่าให้ความสำคัญสิ่งที่เขียนอยู่ด้านซ้าย มากกว่าสิ่งที่เขียนอยู่ด้านขวา
ผู้ลงนามบางคนได้จัดตั้ง พันธมิตร Agile Alliance ซึ่งเป็นองค์กรไม่แสวงหาผลกำไรที่ส่งเสริมการพัฒนาซอฟต์แวร์ตามคุณค่าและหลักการของแถลงการณ์
หลักการเบื้องหลังคำแถลงอุดมการณ์แห่งอไจล์
[แก้]คำแถลงอุดมการณ์แห่งอไจล์มีรากฐานจากหลักการ 12 ข้อ ตามที่กล่าวในคำแถลงการ ประกอบด้วย:[6]
- ความสำคัญสูงสุดของพวกเราคือความพึงพอใจของลูกค้าที่มีต่อการส่งมอบซอฟต์แวร์ที่มีคุณค่าต่อลูกค้า ตั้งแต่ต้นอย่างต่อเนื่อง
- ยอมรับการเปลี่ยนแปลงความต้องการของลูกค้าแม้ในช่วงท้ายของการพัฒนาเพราะอไจล์สามารถแปรเอาความเปลี่ยนแปลง มาเป็นความได้เปรียบในการแข่งขันของลูกค้า
- ส่งมอบซอฟต์แวร์ที่ใช้งานได้จริงอย่างสม่ำเสมออาจเป็นทุกสองถึงสามสัปดาห์หรือทุกสองถึงสามเดือนโดยควรทำให้ระยะเวลาระหว่างการส่งมอบนั้นสั้นที่สุดเท่าที่เป็นไปได้
- ตัวแทนจากฝ่ายธุรกิจและนักพัฒนาจะต้องทำงานร่วมกันเป็นประจำทุกวันตลอดโครงการ
- ทำให้แน่ใจว่าสมาชิกโครงการเข้าใจและมีจุดมุ่งหมายของโครงการร่วมกันสร้างสภาวะแวดล้อมและให้การสนับสนุนในสิ่งที่พวกเขาต้องการและให้ความไว้วางใจแก่พวกเขาในการที่จะทำงานให้บรรลุเป้าหมายนั้น
- วิธีที่มีประสิทธิภาพและประสิทธิผลสูงสุดในการถ่ายทอดข้อมูลต่างๆไปสู่ทีมพัฒนาและภายในทีมพัฒนาเองคือการพูดคุยแบบซึ่งหน้า
- ซอฟต์แวร์ที่ใช้งานได้จริงเป็นตัวหลักในการวัดความก้าวหน้าของโครงการ
- กระบวนการอไจล์สนับสนุนให้เกิดการพัฒนาแบบยั่งยืน กล่าวคือผู้สนับสนุนนักพัฒนา และตัวแทนผู้ใช้ ควรจะสามารถรักษาอัตราเร็วในการทำงานร่วมกันให้คงที่ได้ตลอดไป
- การใส่ใจในความเป็นเลิศทางเทคนิคและงานออกแบบที่ดีอย่างต่อเนื่องจะช่วยเพิ่มความเป็นอไจล์
- ความเรียบง่าย หรือศิลปะในการทำงานอย่างพอเพียง นั้นสำคัญยิ่ง
- สถาปัตยกรรมซอฟต์แวร์ ความต้องการของลูกค้า และงานออกแบบที่ดีที่สุด เกิดจากทีมที่บริหารจัดการตัวเองได้
- ทุกช่วงเวลาหนึ่งเป็นประจำ ทีมจะต้องย้อนกลับไปตรองดูสิ่งที่ผ่านมา เพื่อหาทางที่จะพัฒนาความมีประสิทธิผลของทีม แล้วนำสิ่งเหล่านั้นมาปรับปรุงและเปลี่ยนแปลงพฤติกรรมของทีม
อ้างอิง
[แก้]- ↑ Collier, Ken W. (2011). Agile Analytics: A Value-Driven Approach to Business Intelligence and Data Warehousing. Pearson Education. pp. 121 ff. ISBN 9780321669544.
What is a self-organizing team?
- ↑ 2.0 2.1 Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick (2001). "คำแถลงอุดมการณ์แห่งอไจล์". Agile Alliance. สืบค้นเมื่อ 16 พฤษภาคม พ.ศ. 2020
- ↑ Schwaber, Ken; Sutherland, Jeff (November2017), The Scrum Guide: The Definitive Guide to Scrum: The Rules of the Game (PDF), สืบค้น 16 พฤษภาคม ค.ศ.2020
- ↑ Corey, Ladas (2008). Scrumban and other essays on Kanban System for Lean Software develoment. Seattle, Washington: Modus Cooperandi Press. ISBN 9780578002149. OCLC 654393465.
- ↑ "What is Agile Software Development?". Agile Alliance. 8 June 2013. Retrieved 4 April 2015.
- ↑ Kent Beck; James Grenning; Robert C. Martin; Mike Beedle; Jim Highsmith; Steve Mellor; Arie van Bennekum; Andrew Hunt; Ken Schwaber; Alistair Cockburn; Ron Jeffries; Jeff Sutherland; Ward Cunningham; Jon Kern; Dave Thomas; Martin Fowler; Brian Marick (2001). "หลักการเบื้องหลังคำแถลงอุดมการณ์แห่งอไจล์". Agile Alliance. สืบค้นเมื่อ 16 พฤษภาคม พ.ศ. 2563