โมเดลเปรียว
วิธีการที่ยืดหยุ่น (Agile) ช่วยลดความเสี่ยงในการพัฒนาซอฟต์แวร์โดยการย้ายเวิร์กโฟลว์เป็นวงจรเล็กๆ หลายๆ รอบ วัฏจักรเหล่านี้เรียกว่าการวนซ้ำและโดยทั่วไปจะใช้เวลาสองถึงสามสัปดาห์
การวนซ้ำเป็นเหมือนโครงการซอฟต์แวร์ขนาดเล็กที่ประกอบด้วยงาน ซึ่งแต่ละงานจะปรับปรุงฟังก์ชันการทำงาน ซึ่งรวมถึง: การร่างแผน การประเมินข้อกำหนด การตกลงในโครงการ การเขียนโค้ด การทดสอบ และการสร้างเอกสารทางเทคนิค
การทำซ้ำหนึ่งครั้งมักไม่เพียงพอสำหรับการเปิดตัวซอฟต์แวร์เต็มรูปแบบ อย่างไรก็ตาม ข้อดีของ Agile คือส่วนเล็กๆ ของโครงการพร้อมสำหรับการประเมินเมื่อสิ้นสุดการทำซ้ำแต่ละครั้ง สิ่งนี้ทำให้สมาชิกในทีมสามารถเปลี่ยนลำดับความสำคัญสำหรับการทำงานต่อไปโดยไม่ต้องรอการเปิดตัวขั้นสุดท้าย
ใช้วิธีการพัฒนาแบบ "คล่องตัว" คุณจะเห็นผลลัพธ์ที่เป็นรูปธรรมหลังจากการทำซ้ำแต่ละครั้ง นั่นคือผู้พัฒนาสามารถเข้าใจได้ว่าผลงานของเขาตรงตามความต้องการหรือไม่ นี่เป็นหนึ่งในข้อได้เปรียบที่สำคัญของโมเดลที่ยืดหยุ่น
สำหรับข้อเสีย เมื่อใช้ Agile บางครั้งเป็นการยากที่จะประเมินต้นทุนทรัพยากรแรงงานและงบประมาณของโครงการ หากเราใช้ตัวเลือกสำหรับการใช้งานจริงของโมเดลที่ยืดหยุ่น สิ่งที่โด่งดังที่สุดคือ Extreme Programming (XP)
XP ขึ้นอยู่กับการประชุมสั้น ๆ ของสมาชิกในทีมที่เกิดขึ้นทุกวัน และการประชุมปกติ (สัปดาห์ละครั้งหรือน้อยกว่า) ในการชุมนุมรายวัน (การยืนหยัดประจำวัน) มักจะกล่าวถึง:
- ผลงานปัจจุบัน
- รายการงานที่ต้องทำโดยสมาชิกในทีมแต่ละคน
- ปัญหาที่พบและวิธีการแก้ไข
ประกาศ
Agile เป็นทิศทางทั้งหมดในการพัฒนา ดังนั้นกฎสำหรับการทำงานจึงประกาศไว้ในเอกสารพิเศษ - Agile Manifesto ซึ่งรวมถึงแนวปฏิบัติและหลักการที่ทีมควรทำงาน
Agile Manifesto ประกอบด้วยแนวคิดพื้นฐาน 4 ข้อและหลักการ 12 ข้อ
แนวคิดหลัก:
- การทำงานร่วมกันระหว่างนักพัฒนามีความสำคัญมากกว่าเครื่องมือ
- เวอร์ชันที่ใช้งานได้ของผลิตภัณฑ์มีความสำคัญเหนือเอกสารประกอบ
- ความเข้าใจร่วมกันระหว่างทีมและลูกค้ามีความสำคัญมากกว่าเงื่อนไขของสัญญา
- แผนเดิมสามารถเปลี่ยนแปลงได้เสมอหากจำเป็น
สำหรับหลักการ 12 ประการของ Agile มีดังนี้
- ลำดับความสำคัญหลักคือการปฏิบัติตามโปรแกรมสำเร็จรูปกับความคาดหวังของลูกค้า
- อนุญาตให้เปลี่ยนแปลงเงื่อนไขได้ในทุกขั้นตอน แม้แต่ในขั้นตอนสุดท้ายของการพัฒนา (หากสิ่งนี้สามารถปรับปรุงคุณภาพและความสามารถในการแข่งขันของซอฟต์แวร์)
- การส่งมอบผลิตภัณฑ์ซอฟต์แวร์เวอร์ชันการทำงานเป็นประจำ (ทุก 14 วัน ทุกเดือนหรือทุกไตรมาส)
- กุญแจสู่ความสำเร็จคือการมีปฏิสัมพันธ์อย่างสม่ำเสมอระหว่างลูกค้าและนักพัฒนา (ควรเป็นรายวัน)
- ควรสร้างโครงการในหมู่ผู้ที่สนใจพวกเขา คนเหล่านี้ควรได้รับเงื่อนไขที่จำเป็นสำหรับการทำงานและการสนับสนุนทุกประเภท
- วิธีที่ดีที่สุดในการแบ่งปันข้อมูลในทีมคือการประชุมส่วนตัว
- เวอร์ชันที่ใช้งานได้ของซอฟต์แวร์เป็นตัวบ่งชี้ความคืบหน้าที่ดีที่สุด
- ผู้มีส่วนได้ส่วนเสียทั้งหมดต้องสามารถรักษาระดับการทำงานที่ต้องการได้ตลอดกระบวนการพัฒนาซอฟต์แวร์
- การปรับปรุงด้านเทคนิคและการออกแบบที่ดีช่วยเพิ่มความยืดหยุ่น
- สิ่งสำคัญคือต้องทำให้มันเรียบง่ายและไม่สร้างสรรค์มากเกินไป
- ผลลัพธ์ที่ดีที่สุดจะได้รับจากทีมที่สามารถจัดระเบียบตนเองได้
- สมาชิกในทีมควรคิดถึงวิธีการปรับปรุงประสิทธิภาพอย่างสม่ำเสมอโดยการเปลี่ยนขั้นตอนการทำงาน
ตามแถลงการณ์ของ Agile กระบวนการพัฒนาซอฟต์แวร์ที่ดีขึ้นอยู่กับบุคคลที่มีส่วนร่วมในกระบวนการนี้โดยตรง ในการทำเช่นนี้ คุณต้องจัดระเบียบปฏิสัมพันธ์ให้มีประสิทธิภาพมากที่สุด สร้างทีมที่มีระเบียบมากที่สุด
วิธีการ
นอกจากนี้ยังมีวิธีการหลายอย่างใน Agile Manifesto ที่อธิบายคุณค่าและหลักการ:
- การสร้างแบบจำลองเปรียว;
- กระบวนการ Agile Unified;
- วิธีข้อมูลที่เปรียว
- การพัฒนาแอปพลิเคชันอย่างรวดเร็ว (DSDM);
- กระบวนการแบบครบวงจรที่สำคัญ
- การเขียนโปรแกรมที่รุนแรง
- การพัฒนาที่ขับเคลื่อนด้วยคุณลักษณะ
- รับจริง;
- เปิดออก;
- การต่อสู้
Agile Modeling คือชุดของหลักการ ข้อกำหนด และแนวทางปฏิบัติที่เพิ่มความเร็วและลดความซับซ้อนในการพัฒนาแบบจำลองซอฟต์แวร์และเอกสารประกอบ
เป้าหมายของ Agile Modeling คือการปรับปรุงการสร้างแบบจำลองและการจัดทำเอกสาร โปรดทราบว่าสิ่งนี้ไม่รวมถึงการเข้ารหัส การทดสอบ หรือปัญหาที่เกี่ยวข้องกับการควบคุมโครงการ การปรับใช้ และการสนับสนุน อย่างไรก็ตาม วิธีการนี้รวมถึงการทบทวนโค้ด
Agile Unified Process เป็นวิธีการที่ทำให้ผู้ใช้สามารถประมาณ (แบบจำลอง) ได้ง่าย มักใช้ในการพัฒนาซอฟต์แวร์เชิงพาณิชย์
วิธีการข้อมูลแบบเปรียว - วิธีการที่คล้ายกันหลายวิธีซึ่งบรรลุเงื่อนไขของลูกค้าผ่านความร่วมมือของหลายทีม
DSDM - แนวทางนี้แตกต่างจากวิธีอื่นตรงที่ผู้ใช้ผลิตภัณฑ์ในอนาคตมีส่วนร่วมกับนักพัฒนาพร้อมกับนักพัฒนา
การพัฒนาที่ขับเคลื่อนด้วยคุณลักษณะเป็นวิธีการพัฒนาที่มีกำหนดเวลา: "คุณลักษณะแต่ละอย่างจะต้องดำเนินการไม่เกินสองสัปดาห์"
ควรพิจารณาว่าหากกรณีการใช้งานมีขนาดเล็กก็ถือเป็นคุณสมบัติได้ หากมีความสำคัญก็ต้องแบ่งออกเป็นหลายหน้าที่
การได้ของจริงเป็นวิธีการวนซ้ำซึ่งอินเทอร์เฟซของโปรแกรมได้รับการพัฒนาก่อน แล้วจึงพัฒนาฟังก์ชันการทำงานเท่านั้น
OpenUP เป็นวิธีการพัฒนาที่แบ่งวงจรโครงการออกเป็นสี่ขั้นตอน ได้แก่ การเริ่มต้น การปรับแต่ง การก่อสร้าง และการส่งมอบ
ตามหลักการของ Agile โดยไม่คำนึงถึงระยะเวลาของงาน จำเป็นต้องให้ผู้มีส่วนได้เสียทั้งหมดและสมาชิกในทีมมีวิธีการทำความคุ้นเคยและตัดสินใจ ด้วยเหตุนี้จึงสามารถควบคุมสถานการณ์ได้อย่างมีประสิทธิภาพและประเมินผลลัพธ์ขั้นกลางได้ทันเวลา แผนโครงการกำหนดวงจรชีวิตและผลลัพธ์สุดท้ายควรได้รับการพิจารณาว่าเป็นแอปพลิเคชันที่เสถียร
สำหรับ Scrum จะควบคุมกฎสำหรับการจัดการกระบวนการพัฒนาและอนุญาตให้คุณใช้แนวทางปฏิบัติในการเขียนโค้ดที่มีอยู่โดยมีความเป็นไปได้ในการปรับเงื่อนไขหรือทำการเปลี่ยนแปลง การใช้วิธีนี้ช่วยให้คุณเห็นและขจัดความเบี่ยงเบนจากผลลัพธ์ที่คาดหวังในช่วงแรกของการพัฒนา
ลองมาดูรายละเอียดเพิ่มเติมเล็กน้อย ...
GO TO FULL VERSION