เรามีโครงการขนาดใหญ่มากซึ่งรวมถึงแอปพลิเคชั่นหลายตัวที่ทำหน้าที่เป็นฐานสำหรับลูกค้าที่แตกต่างกัน
ลูกค้าทุกคนมีความเป็นตัวของตัวเองของผลิตภัณฑ์เหตุการณ์สำคัญที่แตกต่างกันข้อกำหนดที่แตกต่างและอื่น ๆ และดังนั้นแต่ละโครงการจะพัฒนาอย่างอิสระตามความต้องการของตนเอง
แกนหลักของโครงการนั้นคล้ายกัน (แต่ไม่เท่ากัน) ในทุกโครงการและองค์กรถูกสร้างขึ้นเพื่อให้มีทีมที่จัดการลูกค้าแต่ละรายอย่างอิสระ (แต่มีการสื่อสารระหว่างกันตามความจำเป็น) จนถึงตอนนี้ฉันไม่สามารถค้นหารูปแบบที่เหมาะสมกับความต้องการของเราไม่ว่าจะโดยการค้นหาทางอินเทอร์เน็ตหรือคิดหาไอเดียที่ยอดเยี่ยม :)
จนถึงตอนนี้เราได้ทำงานโดยทำให้ผลิตภัณฑ์เป็นแบบที่ทุกความต้องการโดยมีสาขาเฉพาะสำหรับการเปลี่ยนแปลงที่จำเป็น แต่แม้ว่าผลิตภัณฑ์จะมีสถาปัตยกรรมที่ดี แต่มันก็กลายเป็นปัญหาใหญ่อย่างช้า ๆ นี่คือปัญหาหลักที่เราเผชิญ:
- เหตุการณ์สำคัญที่แตกต่างกันสำหรับลูกค้าแต่ละคน: ซึ่งหมายความว่าแต่ละทีมจะต้องผลิตเวอร์ชันเป็นเวลาที่แตกต่างกันโดยไม่มีการกระทำที่เหลือส่งผลต่อความมั่นคงหรือผลิตภัณฑ์
- ข้อกำหนดที่แตกต่างกันซึ่งอาจหรืออาจจะไม่ส่งผลกระทบต่อหลักของระบบในบางกรณี
- ทีมใหญ่ (20+ สมาชิกในทีม)
- การจัดการข้อบกพร่องในระบบ: คุณจะทำอย่างไรถ้าทีมพบข้อบกพร่องในโครงการของเขาที่อาจส่งผลกระทบต่อลูกค้ารายอื่น
หมายเหตุ:เรากำลังพูดถึงโครงการที่มี 10 + M LOC
หมายเหตุ:เรากำลังใช้ Team Foundation System, Visual Studio 2008 และ C # (ส่วนใหญ่)
ข้อเสนอแนะแหล่งที่มาหรือแนวคิดเกี่ยวกับวิธีการแก้ไขสถานการณ์? มีรุ่นใดในตลาดที่มีปัญหาคล้ายกันหรือไม่?