มีทางเลือกอื่นที่สำคัญใน Waterfall and Agile หรือไม่? [ปิด]


35

ฉันอยากรู้อยากเห็นถ้าใครรู้วิธีการที่แตกต่างกันอย่างมีนัยสำคัญ (ไม่ใช่การรวมตัวกันอีกครั้ง) และฉันจะขอบคุณโดยเฉพาะอย่างยิ่งทุกคนที่นำประสบการณ์กับทางเลือกอื่น ๆ

คำตอบ:


47

Wikipedia แสดงรายการเหล่านี้เป็นวิธีการ / กระบวนการพัฒนา :

  • Agile - บนพื้นฐานของการพัฒนาแบบวนซ้ำและแบบเพิ่มขึ้นซึ่งความต้องการและโซลูชั่นมีวิวัฒนาการผ่านการทำงานร่วมกันระหว่างทีมที่จัดระเบียบตนเองและข้ามสายงาน

  • Cleanroom - จุดสำคัญของกระบวนการ Cleanroom คือการป้องกันข้อบกพร่องมากกว่าการกำจัดข้อบกพร่อง

  • ซ้ำ - กระบวนการพัฒนาซอฟต์แวร์แบบวนซ้ำที่พัฒนาขึ้นเพื่อตอบสนองต่อจุดอ่อนของโมเดลน้ำตก มันเริ่มต้นด้วยการวางแผนเริ่มต้นและจบลงด้วยการปรับใช้กับการโต้ตอบแบบวนรอบในระหว่างนั้น
    แผนภาพซ้ำ

  • RAD - ใช้การวางแผนขั้นต่ำเพื่อสนับสนุนการสร้างต้นแบบอย่างรวดเร็ว "การวางแผน" ของซอฟต์แวร์ที่ได้รับการพัฒนาโดยใช้ RAD นั้นถูกเขียนขึ้นด้วยการเขียนซอฟต์แวร์เอง

  • RUP - Rational Unified Process (RUP) เป็นเฟรมเวิร์กกระบวนการพัฒนาซอฟต์แวร์แบบวนซ้ำที่ปรับเปลี่ยนได้โดยมีจุดประสงค์เพื่อปรับแต่งโดยการเลือกองค์ประกอบของกระบวนการที่เหมาะสม

  • Spiral - การรวมองค์ประกอบต่าง ๆ ของทั้งการออกแบบและการสร้างต้นแบบเข้าด้วยกันในความพยายามที่จะรวมข้อดีของแนวคิดจากบนลงล่างและจากล่างขึ้นบน รูปแบบของการพัฒนานี้รวมคุณสมบัติของตัวแบบต้นแบบและตัวแบบน้ำตก
    แผนภาพรูปแบบเกลียว

  • Waterfall - ลำดับผ่านขั้นตอนของการปฏิสนธิการเริ่มต้นการวิเคราะห์การออกแบบการก่อสร้างการทดสอบและการบำรุงรักษา
    แผนภาพน้ำตก

  • Lean - คำแปลของหลักการผลิตและการผลิตแบบลีนและแนวทางการพัฒนาซอฟต์แวร์แบบลีนในโดเมนการพัฒนาซอฟต์แวร์ ทุกสิ่งที่ไม่เพิ่มมูลค่าให้กับลูกค้าถือเป็นของเสีย

  • รูปแบบ V - แทนที่จะเลื่อนลงในลักษณะเป็นเส้นตรงขั้นตอนกระบวนการจะโค้งงอขึ้นด้านหลังขั้นตอนการเข้ารหัสเพื่อสร้างรูปร่าง V ทั่วไป V-Model แสดงให้เห็นถึงความสัมพันธ์ระหว่างแต่ละช่วงของวงจรชีวิตการพัฒนาและขั้นตอนการทดสอบที่เกี่ยวข้อง
    แผนภาพ v-model

  • TDD - อาศัยการวนซ้ำของวงจรการพัฒนาที่สั้นมาก: ขั้นแรกผู้พัฒนาเขียนกรณีทดสอบอัตโนมัติที่ล้มเหลวซึ่งกำหนดการปรับปรุงที่ต้องการหรือฟังก์ชั่นใหม่จากนั้นสร้างรหัสเพื่อผ่านการทดสอบนั้นและในที่สุด refactors รหัสใหม่ให้เป็นมาตรฐานที่ยอมรับได้


ขอบคุณสำหรับคำตอบที่ชัดเจนและกระชับ ฉันเป็นโรงเรียนเก่าฉันไม่เคยได้ยินคำศัพท์มากมายที่ถูกส่งไปที่ P.SE
Michael Riley - AKA Gunny

7
รายการที่ยอดเยี่ยมยกเว้น TDD นั่นไม่ใช่วงจรชีวิต แต่เป็นแนวทางการพัฒนา
ไมเคิล

18

รหัสคาวบอย

การพัฒนารูปแบบที่ไม่มีโครงสร้างไม่มีการจัดการที่บริสุทธิ์ มันอาจมีประโยชน์สำหรับโครงการงานอดิเรกขนาดเล็กที่ไม่มีกำหนดเวลาหรือแม้กระทั่งเป้าหมายที่ชัดเจน แต่มีแนวโน้มว่าจะไม่สามารถทำงานในองค์กร


2
เย้! ปังปัง!
mlvljr

3
"มีแนวโน้มว่าจะไม่ทำงานในการตั้งค่าขององค์กร" บอกคุณ! ;)
Bobby Tables

+1 Aaa เยี่ยมเลย! ฉันทำมันบางครั้ง แต่ผมไม่ทราบวิธีการตั้งชื่อนี้ "ขั้นตอน" :)
Zzz

yeeee-haw padnah!
ybakos

ในการตั้งค่าองค์กรอย่างเป็นทางการผู้ใหญ่จริง อย่างไรก็ตามในธุรกิจขนาดเล็กอาจมีความคิด "เพิ่งทำเสร็จ"
JB King

4

รูปแบบเกลียว

แบบจำลองเกลียวเป็นกระบวนการพัฒนาซอฟต์แวร์ที่รวมองค์ประกอบของการออกแบบและการสร้างต้นแบบในแต่ละขั้นตอนเพื่อรวมข้อดีของแนวคิดจากบนลงล่างและจากล่างขึ้นบน หรือที่เรียกว่าแบบจำลองวงจรชีวิตเกลียว (หรือการพัฒนาแบบหมุนวน) มันเป็นวิธีการพัฒนาระบบ (SDM) ที่ใช้ในเทคโนโลยีสารสนเทศ (IT) รูปแบบของการพัฒนานี้รวมคุณสมบัติของตัวแบบต้นแบบและตัวแบบน้ำตก รุ่นเกลียวมีไว้สำหรับโครงการขนาดใหญ่ราคาแพงและซับซ้อน

- วิกิพีเดีย ข้อความแสดงแทน


1

วางแผน

นั่งลงกับลูกค้า (หรือผู้ใช้ปลายทาง) และออกแบบชุดกรณีการใช้งาน

ออกแบบ

จัดวางระบบบนกระดาษ / ไวท์บอร์ดบนเบียร์และพิซซ่าสองสามตัว เงียบเมื่อสิ่งที่ดูเหมือนลึงค์

ยืนยัน

ยืนยันการออกแบบกับไคลเอนต์ (หรือผู้ใช้ปลายทาง) และแช่แข็งข้อกำหนด

รหัส

อธิบายตนเอง


"ข้อกำหนดการแช่แข็ง" เป็นสิ่งที่พูดง่ายกว่าที่เคยทำมากที่สุด
Justin Schier

1

การโต้เถียงน้ำตกนี้มีมานานแล้วและใช้โดยผู้นำความคิดเปรียวก่อน พวกเขาพบกับ "ความจริง" ของน้ำตกด้วยเช่นกัน

เมื่อคุณเริ่มทำงานในโครงการพัฒนาซอฟต์แวร์คุณจะค้นพบได้อย่างรวดเร็วว่าวิธีการพัฒนาที่ใช้จะมีส่วนสำคัญในการเล่นความเร็วและคุณภาพของรหัสที่พัฒนาขึ้นเนื่องจาก Agile methodology มีการใช้กันอย่างแพร่หลายเป็นสิ่งสำคัญที่คุณต้องเข้าใจข้อดี และข้อเสียของความคล่องตัวเพื่อให้คุณสามารถตรวจสอบได้ว่ามันเหมาะสมที่สุดสำหรับการส่งมอบโครงการของคุณ

การพัฒนาซอฟต์แวร์ Agile เป็นกรอบแนวคิดสำหรับการดำเนินโครงการวิศวกรรมซอฟต์แวร์วิธีการที่คล่องตัวที่สุดพยายามลดความเสี่ยงโดยการพัฒนาซอฟต์แวร์ในช่วงเวลาสั้น ๆ ที่เรียกว่าการทำซ้ำซึ่งโดยทั่วไปแล้วจะใช้เวลาหนึ่งถึงสี่สัปดาห์ การวนซ้ำแต่ละครั้งเป็นเหมือนโครงการซอฟต์แวร์ขนาดเล็กของตนเองและรวมถึงงานทั้งหมดที่จำเป็นในการเพิ่มฟังก์ชั่นการทำงานใหม่ ๆ มากมาย: การวางแผนการวิเคราะห์ความต้องการการออกแบบการเข้ารหัสการทดสอบและเอกสาร

เป็นกระบวนการที่ดีสำหรับ บริษัท เพราะรวมลูกค้าไว้ในกระบวนการพัฒนาและทำให้รับผิดชอบต่อการส่งมอบผลิตภัณฑ์ ในอีกด้านลูกค้ามีความสุขเพราะพวกเขาพบว่าตนเองมีส่วนร่วมในการพัฒนาผลิตภัณฑ์

Demerits สำหรับเปรียว:

  • Agile นั้นโปรแกรมเมอร์เป็นศูนย์กลางเกินไปทำให้มันไม่ชัดเจนว่าจะสร้างสมดุลระหว่างงานกับองค์กรได้อย่างไร
  • ถ้าคุณไม่รู้ว่าคุณกำลังจะไปไหนเปรียวจะไม่ไปที่นั่น!
  • การสร้างกรอบโดยไม่ต้องการความชัดเจน
  • คุณลักษณะของภาษามากเกินไป (ไม่เหมาะสม)
  • ไม่มีความคิดทดสอบครั้งแรก

สำหรับวิธีการที่น่าสนใจซึ่งอาจใช้เป็นทางเลือกสำหรับ AGILE อาจดูได้ดีที่สุดภายใต้ลิงก์ทั้งสามนี้:

Kanban เป็นการดำเนินการทางเลือกที่คล่องตัว

การพัฒนาซอฟต์แวร์ Kanban

การพัฒนาซอฟต์แวร์แบบลีนบนคลาวด์


3
ถ้าคุณไม่รู้ว่าคุณกำลังจะไปเที่ยวน้ำตกจะไม่ไปที่นั่น!
Eric Wilson
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.