CodeGym /หลักสูตรจาวา /โมดูล 3 /วิธีการพัฒนา Agile - Agile

วิธีการพัฒนา Agile - Agile

โมดูล 3
ระดับ , บทเรียน
มีอยู่

โมเดลเปรียว

วิธีการที่ยืดหยุ่น (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 จะควบคุมกฎสำหรับการจัดการกระบวนการพัฒนาและอนุญาตให้คุณใช้แนวทางปฏิบัติในการเขียนโค้ดที่มีอยู่โดยมีความเป็นไปได้ในการปรับเงื่อนไขหรือทำการเปลี่ยนแปลง การใช้วิธีนี้ช่วยให้คุณเห็นและขจัดความเบี่ยงเบนจากผลลัพธ์ที่คาดหวังในช่วงแรกของการพัฒนา

ลองมาดูรายละเอียดเพิ่มเติมเล็กน้อย ...

ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION