คำถามติดแท็ก extreme-programming

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

6
Agile แตกต่างจาก XP อย่างไร
ฉันอ่านบทความบนเว็บเพื่อค้นหาว่า Agile, XP, Scrum, การเขียนโปรแกรมคู่แตกต่างกันอย่างไร / เกี่ยวข้องกันและฉันได้รับบรรทัดต่อไปนี้: Scrum และ XP เกือบจะเหมือนกัน XP มีระยะเวลาเผยแพร่สั้นกว่า Scrum การเขียนโปรแกรมคู่ใช้ทั้งวิธี Agile และ XP แต่ฉันไม่สามารถระบุได้ว่า Agile นั้นแตกต่างจาก XP อย่างไร มากกว่าให้ URL ฉันยินดีที่จะอ่านประสบการณ์และความคิดของคุณเกี่ยวกับเรื่องนี้

5
การทดสอบเป็นส่วนที่จำเป็นของระเบียบวิธี Agile หรือไม่?
ฉันอยู่กับหลายทีมที่พยายามฝึกวิธีการแบบ Agile และบ่อยครั้งที่ทีมเหล่านี้เป็นศูนย์กลางการทดสอบ การทดสอบเป็นส่วนที่จำเป็นในการฝึกวิธีการ Agile หรือเป็นเพียงการฝึกหัด XP ที่ได้รับการฝึกฝนมาหลายปีหรือไม่?

6
Scrum สามารถปรับให้เข้ากับการตั้งค่าอาสาสมัครได้อย่างไร
ฉันเพิ่งเข้าร่วมแฮกเกอร์สเปซอายุน้อยยังอยู่ในขั้นตอนการตั้งค่า เราโชคดีเพราะพื้นที่มีโครงการภายในไม่กี่แห่งที่ต้องทำงานและไม่มีอาสาสมัครทำงานให้ มีการหารือเกี่ยวกับวิธีการจัดระเบียบโครงการเหล่านี้ ประสบการณ์ระดับมืออาชีพล่าสุดของฉันอยู่กับ Scrum ดังนั้นฉันจึงพิจารณาการขว้างแนวทาง Scrum สำหรับโครงการซอฟต์แวร์ของเรา แต่ฉันไม่แน่ใจว่ามันจะเหมาะสม แม้ว่าฉันจะเห็นว่าการต่อสู้แบบ Scrum ทำงานได้ดีสำหรับทีมเต็มเวลาขนาดเล็ก แต่ลักษณะขององค์กรนี้แตกต่างกัน: สมาชิกที่มีอาสาสมัคร บางคนเป็นนักเรียนเต็มเวลา คนอื่น ๆ ทำงานเต็มเวลา เราไม่สามารถคาดหวังได้ว่าการมีส่วนร่วมอย่างสม่ำเสมอจากทุกคนในขณะที่ชีวิตจริงของพวกเขาให้ความสำคัญ ในขณะที่ทุกคนมีประสบการณ์เขียนซอฟต์แวร์มานานหลายปีมีสมาชิกไม่มากนักที่ทำอย่างมืออาชีพหรือในทีม นอกจากนี้ไม่มีเจ้าของผลิตภัณฑ์ ข้อกำหนดสำหรับโครงการเหล่านี้จะถูกกำหนดโดยคณะกรรมการ สมาชิกของคณะกรรมการนี้จะทำงานในการดำเนินการ ซึ่งหมายความว่าเราจะไม่มีเจ้าของผลิตภัณฑ์ที่อุทิศตน เราไม่มีกำหนดเวลา (อ่อนหรือแข็ง) โครงการจะเสร็จสิ้นเมื่อดำเนินการเสร็จ สิ่งเหล่านี้มีความแตกต่างอย่างมีนัยสำคัญ แต่ฉันไม่เชื่อว่าพวกเขาจะเป็นบล็อคให้ใช้ Scrum ฉันคิดว่าการปรับแต่งเล็กน้อยสามารถทำให้เราผ่านอุปสรรค์นี้ได้: หากเราเปลี่ยน Sprints ให้มีขนาดเรื่องจุดคงที่ แต่ระยะเวลาของเหลว (เวลา) เรายังสามารถได้รับประโยชน์จากการเผยแพร่ซ้ำโดยไม่กดดันต่อการส่งที่ไม่สมจริงใน devs ของอาสาสมัคร เราสามารถทิ้งแผนภูมิการเผาไหม้และการคำนวณความเร็ว หากฉันเข้าใจถูกต้องสิ่งเหล่านี้เป็นเครื่องมือและตัวชี้วัดที่ทำงานเป็นสะพานเชื่อมระหว่างทีม dev และฝ่ายจัดการ พวกเขาทำหน้าที่รายงานความคืบหน้าในรูปแบบที่มีความหมายต่อทั้งนักพัฒนาและผู้มีส่วนได้เสีย พิจารณาว่าเราไม่มีใครรายงาน (ไม่มีผู้จัดการโครงการไม่มีเจ้าของผลิตภัณฑ์และไม่มีผู้มีส่วนได้เสียภายนอก) ฉันเชื่อว่าเราสามารถทำสิ่งนี้ได้ทั้งหมด สิ่งที่ฉันคิดว่าเราจะได้รับจากการที่ไม่ต้องใช้การปรับแต่ง: การรวบรวมความต้องการประชุม (s) …

8
ทีมว่องไวที่เป็นผู้ใหญ่ต้องการการจัดการหรือไม่?
หลังจากการถกเถียงกันอย่างดุเดือดเมื่อเร็ว ๆ นี้เกี่ยวกับ Scrum ฉันรู้ว่าปัญหาของฉันคือฉันคิดว่าการจัดการเป็นกิจกรรมที่ไม่จำเป็นและซ้ำซ้อนในทีมที่คล่องตัว ฉันเชื่อว่าทีม Agile ที่เป็นผู้ใหญ่ไม่ต้องการการจัดการหรือกระบวนการตัดสินใจใด ๆ ที่ไม่ใช่ด้านเทคนิคใด ๆ สำหรับสายตาของฉัน (เห็นได้ชัดว่าผิดพลาด) เป็นที่ชัดเจนว่ามีเพียงคนเดียวที่เหมาะสมและมีความสามารถในการจัดการทีมพัฒนาที่เป็นผู้ใหญ่คือโค้ชของพวกเขา (ซึ่งเป็นเพื่อนร่วมงานที่มีความสามารถด้านเทคนิคมากที่สุด ฉันไม่สามารถจินตนาการได้ว่าอาจารย์แย่งชิงสามารถมีส่วนร่วมกับทีมเช่นนี้ได้อย่างไร ฉันมีความยากลำบากอย่างมากในการตระหนักและเข้าใจถึงคุณค่าของสิ่งต่าง ๆ ใน Scrum และผู้จัดการในฐานะคนที่ไม่ใช่นักพัฒนามืออาชีพ แต่มีความเชี่ยวชาญในการวางแผนรอบการผลิตเมื่อมีโค้ชอยู่ในทีม มันหมายความว่ายังไง? ใครบางคนในโลกที่ไม่มีทักษะการพัฒนาจะจัดการทีมเทคนิคอย่างสูงได้อย่างไร บางทีการจัดการที่นี่หมายถึงอะไรอย่างอื่น? ฉันเห็นว่าการจัดการเป็นเรื่องเสียเวลาและผลพลอยได้จากการที่ยังไม่บรรลุนิติภาวะ ในความเข้าใจของฉันทีมงานที่เป็นผู้ใหญ่นั้นมีการจัดการตนเองอย่างสมบูรณ์ เห็นได้ชัดว่าฉันเข้าใจผิดเพราะคนเก่ง ๆ หลายคนพูดตรงกันข้าม แต่ฉันไม่สามารถโน้มน้าวตัวเองได้

5
Extreme Programming (XP) เข้ากันไม่ได้กับแนวคิดที่แสดงใน Peopleware หรือไม่
ฉันเพิ่งอ่าน Peopleware (DeMarco, Lister) เสร็จแล้วและได้ทำการค้นคว้าเกี่ยวกับ Extreme Programming (XP) มาก่อน อย่างที่ฉันเห็นตอนนี้ทั้งสองวิธีเกือบจะไม่เหมือนกัน Peopleware แนะนำให้แยกโปรแกรมเมอร์ออกจากการรบกวนใด ๆ และกำหนดลำดับความสำคัญในการทำงานอย่างต่อเนื่องเพื่อช่วยโปรแกรมเมอร์ให้ไหล ในทางกลับกัน XP เสนอเพื่อให้แน่ใจว่ามีการสื่อสารมากที่สุดเท่าที่จะเป็นไปได้แม้จะแนะนำให้โปรแกรมเมอร์ "นั่งด้วยกัน" โค้ดเป็นคู่และโดยทั่วไปจะทำงานในห้องเดียวกัน (สร้างเสียงรบกวนมาก) เป็นโรงเรียนแห่งความคิดที่แข่งขันกันอาจเป็นหนึ่งในโรงเรียนที่พิสูจน์ว่าถูกหรือผิดหรือมีการประนีประนอมอย่างมีประสิทธิภาพหรือไม่? ฉันเห็นจุดต่าง ๆ ที่เกิดขึ้น แต่ไม่เห็นการประนีประนอมที่สมเหตุสมผล ฉันใหม่มากในการศึกษาการจัดการการพัฒนาซอฟต์แวร์ดังนั้นจึงเป็นไปได้ว่าฉันเพิ่งเข้าใจผิดบางอย่าง ความคิดเห็นทั้งหมดยินดีต้อนรับ ป.ล. ในฐานะคำถามเล็ก ๆ ที่เพิ่มเข้ามาในฐานะโปรแกรมเมอร์ซึ่งคุณจะพบว่ามีประสิทธิผลมากขึ้นหรือไม่

6
กำลังสร้างวัตถุที่คุณคิดว่าคุณต้องใช้ในการทดสอบครั้งแรกใน TDD
ฉันค่อนข้างใหม่สำหรับ TDD และฉันมีปัญหาในการสร้างการทดสอบครั้งแรกของฉันเมื่อมันมาก่อนรหัสการติดตั้งใด ๆ หากไม่มีกรอบในการติดตั้งโค้ดฉันมีอิสระที่จะเขียนการทดสอบครั้งแรกของฉันได้ แต่ฉันต้องการ แต่มันก็ดูจะเสียไปโดยวิธีการคิดแบบ Java / OO ของฉันเสมอ ตัวอย่างเช่นในGithub ConwaysGameOfLifeของฉันตัวอย่างการทดสอบครั้งแรกที่ฉันเขียน (rule1_zeroNeighbours) ฉันเริ่มต้นด้วยการสร้างวัตถุ GameOfLife ที่ยังไม่ได้ใช้งาน เรียกว่าชุดวิธีการที่ไม่มีอยู่วิธีการขั้นตอนที่ไม่มีอยู่วิธีรับที่ไม่มีอยู่แล้วใช้การยืนยัน การทดสอบพัฒนาขึ้นเมื่อฉันเขียนการทดสอบและปรับโครงสร้างใหม่ แต่เดิมแล้วมันมีลักษณะดังนี้: @Test public void rule1_zeroNeighbours() { GameOfLife gameOfLife = new GameOfLife(); gameOfLife.set(1, 1, true); gameOfLife.step(); assertEquals(false, gameOfLife.get(1, 1)); } สิ่งนี้รู้สึกแปลก ๆ เนื่องจากฉันถูกบังคับให้ออกแบบการนำไปใช้ตามวิธีที่ฉันตัดสินใจในช่วงแรกนี้เพื่อเขียนการทดสอบครั้งแรก ในวิธีที่คุณเข้าใจ TDD มันโอเคไหม? ฉันดูเหมือนจะปฏิบัติตามหลักการ TDD / XP ในการทดสอบและการใช้งานของฉันที่พัฒนาตลอดเวลาด้วยการปรับโครงสร้างใหม่และดังนั้นหากการออกแบบเริ่มต้นนี้ได้พิสูจน์แล้วว่าไร้ประโยชน์มันจะเปิดให้มีการเปลี่ยนแปลง แต่รู้สึกว่าฉันกำลังบังคับทิศทาง …

6
เหตุใดการเขียนโปรแกรมขั้นสูง (XP) จึงล้าสมัยเพื่อ Agile, Kanban และอื่น ๆ
ฉันชอบ XP (การเขียนโปรแกรมขั้นสูง) โดยเฉพาะอย่างยิ่งส่วนที่มีโปรแกรมเมอร์ 2 คนที่หน้าจอเดียวกันเนื่องจากวิธีแก้ปัญหามักจะพบได้เร็วขึ้นหากคุณเพียงอธิบายว่าคุณกำลังทำอะไรและจับคู่การเขียนโปรแกรมบังคับให้คุณอธิบายสิ่งที่คุณ การทำ ในช่วง 10 ปีที่ผ่านมารูปแบบการทำงานของ XP ดูเหมือนจะล้าสมัยไปแล้วเนื่องจากวิธีการทำงาน: Agile และ / หรือ Kanban ทำไม? ตั้งแต่ XP ดูเหมือนว่าฉันจะเป็นวิธีที่ดีมากในการทำงานและเป็นจำนวนมากเกี่ยวกับการเขียนโปรแกรมในขณะที่ Agile และ Kanban เป็นมากกว่าเกี่ยวกับกระบวนการ

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

1
อะไรคือความแตกต่างจากโมเดลการพัฒนาแบบผลักและดึง?
ผมอ่านมาก Programming อธิบาย, Second Editionและในบทที่ 11 "ทฤษฎีของข้อ จำกัด" ผู้เขียนพูดคุยเกี่ยวกับความเก่าและล้าสมัย"ดัน" การพัฒนารูปแบบและวิธีการ XP ที่"ดึง" รูปแบบการพัฒนา ดูเหมือนแนวคิดที่สำคัญ แต่จะมีเพียงย่อหน้าเล็ก ๆ และสองภาพเท่านั้นที่เป็นภาพประกอบของ "น้ำตก" และกระบวนการวนซ้ำไม่มีอะไรเฉพาะเจาะจงเกี่ยวกับโมเดลเหล่านี้ยกเว้นจากคำบรรยายภาพ ฉันค้นหาและไม่ไปเพิ่มเติมเกี่ยวกับเรื่องนี้ในส่วนที่เหลือของหนังสือ ฉันไม่สามารถหาคำอธิบายหรือการอภิปรายเพิ่มเติมในอินเทอร์เน็ตได้เช่นกัน หากความแตกต่างเพียงอย่างเดียวเกี่ยวกับสิ่งนั้นคือหนึ่งคือ"น้ำตก"และอีกอย่างหนึ่งคือซ้ำพวกเขาจะผลักทำไมและดึงทำไม? มีใครบ้างที่เข้าใจว่าอะไรคือความแตกต่างระหว่างทั้งสองกับตัวอย่างที่ดี?

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

1
การเขียนโปรแกรมขั้นสูงสำหรับนักพัฒนาคนเดียว [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันได้ทำงานร่วมกับแนวคิดการเขียนโปรแกรมขั้นพื้นฐานบางอย่างในช่วงสองสัปดาห์ที่ผ่านมาสำหรับเกมขนาดเล็กที่แสวงหาผลกำไรหลายคนและเกมอาร์เคด ฉันใช้เวลาหนึ่งสัปดาห์ในการพัฒนาเรื่องราวของผู้ใช้และการกำหนดข้อกำหนดเพื่อสร้างแผนการวางจำหน่าย ฉันใช้เวลาหนึ่งสัปดาห์ในการเขียนโค้ดและใช้แผนการทำซ้ำครั้งแรกที่ฉันทำ ฉันได้ระบุแนวคิดที่มีประโยชน์บางอย่างสำหรับนักพัฒนาเพียงคนเดียว บูรณาการอย่างต่อเนื่อง อย่าเพิ่มฟังก์ชันการทำงานก่อน ทดสอบการพัฒนาขับเคลื่อน เลือกคำอุปมาระบบ ใช้จุดบูรณาการเดียว ทดสอบข้อบกพร่องทั้งหมด refactor อย่างต่อเนื่อง กำหนดจังหวะที่ยั่งยืน ความง่าย เผยแพร่เป็นประจำ ฉันอยากรู้ว่าถ้าฉันขาดอะไรเป็นพิเศษที่อาจเหมาะกับการทำงานกับโครงการผู้พัฒนาเดียวหรือไม่ นอกจากนี้ในแง่นี้เนื่องจากความคิดของความเรียบง่ายและการพัฒนาที่ขับเคลื่อนด้วยการทดสอบจะดีกว่าหรือไม่ที่จะใช้แพลตฟอร์มที่มีคุณลักษณะหลากหลายและพร้อมทำหรือไม่? หรือฉันควรทำงานตั้งแต่เริ่มต้นเพื่อหลีกเลี่ยงปัญหาที่นำเสนอด้วยกฎเช่นการปรับโครงสร้างใหม่อย่างต่อเนื่องและไม่เพิ่มฟังก์ชันการทำงานก่อน

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

5
หนังสือที่ดีเกี่ยวกับ Scrum และ XP [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน7 ปีที่ผ่านมา ฉันต้องการทราบว่าคุณอยากแนะนำให้อ่านสำหรับ Scrum และ XP ฉันได้รับ Scrum และ xp จาก Trenches แต่ฉันอยากจะดูรอบ ๆ การอ้างอิงเพิ่มเติมที่คุ้มค่า
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.