ความแตกต่างระหว่าง Extreme Programming กับ SCRUM

Anonim

Extreme Programming vs. SCRUM | XP และ SCRUM

มีหลายวิธีในการพัฒนาซอฟท์แวร์ที่ใช้ในอุตสาหกรรมซอฟต์แวร์ในช่วงหลายปีเช่นวิธีการพัฒนา Waterfall, V-Model, RUP และวิธีการเชิงเส้นแบบวนซ้ำและแบบวนซ้ำอื่น ๆ รูปแบบ Agile (หรืออย่างถูกต้องมากขึ้นกลุ่มของวิธีการ) เป็นรูปแบบการพัฒนาซอฟต์แวร์ล่าสุดที่นำมาใช้โดยแถลงการณ์ Agile เพื่อแก้ปัญหาข้อบกพร่องที่พบในวิธีการพัฒนาซอฟต์แวร์แบบดั้งเดิม

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

SCRUM คืออะไร?

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

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

SCRUM กำหนดบทบาทที่สำคัญหลายประการสำหรับการดำเนินงานที่ราบรื่นของทีมพัฒนา เจ้าของผลิตภัณฑ์ (ผู้เป็นตัวแทนของลูกค้าและรักษางานค้างผลิตภัณฑ์), Scrum master (ผู้ดำเนินการในฐานะผู้จัดและผู้ประสานงานของทีมโดยการดำเนินการประชุมต่อสู้เพื่อรักษา backlog วิ่งและเผาผลาญแผนภูมิ) และสมาชิกในทีมคนอื่น ๆทีมอาจประกอบด้วยบทบาทดั้งเดิม แต่ส่วนใหญ่เป็นทีมที่จัดการด้วยตนเอง สิ่งประดิษฐ์หลัก Scrum คือ Backlog / Backlog การปล่อย (รายการที่ต้องการ), Backlogs backlogs / backlogs ของข้อบกพร่อง (งานในทุกๆซ้ำ), Burn ลงแผนภูมิ (งานที่เหลือเทียบกับวันที่) พิธีกรหลักของ SCRUM ได้แก่ งาน Product Backlog Meeting การประชุม Sprint Meeting และ Retrospect Meeting

Extreme Programming คืออะไร?

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

อะไรคือความแตกต่างระหว่าง Extreme Programming กับ SCRUM?

การเขียนโปรแกรมมากเกินไปและ SCRUM เป็นวิธีการที่คล้ายคลึงกันมากและมีความสอดคล้อง อย่างไรก็ตามมีความแตกต่างที่สำคัญระหว่างสองวิธีนี้ SCRUM sprints มีอายุการใช้งาน 2-4 สัปดาห์ในขณะที่การทำซ้ำ XP ทั่วไปจะสั้นลง (1-2 สัปดาห์ที่ผ่านมา) โดยปกติทีม SCRUM ไม่อนุญาตให้มีการเปลี่ยนแปลงในการวิ่ง แต่ทีม XP มีความยืดหยุ่นน้อยกว่าการเปลี่ยนแปลงภายในการทำซ้ำ ตัวอย่างเช่นหลังจากการวางแผนการวิ่งชุดของรายการที่วิ่งอยู่ไม่เปลี่ยนแปลง แต่คุณลักษณะที่ยังไม่ได้เริ่มทำงานได้ตลอดเวลาสามารถสลับกับคุณลักษณะอื่น ๆ ใน XP ได้ ความแตกต่างระหว่าง XP และ SCRUM ก็คือคำสั่งของคุณลักษณะที่พัฒนาใน XP เป็นลำดับความสำคัญอย่างเคร่งครัดจากลูกค้าในขณะที่ทีม SCRUM ตัดสินใจสั่งซื้อสินค้า (หลังจากที่ผลิตภัณฑ์ของ SCRUM ได้รับการจัดลำดับความสำคัญของผลิตภัณฑ์)

แตกต่างจาก XP, SCRUM ไม่ได้ระบุแนวทางปฏิบัติด้านวิศวกรรมใด ๆ ตัวอย่างเช่น XP ถูกผลักดันโดยการปฏิบัติเช่นการพัฒนาแบบทดสอบ (TDD) การเขียนโปรแกรมแบบคู่การจัดโครงสร้าง ฯลฯ อย่างไรก็ตามบางคนเชื่อว่าการกำหนดชุดปฏิบัติงานในทีมที่จัดตัวเองอาจมีผลกระทบในเชิงลบและถือได้ว่าเป็นประโยชน์ ข้อบกพร่องของ XP ข้อบกพร่องอีกอย่างหนึ่งของ Extreme programming ก็คือทีมที่ไม่มีประสบการณ์สามารถปรับโครงสร้างโดยไม่มีการทดสอบอัตโนมัติหรือ TDD (หรือเพียงแค่แฮ็ก) ดังนั้นบางส่วนแนะนำว่า SCRUM จะดีกว่าสำหรับการจ้องมอง (เนื่องจากนำการปรับปรุงที่ใหญ่ขึ้นเพียงแค่ผ่านการทำซ้ำแบบ timeboxed ที่มุ่งเน้น) และ XP เหมาะสำหรับทีมที่โตเต็มที่เล็กน้อยซึ่งได้ค้นพบคุณค่าของการปฏิบัติที่กล่าวมาข้างต้น (แทนที่จะใช้เพราะพวกเขาได้รับการถาม ทำเช่นนั้น)