แบบจำลองวัฏจักรการพัฒนาซอฟต์แวร์: การเลือกวิธีการทำสิ่งต่างๆ ให้สำเร็จ
เผยแพร่แล้ว: 2021-10-05ปรัชญา "วางแผนงานของคุณและดำเนินการตามแผนของคุณ" ได้พิสูจน์ประสิทธิภาพมาแล้วหลายครั้งในประวัติศาสตร์ การวางแผนที่เหมาะสมเป็นตัวกำหนดความสำเร็จของความคิดริเริ่มที่จริงจัง รวมถึงการพัฒนาซอฟต์แวร์ อุตสาหกรรมการพัฒนาซอฟต์แวร์มีแนวทางหลายวิธีในการตอบสนองความต้องการทางธุรกิจ
วัฏจักรการพัฒนาซอฟต์แวร์หรือ SDLC กำหนดวิธีที่ผลิตภัณฑ์มีชีวิตและบำรุงรักษา ช่วยให้คุณเปลี่ยนความคิดสร้างสรรค์และความต้องการของตลาดเป็นฟังก์ชันและคุณสมบัติของผลิตภัณฑ์
โดยสังเขป โมเดลวงจรชีวิตการพัฒนาซอฟต์แวร์เป็นวิธีหนึ่งในการทำสิ่งต่างๆ ให้สำเร็จในแง่ของการพัฒนาผลิตภัณฑ์และเปลี่ยนให้เป็นธุรกิจ
เนื้อหา:
- รุ่น SDLC
- แบบน้ำตก
- โมเดลรูปตัววี
- บิ๊กแบงโมเดล
- โมเดลต้นแบบ
- แบบวนซ้ำและแบบส่วนเพิ่ม
- รุ่น RAD
- รูปแบบการพัฒนาเกลียว
- โมเดลเปรียว
รุ่น SDLC
ขึ้นอยู่กับตลาด บริบทโครงการ และข้อกำหนดทางธุรกิจของคุณ คุณสามารถเลือกรูปแบบวงจรชีวิตการพัฒนาซอฟต์แวร์ที่สร้างขึ้นหรือสร้างของคุณเองได้
แบบน้ำตก
รูปแบบ SDLC แรกในประวัติศาสตร์ของการพัฒนาซอฟต์แวร์ Waterfall เป็นโมเดลที่ง่ายที่สุด ในแบบจำลองน้ำตก กระบวนการพัฒนาเป็นแบบเชิงเส้น งานและขั้นตอนจะเสร็จสมบูรณ์ทีละอย่างในลำดับที่เข้มงวด คืบหน้าลงเรื่อย ๆ เหมือนน้ำเหนือน้ำตก
ขั้นตอนดั้งเดิมในแบบจำลองน้ำตกคือ:
- การรวบรวมความต้องการ
- ออกแบบ
- การดำเนินการ
- การบูรณาการและการทดสอบ
- การปรับใช้
- การซ่อมบำรุง
แบบจำลอง Waterfall ไม่อนุญาตให้ย้อนกลับไปยังขั้นตอนก่อนหน้าของการพัฒนาเพื่อแก้ไขสิ่งต่าง ๆ หรือดำเนินการเปลี่ยนแปลง สามารถทำได้ในการวนซ้ำของ Waterfall ถัดไปเท่านั้น
ข้อดี:
- อธิบายให้ลูกค้าเข้าใจได้ง่ายและเข้าใจง่ายสำหรับทีมงาน
- โครงสร้างที่ชัดเจนพร้อมขั้นตอนและกิจกรรมที่ชัดเจน
- วางแผนและกำหนดเวลาได้ง่ายด้วยเหตุการณ์สำคัญที่ชัดเจน
- เสร็จสิ้นทีละขั้น
- ข้อผิดพลาดและความไม่สะดวกสามารถตรวจสอบได้ง่ายในแต่ละขั้นตอน
- ทุกขั้นตอนวิเคราะห์และประเมินได้ง่าย
- กระบวนการที่จัดทำเป็นเอกสารอย่างดี
ข้อเสีย:
- ใช้งานได้กับข้อกำหนดที่ไม่ยืดหยุ่นเท่านั้น
- ไม่สามารถกลับสู่ขั้นตอนที่เสร็จสิ้นได้
- ปรับยาก
- ต้นทุนการพัฒนามักจะสูง
- มีความเสี่ยงสูงต่อข้อผิดพลาดและความไม่สะดวกอื่นๆ
- ยากที่จะวัดความคืบหน้าในระหว่างขั้นตอน
ดีที่สุดสำหรับโครงการที่มี:
- ข้อกำหนดที่มั่นคงและไม่คลุมเครือ
- คำจำกัดความและวิสัยทัศน์ที่ชัดเจนของผลิตภัณฑ์
- เทคโนโลยีที่เป็นที่รู้จักและกองเทคโนโลยีที่เสถียร
- ทรัพยากรเพียงพอสำหรับการนำไปใช้และการสนับสนุน
- กรอบเวลาอันสั้น
โมเดลรูปตัววี
โมเดล V หรือที่ เรียกว่า V-Model หรือ Verification and Validation model โมเดล V-Shaped เป็นส่วนขยายของแนวทาง Waterfall SDLC ด้วย V-Model ความคืบหน้าไม่เคลื่อนที่เป็นเส้นตรง แต่จะสูงขึ้นหลังจากใช้งานและเขียนโค้ด
การวางแผนการทดสอบเบื้องต้น เป็นเรื่องปกติสำหรับโปรเจ็กต์ V-Model SDLC ซึ่งเป็นข้อแตกต่างที่สำคัญเมื่อเทียบกับโมเดล Waterfall ทุกขั้นตอนการพัฒนามีขั้นตอนการทดสอบแบบคู่ขนาน ซึ่งช่วยในการตรวจสอบและตรวจสอบทุกขั้นตอนก่อนที่จะดำเนินการต่อไป
ข้อดี:
- ใช้งานง่ายและอธิบาย
- ผลงานชัดเจนทุกขั้นตอน หมายถึง มีวินัยมากขึ้น
- ผลลัพธ์ที่ดีกว่าในรุ่น Waterfall เนื่องจากการทดสอบในช่วงต้น
- การตรวจสอบที่ชัดเจนและการตรวจสอบในทุกขั้นตอน
- ติดตามข้อบกพร่องได้อย่างราบรื่นเนื่องจากพบข้อบกพร่องในระยะแรก
- ติดตามความคืบหน้าได้ง่ายขึ้นอย่างน้อยเมื่อเทียบกับรุ่นน้ำตก
ข้อเสีย:
- มีความยืดหยุ่นต่ำและไม่รองรับการทำซ้ำ
- ยากและเสียค่าใช้จ่ายในการปรับเปลี่ยนเนื่องจากไม่มีเหตุการณ์คู่ขนานกัน
- ความเสี่ยงทางธุรกิจและการพัฒนาสูง
- ไม่มีต้นแบบในช่วงต้น
- ไม่พบวิธีแก้ไขปัญหาที่ชัดเจนระหว่างการทดสอบ
เฟสของโปรเจ็กต์ใน V-Model นั้นเหมือนกับใน Waterfall แต่ด้วยการตรวจสอบและ รับรองความถูกต้องสำหรับแต่ละเฟสผ่านการทดสอบ ดังนั้น V-Model จึงเหมาะสำหรับโครงการประเภทเดียวกับ Waterfall
บิ๊กแบงโมเดล
โมเดลวงจรชีวิตการพัฒนาซอฟต์แวร์นี้มักไม่ปฏิบัติตามกระบวนการหรือคำแนะนำเฉพาะใดๆ
การพัฒนาเริ่มต้นด้วยทรัพยากรและความพยายามที่มีอยู่ในขณะนี้ โดยมีการวางแผนเพียงเล็กน้อยหรือไม่มีเลย ส่งผลให้ลูกค้าได้รับสินค้าที่อาจไม่ตรงตามข้อกำหนดด้วยซ้ำ คุณสมบัติมีการใช้งานทันที
แนวคิดหลักของโมเดล Big Bang SDLC คือการกำหนดทรัพยากรที่มีอยู่ทั้งหมดเพื่อพัฒนาผลิตภัณฑ์เอง ส่วนใหญ่ในแง่ของการเข้ารหัส โดยไม่ต้องกังวลเกี่ยวกับการปฏิบัติตามแผน
ข้อดี:
- โมเดลที่เรียบง่ายอย่างน่าทึ่ง
- แทบไม่ต้องมีการวางแผน
- ง่ายต่อการจัดการ
- ไม่ต้องใช้ทรัพยากรมาก
- ยืดหยุ่นสำหรับทีมพัฒนา
ข้อเสีย:
- ความเสี่ยงและความไม่แน่นอนสูง ทั้งโครงการอาจต้องทำใหม่ตั้งแต่ต้น
- ไม่เหมาะกับโครงการที่ซับซ้อน ระยะยาว หรือเชิงวัตถุ
- มีโอกาสสูงที่จะสูญเสียทรัพยากรเนื่องจากความต้องการที่ไม่แน่นอน
ดีที่สุดสำหรับ:
- ทีมเล็กหรือนักพัฒนาคนเดียว
- โครงการวิชาการ
- โครงการที่ไม่มีข้อกำหนดหรือวันที่คาดว่าจะวางจำหน่าย
- โครงการขนาดเล็กและมีความเสี่ยงต่ำ
โมเดลต้นแบบ
แนวทางการสร้างต้นแบบ SDLC เป็นเรื่องเกี่ยวกับ การสร้างต้นแบบการทำงาน ของผลิตภัณฑ์ซอฟต์แวร์ที่มีฟังก์ชันการทำงานที่จำกัด จากนั้นจึงเปลี่ยนต้นแบบให้เป็นผลิตภัณฑ์ที่สมบูรณ์อย่างรวดเร็ว ต้นแบบอาจไม่มีตรรกะที่แน่นอนของผลิตภัณฑ์สำเร็จรูป
แนวทางวงจรชีวิตการพัฒนาซอฟต์แวร์นี้ดีสำหรับการให้ผู้บริโภคเห็นภาพผลิตภัณฑ์ การรวบรวมและวิเคราะห์ผลตอบรับจากลูกค้าช่วยให้ทีมพัฒนาเข้าใจความต้องการของลูกค้าได้ดียิ่งขึ้นในช่วงเริ่มต้นของการพัฒนา
ตรวจสอบบทความนี้เพื่อเรียนรู้ว่าเหตุใดข้อกำหนดจึงมีความสำคัญในด้านวิศวกรรมซอฟต์แวร์
การสร้างต้นแบบก็มีคุณค่าเช่นกัน เพราะมันเกี่ยวข้องกับ การทำซ้ำน้อย กว่าแบบจำลองน้ำตกแบบดั้งเดิม นี่เป็นเพราะการทดสอบเสร็จสิ้น (และมีการเปลี่ยนแปลง) ต้นแบบ ไม่ใช่ผลิตภัณฑ์ที่พัฒนาเต็มที่
แน่นอนว่าการสร้างต้นแบบที่มีคุณค่านั้นจำเป็นต้องมีความเข้าใจพื้นฐานเกี่ยวกับข้อกำหนดของผลิตภัณฑ์และตลาด โดยเฉพาะอย่างยิ่งในแง่ของส่วนต่อประสานกับผู้ใช้
ด้วยโมเดลการสร้างต้นแบบ ความคิดเห็นของผู้ใช้จึงมีบทบาทที่ชัดเจน ในการวางแผนการพัฒนาต่อไป
การสร้างต้นแบบทำให้ผู้ใช้สามารถประเมินข้อเสนอของนักพัฒนาซอฟต์แวร์สำหรับฟังก์ชันการทำงานเพิ่มเติมของแอปและทดลองใช้งานก่อนที่จะนำไปใช้
ทุกต้นแบบในแบบจำลอง SDLC นี้มักจะถูกนำมาใช้ใน ขั้นตอน ต่อไปนี้ :
- ระบุข้อกำหนด
- พัฒนาต้นแบบเริ่มต้น
- ทบทวน
- แก้ไขและปรับปรุง
ทันทีที่ต้นแบบขั้นสุดท้ายเสร็จสิ้น ความต้องการของโครงการจะถือว่า ไม่ สามารถ เปลี่ยนแปลง ได้
นอกจากนี้ยังมีการสร้างต้นแบบแบบดั้งเดิมหลายประเภท:
การสร้างต้นแบบ แบบใช้แล้วทิ้ง — ทีมงานได้พัฒนาต้นแบบที่แตกต่างกันจำนวนหนึ่งและละทิ้งต้นแบบที่ยอมรับไม่ได้อย่างเห็นได้ชัด ฟังก์ชันที่เป็นประโยชน์จากแต่ละต้นแบบจะก้าวไปสู่ขั้นตอนการพัฒนาถัดไป
การสร้างต้นแบบเชิงวิวัฒนาการ — ทีมงานจะแสดงต้นแบบให้กับกลุ่มผู้ใช้ที่มีศักยภาพ รวบรวมความคิดเห็น และดำเนินการเปลี่ยนแปลงผ่านการทำซ้ำจนกว่าผลิตภัณฑ์ขั้นสุดท้ายจะเสร็จสมบูรณ์
การสร้างต้นแบบที่เพิ่มขึ้น — ทีมงานสร้างต้นแบบต่างๆ และรวมเข้าด้วยกันเป็นการออกแบบเดียวในที่สุด
การสร้างต้นแบบขั้นสูง — ทีมงานสร้างต้นแบบในสามส่วน: ต้นแบบแบบคงที่ ต้นแบบการจำลองการทำงาน และต้นแบบการบริการที่นำไปใช้ การสร้างต้นแบบประเภทนี้ส่วนใหญ่จะใช้ในการพัฒนาเว็บแอปพลิเคชัน
ข้อดี:
- เพิ่มการมีส่วนร่วมของผู้ใช้ก่อนการใช้งานผลิตภัณฑ์
- โอกาสในการลดเวลาและต้นทุนในการพัฒนา (กรณีต้นแบบสำเร็จ)
- ผู้ใช้มีความเข้าใจที่ดีขึ้นเกี่ยวกับฟังก์ชันการทำงานในขณะที่พวกเขามีส่วนร่วมในกระบวนการพัฒนา
- การตรวจจับข้อบกพร่องเบื้องต้น
- ข้อเสนอแนะอย่างรวดเร็ว
- การวิเคราะห์ที่เรียบง่ายและมีค่า
ข้อเสีย:
- ความเสี่ยงสูงที่การวิเคราะห์ไม่สมบูรณ์เนื่องจากการพึ่งพาต้นแบบ
- ผู้ใช้อาจถือว่าต้นแบบเป็นผลิตภัณฑ์ที่สมบูรณ์และยังคงไม่พอใจ
- ความเสี่ยงในการนำต้นแบบไปใช้ต้นทุนสูง
- การพัฒนาต้นแบบหลายตัวอาจใช้การทำซ้ำมากเกินไปและทำให้ใช้เวลามากเกินไป
ดีที่สุดสำหรับ:
- ใช้ควบคู่ไปกับ SDLC รุ่นอื่นๆ
- ผลิตภัณฑ์ที่มีการโต้ตอบกับผู้ใช้จำนวนมาก
- ผลิตภัณฑ์ที่ควรจะได้รับการอนุมัติจากผู้ใช้ในระยะแรก
แบบวนซ้ำและแบบส่วนเพิ่ม
โมเดล SDLC แบบ วน ซ้ำและแบบส่วนเพิ่มจะรวมการ ออกแบบแบบวนซ้ำและเวิร์กโฟลว์เข้า กับโมเดลบิลด์ที่เพิ่มขึ้น ในกรณีนี้ ทีมพัฒนาผลิตภัณฑ์เป็นวัฏจักร สร้างชิ้นส่วนขนาดเล็กด้วยวิธีวิวัฒนาการ
กระบวนการพัฒนาเริ่มต้นด้วยการนำข้อกำหนดผลิตภัณฑ์ชุดเล็ก ๆ ไปปฏิบัติอย่างง่าย ๆ อย่างจำกัดอย่างเข้มงวด จากนั้นผลิตภัณฑ์จะได้รับการปรับปรุงและเปลี่ยนเป็นเวอร์ชันที่สมบูรณ์ยิ่งขึ้นจนกว่าจะเสร็จสมบูรณ์และพร้อมสำหรับการใช้งาน การทำซ้ำแต่ละครั้งอาจมีการอัปเดตการออกแบบและฟังก์ชันการทำงานใหม่
คุณลักษณะที่มีค่าของแบบจำลองซ้ำและส่วนเพิ่มคือ การพัฒนาสามารถเริ่มต้นได้โดยไม่ทราบข้อกำหนด ทั้งหมด โมเดลนี้มีขั้นตอนจากโมเดล SDLC อื่นๆ — การรวบรวมความต้องการ การออกแบบ การใช้งาน และการทดสอบ — แต่สำหรับการสร้างหลายๆ แบบ ทีมพัฒนาใช้ประโยชน์จากสิ่งที่ทำได้ในบิลด์ก่อนหน้าเพื่อทำให้บิลด์ถัดไปดีขึ้น
โมเดล SDLC แบบวนซ้ำและแบบเพิ่มหน่วยสามารถดูเหมือนชุดของน้ำตกขนาดเล็กหรือรุ่นรูปตัววีขนาดเล็ก
ข้อดี:
- สร้างมูลค่าทางธุรกิจได้ตั้งแต่เนิ่นๆ เนื่องจากมีการส่งมอบผลิตภัณฑ์ที่ใช้งานได้ทุกส่วน
- สามารถทำได้โดยใช้ทรัพยากรที่หายาก
- ให้พื้นที่สำหรับความยืดหยุ่น
- ช่วยให้เน้นคุณค่าของผู้ใช้มากขึ้น
- ทำงานได้ดีกับการพัฒนาแบบคู่ขนาน
- ตรวจพบปัญหาในระยะแรก
- ง่ายต่อการประเมินความก้าวหน้าของการพัฒนา
- ใช้ความคิดเห็นของลูกค้าจำนวนมาก
ข้อเสีย:
- ต้องใช้เอกสารจำนวนมาก
- ทำตามชุดของเฟสที่กำหนดไว้ล่วงหน้า
- การเพิ่มขึ้นถูกกำหนดโดยการพึ่งพาฟังก์ชันและคุณลักษณะ
- ต้องการการมีส่วนร่วมของผู้ใช้โดยนักพัฒนามากกว่า Waterfall หรือ SDLC เชิงเส้นอื่นๆ
- อาจเป็นเรื่องยากที่จะรวมคุณลักษณะระหว่างการทำซ้ำหากไม่ได้วางแผนไว้ล่วงหน้า
- ปัญหาด้านสถาปัตยกรรมหรือการออกแบบอาจเกิดขึ้นเนื่องจากความต้องการที่ไม่สมบูรณ์ในระยะแรก
- ซับซ้อนในการจัดการ
- ยากที่จะคาดเดาจุดสิ้นสุดของโครงการ
ดีที่สุดสำหรับ:
- โครงการที่ซับซ้อนและมีความสำคัญต่อภารกิจ เช่น ระบบ ERP
- โครงการที่มีข้อกำหนดที่เข้มงวดสำหรับผลิตภัณฑ์ขั้นสุดท้าย แต่มีพื้นที่สำหรับการปรับปรุงเพิ่มเติม
- โครงการที่มีการกำหนดข้อกำหนดที่สำคัญแต่ฟังก์ชันบางอย่างอาจมีวิวัฒนาการหรืออาจมีการปรับปรุง
- โครงการที่เทคโนโลยีที่จำเป็นนั้นใหม่และยังไม่ได้รับการควบคุมหรือวางแผนไว้สำหรับบางส่วนของผลิตภัณฑ์เท่านั้น
- ผลิตภัณฑ์ที่มีคุณสมบัติที่มีความเสี่ยงสูงที่อาจจำเป็นต้องเปลี่ยน
รุ่น RAD
โมเดล Rapid Application Development (RAD) อิงจากการสร้างต้นแบบและการพัฒนาแบบวนซ้ำโดยไม่มีการวางแผนเฉพาะที่เกี่ยวข้อง ด้วยโมเดลนี้ การวางแผนต้องใช้เบาะหลังในการสร้างต้นแบบอย่างรวดเร็ว
ข้อมูลหลักที่จำเป็นในแบบจำลอง RAD จะถูกรวบรวมผ่านการ ประชุมเชิงปฏิบัติการ การสนทนากลุ่ม และการสาธิตต้นแบบในช่วงต้น ตลอดจนการนำต้นแบบที่มีอยู่กลับมาใช้ใหม่
โมดูลการทำงานในแบบจำลองวงจรชีวิตการพัฒนาซอฟต์แวร์ RAD ได้รับการพัฒนาควบคู่ไปกับต้นแบบและถูกรวมเข้าด้วยกันเพื่อส่งมอบผลิตภัณฑ์ที่สมบูรณ์อย่างรวดเร็ว ต้นแบบที่พัฒนาแล้วมีแนวโน้มที่จะนำกลับมาใช้ใหม่ได้
โมเดล RAD กระจายขั้นตอนการวิเคราะห์ ออกแบบ สร้าง และทดสอบเป็นชุดวงจรการพัฒนาแบบวนซ้ำแบบสั้น
เฟสของแบบจำลอง RAD:
การสร้างแบบจำลองทางธุรกิจ — จำลอง การไหลของข้อมูลและการกระจายข้อมูลระหว่างช่องทางธุรกิจต่างๆ ส่วนนี้จำเป็นในการค้นหาข้อมูลที่สำคัญสำหรับธุรกิจและกำหนดวิธีการรับข้อมูล วิธีและเวลาในการประมวลผลข้อมูล และปัจจัยใดบ้างที่ขับเคลื่อนการไหลของข้อมูลให้ประสบความสำเร็จ
การสร้างแบบจำลองข้อมูล — ข้อมูลจากขั้นตอนก่อนหน้าจะถูกประมวลผลเพื่อสร้างชุดข้อมูลที่จำเป็นพร้อมแอตทริบิวต์ที่ระบุและกำหนด
การสร้างแบบจำลองกระบวนการ — ชุดข้อมูลจากขั้นตอนก่อนหน้าจะถูกแปลงเป็นรูปแบบกระบวนการเพื่อให้บรรลุวัตถุประสงค์ทางธุรกิจ และได้รับคำอธิบายกระบวนการสำหรับการเพิ่ม ลบ ดึงข้อมูล หรือแก้ไขวัตถุข้อมูลทั้งหมด
การสร้างแอปพลิเคชัน — ระบบถูกสร้างขึ้นและเข้ารหัสโดยใช้เครื่องมืออัตโนมัติเพื่อแปลงกระบวนการและแบบจำลองข้อมูลให้เป็นต้นแบบจริง
การทดสอบและการหมุนเวียน — ต้นแบบส่วนใหญ่ได้รับการทดสอบอย่างอิสระทุกครั้งที่ทำซ้ำ นักพัฒนาจะทดสอบโฟลว์ข้อมูลและอินเทอร์เฟซระหว่างส่วนประกอบทั้งหมดเท่านั้นในช่วงนี้
ข้อดี:
- สามารถรองรับความต้องการที่เปลี่ยนแปลงได้
- ง่ายต่อการวัดความก้าวหน้า
- ความสามารถในการลดเวลาทำซ้ำด้วยเครื่องมือ RAD อันทรงพลัง
- ประสิทธิภาพการทำงานที่ดีขึ้นโดยมีสมาชิกในทีมที่เกี่ยวข้องน้อยลง เมื่อเทียบกับ SDLCs อื่นๆ
- พัฒนาเร็วขึ้น
- นำส่วนประกอบกลับมาใช้ใหม่ได้ดีกว่า
- บทวิจารณ์เบื้องต้นก่อนหน้านี้
- โอกาสที่ดีกว่าที่จะได้รับคำติชมจากลูกค้า
ข้อเสีย:
- ต้องการทีมงานด้านเทคนิคและการออกแบบที่แข็งแกร่ง
- ดีสำหรับระบบที่สามารถแยกส่วนได้เท่านั้น
- พึ่งพาการสร้างแบบจำลองมาก
- การสร้างแบบจำลองและการสร้างโค้ดอัตโนมัติมีค่าใช้จ่ายสูง
- การจัดการที่ซับซ้อน
- เหมาะสำหรับระบบที่ใช้ส่วนประกอบและปรับขนาดได้เท่านั้น
- จำเป็นต้องมีการมีส่วนร่วมของผู้ใช้จำนวนมากตลอดวงจรชีวิต
ดีที่สุดสำหรับ:
- ระบบโมดูลาร์ที่จัดส่งในลักษณะที่เพิ่มขึ้น
- โครงการตามการออกแบบที่มีการสร้างแบบจำลองที่แข็งแกร่งมากมาย
- โครงการที่มีฟังก์ชันสร้างโค้ดอัตโนมัติ
- โครงการที่มีข้อกำหนดที่เปลี่ยนแปลงแบบไดนามิกซึ่งจำเป็นต้องนำเสนอการทำซ้ำเล็กๆ ทุก 2 ถึง 3 เดือน
รูปแบบการพัฒนาเกลียว
แบบจำลอง Spiral SDLC เป็นการ ผสมผสานระหว่าง Prototyping และ Waterfall มันประสานกันได้ดีกับกระบวนการพัฒนาซอฟต์แวร์ตามธรรมชาติ แบบจำลอง Spiral มีขั้นตอนเดียวกันกับ Waterfall ในลำดับเดียวกัน (การรวบรวมข้อกำหนด การออกแบบ การนำไปใช้ และการทดสอบ ) แยกจากกันโดยการวางแผน การประเมินความเสี่ยง และการสร้างต้นแบบและการจำลองในแต่ละขั้นตอน
ข้อดี:
- ประมาณการ (งบประมาณ กำหนดการ ฯลฯ) จะสมจริงมากขึ้นเมื่องานดำเนินไปเนื่องจากปัญหาสำคัญถูกค้นพบก่อนหน้านี้
- การมีส่วนร่วมในช่วงต้นของทีมพัฒนาและผู้ใช้
- การบริหารความเสี่ยงคุณภาพสูงขึ้นในแต่ละขั้นตอน
- มีความยืดหยุ่นดีกว่าในโมเดลเชิงเส้นตรง
- ขยายการใช้ต้นแบบ
ข้อเสีย:
- ต้องใช้เงินและเวลามากขึ้นเพื่อให้ได้ผลิตภัณฑ์สำเร็จรูป
- ซับซ้อนในการดำเนินการเนื่องจากความต้องการการจัดการความเสี่ยงมากขึ้น
- การนำกลับมาใช้ใหม่ได้จำกัดเนื่องจากผลลัพธ์ที่ปรับแต่งได้สูงของเกลียวการพัฒนา
- ต้องใช้เอกสารจำนวนมาก
ดีที่สุดสำหรับ:
- โครงการที่ซับซ้อนพร้อมฟังก์ชันในตัวขนาดเล็กจำนวนมาก
- โครงการที่มีงบประมาณเข้มงวด (การบริหารความเสี่ยงจะช่วยประหยัดเงิน)
- โครงการที่มีความเสี่ยงสูง
- โครงการพัฒนาระยะยาว
- โครงการที่ไม่มีข้อกำหนดที่ชัดเจนในระยะแรก หรือมีข้อกำหนดที่ต้องประเมิน
- สายผลิตภัณฑ์ใหม่มีกำหนดจะเปิดตัวในเฟส
- โครงการที่มีแนวโน้มว่าจะเปลี่ยนแปลงผลิตภัณฑ์อย่างมีนัยสำคัญระหว่างการพัฒนา
โมเดลเปรียว
โมเดล Agile SDLC เป็นการผสมผสานระหว่างวิธีการแบบวนซ้ำและแบบส่วนเพิ่ม โดยมุ่งเน้นที่การปรับให้เข้ากับ ความต้องการที่ยืดหยุ่น และสร้างความพึงพอใจให้ผู้ใช้และลูกค้าด้วยการนำเสนอซอฟต์แวร์ที่ใช้งานได้ตั้งแต่เนิ่นๆ
ข้อกำหนดและแนวทางแก้ไขในโครงการ Agile อาจมีวิวัฒนาการระหว่างการพัฒนา
ด้วยการพัฒนาแบบ Agile ผลิตภัณฑ์จะแบ่งออกเป็น บิลด์ที่เพิ่มขึ้นทีละน้อยและส่งมอบแบบวนซ้ำ งานทั้งหมดจะถูกแบ่งออกเป็นกรอบเวลาเล็กๆ เพื่อเตรียมฟังก์ชันการทำงานกับแต่ละบิลด์ การสร้างผลิตภัณฑ์ขั้นสุดท้ายมีคุณสมบัติที่จำเป็นทั้งหมด
ใน Agile แนวทางการพัฒนาที่มีอยู่จำเป็นต้องปรับให้เข้ากับความต้องการของแต่ละโครงการ อ่านเว็บไซต์อย่างเป็นทางการของแถลงการณ์ Agile เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับปรัชญา Agile
ข้อดี:
- ใช้เวลาน้อยลงในการนำเสนอคุณสมบัติเฉพาะ
- ไม่มีที่ว่างสำหรับการคาดเดาเนื่องจากการสื่อสารแบบตัวต่อตัวและการป้อนข้อมูลจากลูกค้าอย่างต่อเนื่อง
- ผลลัพธ์คุณภาพสูงในเวลาที่เร็วที่สุด possible
- มูลค่าทางธุรกิจสามารถส่งมอบและแสดงให้เห็นได้อย่างรวดเร็ว
- ต้องการทรัพยากรขั้นต่ำ
- ปรับตัวได้สูงต่อความต้องการที่เปลี่ยนแปลงไป
ข้อเสีย:
- ต้องการให้ลูกค้าตระหนักถึงความสำคัญของแนวทางที่เน้นผู้ใช้เป็นศูนย์กลาง
- การส่งเอกสารล่าช้าส่งผลให้การถ่ายทอดเทคโนโลยีไปยังสมาชิกในทีมใหม่ยากขึ้น
- นำเสนอความต้องการที่เข้มงวดในแง่ของขอบเขต ฟังก์ชันที่ส่งมอบ และการปรับปรุงที่ต้องทำทันเวลา
- ไม่ง่ายที่จะรับมือกับการพึ่งพาที่ซับซ้อน
- ต้องใช้ทักษะด้านซอฟท์สกิลมากมายจากทีมพัฒนา
ดีที่สุดสำหรับ:
- โครงการเกือบทุกประเภท แต่ด้วยการมีส่วนร่วมจากลูกค้าเป็นจำนวนมาก
- โครงการที่สิ่งแวดล้อมเปลี่ยนแปลงบ่อย
- ลูกค้าที่ต้องการฟังก์ชันบางอย่างเพื่อให้เสร็จเร็ว เช่น ในเวลาน้อยกว่า 3 สัปดาห์
ทำไมต้องเปรียว?
ตามรายงานประจำปีของ State of Agile Agile ยังคงเป็นแบบจำลองวงจรชีวิตการพัฒนาซอฟต์แวร์ที่ใช้กันอย่างแพร่หลายมากที่สุด ในอุตสาหกรรมเทคโนโลยี ที่ Mind Studios ส่วนใหญ่เราใช้โมเดล Agile SDLC เพื่อพัฒนาผลิตภัณฑ์ซอฟต์แวร์สำหรับลูกค้าของเรา นี่คือเหตุผล
สิ่งสำคัญที่ทำให้ Agile แตกต่างจาก SDLC รุ่นอื่นๆ คือ Agile เป็น แบบ adaptive ในขณะที่รุ่นอื่นๆ สามารถคาดการณ์ได้ แบบจำลองการพัฒนาเชิงคาดการณ์ขึ้นอยู่กับ การวิเคราะห์และการวางแผนความต้องการที่เหมาะสม อย่างใกล้ชิด ด้วยเหตุนี้ การเปลี่ยนแปลงวิธีการคาดการณ์จึงเป็นเรื่องยาก การพัฒนาจึงยึดติดอยู่กับแผนอย่างใกล้ชิด และหากจำเป็นต้องเปลี่ยนแปลงบางสิ่ง ก็จะต้องเผชิญกับผลที่ตามมาทั้งหมดของการจัดการการควบคุมและการจัดลำดับความสำคัญ
การพัฒนาซอฟต์แวร์สมัยใหม่จำเป็นต้อง สามารถเปลี่ยนแปลงได้ทันที การพัฒนา Adaptive Agile ไม่ได้อาศัยการวางแผนอย่างละเอียดมากเท่ากับวิธีการคาดการณ์ ดังนั้นหากจำเป็นต้องเปลี่ยนแปลงบางสิ่ง ก็สามารถเปลี่ยนแปลงได้ไม่ช้ากว่าในการดำเนินการพัฒนาต่อไปนี้
ทีมพัฒนาที่ขับเคลื่อนด้วยคุณลักษณะสามารถปรับให้เข้ากับการเปลี่ยนแปลงความต้องการแบบไดนามิก นอกจากนี้ ความถี่ของการทดสอบใน Agile ยังช่วย ลดความเสี่ยงของความล้มเหลวที่สำคัญ
อ่านเพิ่มเติม: วิธีจัดการความเสี่ยงในการพัฒนาซอฟต์แวร์
แน่นอนว่า Agile หมายถึงการโต้ตอบกับลูกค้าและผู้ใช้จำนวนมากเพื่อให้ทำงานได้อย่างถูกต้อง ความต้องการของผู้ใช้ ไม่ใช่ลูกค้า เป็นตัวกำหนดข้อกำหนดของโครงการขั้นสุดท้าย
Scrum และ Kanban
มีแนวทางที่กำหนดไว้มากมายในวงจรชีวิตการพัฒนาซอฟต์แวร์แบบ Agile สองสิ่งที่ได้รับความนิยมมากที่สุดคือ Scrum และ Kanban
Scrum เป็นเฟรมเวิร์กเวิร์กโฟลว์ที่ใช้ในการส่งมอบซอฟต์แวร์แบบสปรินต์ ซึ่งมักจะเป็นช่วงเวลาสองสัปดาห์ Scrum มุ่งเน้นไปที่วิธีจัดการงานภายในสภาพแวดล้อมการพัฒนาและช่วยปรับปรุงไดนามิกของทีม
ไม่มีวิธีใดที่จะใช้งาน Scrum ได้อย่างสมบูรณ์เนื่องจากความสามารถในการปรับตัวที่สูง แต่โดยทั่วไปแล้ว ทีมงานจำเป็นต้องจัดเตรียมบทบาท เหตุการณ์ สิ่งประดิษฐ์ และกฎเกณฑ์ที่เกี่ยวข้องภายในโครงการหนึ่งๆ
การ วิ่ง เป็นกรอบเวลาสองถึงสี่สัปดาห์ในระหว่างที่ทีมสร้างซอฟต์แวร์ที่ใช้งานได้ การวิ่งครั้งใหม่เริ่มต้นทันทีหลังจากการวิ่งครั้งก่อนเสร็จสิ้น
สิ่งเหล่านี้เป็นองค์ประกอบทั่วไปของการวิ่งระยะสั้น:
การวางแผน Sprint โดยที่ทีมวางแผนจำนวนงานที่ต้องทำใน sprint ที่กำหนด
The Daily Scrum Meeting มีตติ้งสั้นๆ ทุกวันสำหรับทีมเพื่อหารือเกี่ยวกับสิ่งที่ทำไปแล้ว สิ่งที่พวกเขาวางแผนจะทำในวันนี้ และปัญหาที่เกิดขึ้นตั้งแต่การประชุมครั้งล่าสุด
Sprint Review การพบปะเมื่อสิ้นสุด Sprint ในระหว่างที่ทีมทำงานที่เสร็จสิ้นแล้วและทำการเปลี่ยนแปลงใน Backlog ของผลิตภัณฑ์ หากจำเป็น
Sprint Retrospective จะเกิดขึ้นก่อนเริ่มการวิ่งรอบใหม่ ในระหว่างการย้อนหลัง ทีม Scrum สรุปงานและสร้างแผนการปรับปรุงสำหรับการวิ่งในอนาคตตามประสบการณ์ของพวกเขาจากการวิ่งในอดีต
Kanban เป็นวิธีการแสดงภาพการจัดการที่ใช้กันอย่างแพร่หลายในโมเดล Agile SDLC ช่วยปรับปรุงและรักษาระดับผลิตภาพในระดับสูงภายในทีมพัฒนา Kanban ทำงานด้วยการวนซ้ำสั้นๆ: ถ้า Scrum ใช้เวลาประมาณสัปดาห์ Kanban จะใช้เวลาประมาณชั่วโมง Scrum ตั้งเป้าที่จะวิ่งให้เสร็จ ในขณะที่ Kanban ตั้งเป้าที่จะทำงานให้เสร็จ Kanban เป็นการต่อต้านการทำงานหลายอย่างพร้อมกัน
แนวปฏิบัติที่สำคัญของ Kanban คือ:
- การแสดงภาพเวิร์กโฟลว์
- การจำกัดงานที่อยู่ระหว่างดำเนินการ
- การจัดการเวิร์กโฟลว์
Kanban ถูกนำมาใช้โดยใช้บอร์ดที่จะแสดงงานโครงการทั้งหมดและแบ่งออกเป็นคอลัมน์ต่างๆ เช่น สิ่งที่ต้องทำ อยู่ระหว่างดำเนินการ ระงับ เสร็จสิ้น และอยู่ระหว่างการตรวจสอบ
Kanban ยังดีสำหรับกิจกรรมด้านเทคนิคน้อย เช่น การขาย การตลาด และการสรรหาบุคลากร
DevOps
การพูดถึงโมเดล SDLC เป็นวิธีในการทำสิ่งต่างๆ ให้สำเร็จ เราควรพูดถึง แนวทาง DevOps DevOps เป็นการผสมผสานระหว่างเครื่องมือ แนวทางปฏิบัติ และแนวทางที่ช่วยให้ส่งมอบผลิตภัณฑ์ซอฟต์แวร์ได้รวดเร็วยิ่งขึ้น DevOps เป็นเรื่องเกี่ยวกับการทำงานร่วมกันของสภาพแวดล้อมการพัฒนาและการดำเนินงาน
โปรดทราบว่า DevOps ไม่ใช่โมเดล SDLC แต่ยังช่วยให้คุณทำสิ่งต่างๆ ให้สำเร็จได้ด้วย
โดยส่วนใหญ่ DevOps ดำเนินการโดยโครงสร้างพื้นฐานและเวิร์กโฟลว์อัตโนมัติ และติดตามประสิทธิภาพของแอปพลิเคชันอย่างต่อเนื่อง แนวทาง DevOps ช่วยให้คุณ เพิ่มความถี่ในการปรับใช้ รหัสเอกสาร และลดเวลาที่ต้องใช้ในการปรับใช้โค้ดใหม่ เป็นการดีที่จะหลีกเลี่ยงข้อผิดพลาดในการพึ่งพา
DevOps ใช้การวนซ้ำเพื่อปรับปรุง วัดผล และตรวจสอบโค้ดในการปฏิบัติงานประจำวัน เป้าหมายสูงสุดคือการมีสภาพแวดล้อมการผลิตที่มีประสิทธิภาพมากที่สุดเท่าที่จะเป็นไปได้เพื่อมอบประสบการณ์ที่ดีขึ้นแก่ลูกค้า
แต่การนำโมเดล DevOps ไปใช้นั้นจำเป็นต้องมีกรอบความคิดเฉพาะจากทีม พัฒนาและทีมปฏิบัติการ ตลอดจนความพร้อมในการพัฒนาเครื่องมือและทักษะ DevOps ให้เชี่ยวชาญเร็วขึ้น
ข้อดี:
- ออกบ่อยขึ้นเพื่อการจัดส่งที่รวดเร็วสู่ตลาด
- มุ่งเน้นการปรับปรุงผลิตภัณฑ์และตอบสนองต่อความต้องการทางธุรกิจมากขึ้น
- การทำงานร่วมกันที่ดีขึ้นระหว่างสมาชิกในทีม
- คุณภาพของผลิตภัณฑ์ขั้นสุดท้ายที่ดีขึ้นและลูกค้ามีความสุขมากขึ้น
ข้อเสีย:
- DevOps เป็นของใหม่ ซึ่งหมายความว่าไม่ได้รับการศึกษาดีขนาดนั้น
- ไม่เหมาะที่สุดสำหรับโครงการที่สำคัญต่อภารกิจ
- ต้องใช้ความพยายามเป็นพิเศษโดยทีมงานในการจัดระเบียบ
- มีโอกาสผิดพลาดสูงในช่วงเริ่มต้นของการพัฒนา
- ต้องเลือกระหว่างเน้นความปลอดภัยหรือพัฒนาความเร็ว
บทสรุป
ธุรกิจพัฒนาซอฟต์แวร์เปลี่ยนแปลงตลอดเวลาและรวดเร็ว มันเปลี่ยนแปลงได้เร็วกว่าที่ผู้คนสร้างวิธีการจัดการที่เป็นที่ยอมรับ อาจไม่มี SDLC เฉพาะที่เหมาะกับธุรกิจของคุณ แต่แบบจำลองวงจรชีวิตการพัฒนาซอฟต์แวร์ที่มีอยู่อย่างน้อยอาจแนะนำคุณในทิศทางที่ถูกต้องและช่วยให้คุณปรับกระบวนการทางธุรกิจให้กลมกลืนกัน
หากคุณต้องการทำความเข้าใจให้ชัดเจนยิ่งขึ้นว่า SDLC แบบใดที่เหมาะกับโครงการของคุณมากที่สุด — หรือหากคุณต้องการทีม Agile ระดับแนวหน้าในการพัฒนาแอพหรือผลิตภัณฑ์บนเว็บของคุณ — ส่งข้อความหาเราผ่านหน้าติดต่อของเรา