ฉันเป็นผู้รับเหมาที่เพิ่งเริ่มต้นกับ บริษัท
ทีมคือนักพัฒนา 3 คนซึ่งประกอบด้วยผู้พัฒนา 2 คนถึงระดับกลางและอีกคนในระดับเดียวกันเริ่มเร็ว ๆ นี้และตัวฉันเอง (6 ปี xp) สำหรับนักพัฒนาทั้งสองที่มีอยู่มันเป็นงานแรกของพวกเขาที่ออกจากมหาวิทยาลัย / วิทยาลัยและพวกเขาไม่เคยมีนักพัฒนาอาวุโสที่ดูแลงานของพวกเขามาก่อน
ไม่มีนโยบายการควบคุมเวอร์ชันที่ชัดเจน นักพัฒนาทำการพัฒนาทั้งหมดบนลำตัวแล้วนำไปใช้กับการผลิตโดยตรงจากเครื่องพัฒนาของพวกเขา ทีมที่มีอยู่ไม่คุ้นเคยกับการแตกแขนง
ฉันกำลังเปลี่ยนแปลงทั้งหมดนี้และแนะนำเซิร์ฟเวอร์ CI, การทดสอบ TDD / การจัดเตรียม / การผลิต ฯลฯ พร้อมกับนโยบายการควบคุมเวอร์ชันเพื่อชมเชยสิ่งนี้
ระบบควบคุมแหล่งที่มาคือ TFS ซึ่งฉันไม่เคยใช้มาก่อน มันถูกกำหนดค่าให้เป็นแหล่งเก็บข้อมูลขนาดยักษ์
ฉันได้เขียนพอยน์เตอร์ให้กับพวกเขาแล้ว แต่มีอะไรอีกบ้างที่ฉันควรเพิ่ม / แก้ไขโดยคำนึงถึงประสบการณ์ของทีม
นโยบายการควบคุมเวอร์ชัน
การพัฒนาจะทำบนลำต้น
หากการเปลี่ยนแปลงคาดว่าจะใช้เวลานานกว่าหนึ่งสัปดาห์ก็ควรจะทำในสาขาที่มีการผสานปกติจากลำตัวเข้าไปในสาขาเพื่อหยุดทั้งสองออกจากซิงค์
สร้างสาขาย่อยสำหรับรหัสการผลิต สาขานั้นควรมีรหัสที่มั่นคงเท่านั้น เราสามารถมีสาขาย่อยหนึ่งสาขาที่ได้รับการอัพเดตจากลำตัวหนึ่งครั้งต่อการวิ่งหรือเราสามารถสร้างสาขาย่อยแยกต่างหากสำหรับแต่ละสัปดาห์
หากจำเป็นต้องแก้ไขข้อบกพร่องเร่งด่วนที่มีผลกระทบต่อรหัสการผลิตรหัสนั้นจะถูกสร้างขึ้นในสาขาที่วางจำหน่ายและผสานกลับเข้าไปในลำต้น
หากเรานำกลยุทธ์การเปิดตัวสาขาหนึ่งมาใช้ลำต้นจะถูกรวมเข้ากับสาขาที่วางจำหน่ายหนึ่งครั้งต่อการวิ่งไปยังจุดสิ้นสุดของการวิ่ง
ถ้าเราใช้สาขาแยกต่อกลยุทธ์การปล่อยแล้วลำตัวไม่เคยถูกรวมเข้ากับสาขาการปล่อย
ในบางสถานการณ์อาจจำเป็นต้องทำการแก้ไขข้อบกพร่องสองครั้งในสาขาที่แตกต่างกันหากสาขาแยกกันมากเกินไป หากเรากำลังวิ่งสั้น ๆ สิ่งนี้ไม่ควรเกิดขึ้นบ่อยเกินไป
ฉันวางแผนที่จะมีสามเซิร์ฟเวอร์ สภาพแวดล้อมการทดสอบที่ใช้รหัสล่าสุดใน repo เสมอ สภาวะแวดล้อมการเตรียมใช้ซึ่งเรียกใช้ตัวเลือกรีลีสล่าสุดสำหรับการจัดเตรียม / การทดสอบรหัสผู้สมัครและวัตถุประสงค์ UAT และสภาพแวดล้อมการใช้งานจริง
เหตุผลที่ฉันวางแผนที่จะทำเช่นนี้คือจนถึงลูกค้าได้ทำซอฟต์แวร์ภายในเท่านั้น โครงการใหม่ล่าสุดสำหรับลูกค้าสื่อที่มีชื่อเสียงและความรู้สึกของฉันคือทีมจำเป็นต้องใช้รูปแบบการพัฒนาที่เป็นมืออาชีพมากกว่าสิ่งที่พวกเขาทำในขณะนี้
ตัวอย่างเช่นในขณะนี้ผู้ใช้อาจโทรศัพท์ถึงทีมพร้อมรายงานข้อผิดพลาด ผู้พัฒนาค้นหาและแก้ไขข้อผิดพลาดทำการทดสอบการทดสอบลูกตาอย่างรวดเร็วบนเครื่องของตนเองแล้วนำไปใช้กับการผลิตโดยตรง ไม่มีการทดสอบอัตโนมัติหรืออะไร
ในอดีตฉันคิดว่าสาขาคุณลักษณะเป็นขั้นตอนที่ไกลเกินไปและฉันจะลบมัน
ดังนั้นโดยพื้นฐานแล้วมันจะลงไปที่ a) ไม่มีการแตกแขนงเลย b) สาขาย่อยและลำตัวและ c) สาขาย่อยต่อปล่อยและลำตัว
ฉันเอนตัวไปข้างหลัง ความคิดเริ่มต้นของฉันคือฉันจะมีทั้งตัวเลือกการเปิดตัวและการเปิดตัวที่จะเผยแพร่บนเซิร์ฟเวอร์ที่แยกต่างหาก (UAT / การผลิต) ในเวลาเดียวกัน การเปิดตัวจะเอนไปทางบ้า ความคิดเดียวของฉันคือถ้าเราไม่ต้องการให้ผู้มีส่วนได้ส่วนเสียของเราเห็นรหัสการพัฒนาเราอาจต้องการสาขาผู้สมัครแยกต่างหาก แต่ YAGNI และทั้งหมดนั้น .....