คำถามติดแท็ก code-ownership

ความเป็นเจ้าของโค้ดคือแนวคิดของผู้ที่รับผิดชอบในการกำกับดูแลการบำรุงรักษาและการอัปเดตบล็อกโค้ดเฉพาะ สถานที่บางแห่งมีนโยบายการเป็นเจ้าของรหัสโดยรวมส่วนบางแห่งกำหนดให้บางคนลงนามในการเปลี่ยนแปลงส่วนที่ระบุของโค้ดที่พวกเขาเป็นผู้เชี่ยวชาญ

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

6
วิธีจัดการกับความกลัวในการพึ่งพา
ทีมของฉันในการสร้างส่วนประกอบที่พันธมิตรของ บริษัท สามารถใช้เพื่อรวมเข้ากับแพลตฟอร์มของเรา ดังนั้นฉันเห็นด้วยที่เราควรใช้ความระมัดระวังเป็นอย่างยิ่งเมื่อแนะนำบุคคลที่สาม (อ้างอิง) ขณะนี้เราไม่มีการพึ่งพาของบุคคลที่สามและเราต้องอยู่ในระดับ API ต่ำสุดของกรอบงาน ตัวอย่างบางส่วน: เราถูกบังคับให้อยู่ในระดับ API ต่ำสุดของกรอบงาน (. NET Standard) เหตุผลเบื้องหลังสิ่งนี้คือว่าแพลตฟอร์มใหม่อาจมาถึงวันหนึ่งที่รองรับเฉพาะระดับ API ที่ต่ำมากเท่านั้น เราได้ดำเนินการส่วนประกอบของเราเองสำหรับ (de) การทำให้เป็นอันดับ JSON และอยู่ในกระบวนการของการทำเช่นเดียวกันสำหรับ JWT สิ่งนี้มีอยู่ในเฟรมเวิร์ก API ที่สูงขึ้น เราได้นำ wrapper ไปใช้กับเฟรมเวิร์ก HTTP ของไลบรารี่มาตรฐานเพราะเราไม่ต้องการพึ่งพาการใช้ HTTP ของไลบรารี่มาตรฐาน รหัสทั้งหมดสำหรับการจับคู่กับ / จาก XML ถูกเขียน "ด้วยมือ" อีกครั้งด้วยเหตุผลเดียวกัน ฉันรู้สึกว่าเรากำลังจะไปไกลเกินไป ฉันสงสัยว่าจะจัดการกับเรื่องนี้อย่างไรตั้งแต่นี้ฉันคิดว่าสิ่งนี้มีผลกระทบอย่างมากต่อความเร็วของเรา

13
* เจ้าของรหัส * ระบบ: มันเป็นวิธีที่มีประสิทธิภาพหรือไม่ [ปิด]
มีนักพัฒนาใหม่ในทีมของเรา วิธีการคล่องตัวในการใช้งานที่ บริษัท ของเรา แต่นักพัฒนามีประสบการณ์อื่น: เขาคิดว่าส่วนใดส่วนหนึ่งของรหัสจะต้องกำหนดให้กับนักพัฒนาโดยเฉพาะ ดังนั้นหากผู้พัฒนารายหนึ่งได้สร้างโพรซีเดอร์โปรแกรมหรือโมดูลก็จะถือว่าเป็นเรื่องปกติที่เขา / เธอจะต้องทำการเปลี่ยนแปลงขั้นตอน / โมดูลทั้งหมดเท่านั้น ในอีกด้านหนึ่งสมมุติว่าด้วยวิธีการที่เสนอเราประหยัดเวลาในการพัฒนาร่วมกันเพราะนักพัฒนาแต่ละคนรู้ดีว่าส่วนหนึ่งของโค้ดของเขานั้นดีและทำการแก้ไขอย่างรวดเร็ว ข้อเสียคือผู้พัฒนาไม่รู้จักระบบทั้งหมด คุณคิดว่าวิธีนี้ใช้ได้ผลดีกับระบบขนาดกลาง (การพัฒนาเว็บไซต์เครือข่ายสังคม) หรือไม่?

13
การเป็นเจ้าของรหัสบุคคลนั้นสำคัญหรือไม่ [ปิด]
ฉันอยู่ท่ามกลางการโต้เถียงกับเพื่อนร่วมงานบางคนว่าการเป็นเจ้าของทีมของ codebase ทั้งหมดนั้นดีกว่าการเป็นเจ้าของส่วนประกอบของมันหรือไม่ ฉันเป็นผู้สนับสนุนที่ยิ่งใหญ่ในการมอบหมายให้สมาชิกทุกคนในทีมมีส่วนแบ่งเท่า ๆ กันของ codebase มันช่วยให้ผู้คนมีความภาคภูมิใจในการสร้างของพวกเขาให้ผู้คัดกรองข้อผิดพลาดเป็นที่แรกที่ชัดเจนในการกำหนดตั๋วเข้ามาและช่วยในการบรรเทา "โรคหน้าต่างแตก" นอกจากนี้ยังมุ่งเน้นความรู้เกี่ยวกับการทำงานเฉพาะกับสมาชิกหนึ่งคน (หรือสองคน) ทำให้การแก้ไขข้อผิดพลาดง่ายขึ้นมาก สิ่งสำคัญที่สุดคือทำให้การตัดสินใจครั้งสุดท้ายในการตัดสินใจที่สำคัญกับคนคนหนึ่งที่มีการป้อนข้อมูลจำนวนมากแทนที่จะเป็นคณะกรรมการ ฉันไม่สนับสนุนการขออนุญาตหากมีคนต้องการเปลี่ยนรหัสของคุณ อาจมีการตรวจสอบรหัสให้กับเจ้าของอยู่เสมอ หรือฉันไม่แนะนำให้สร้างไซโลความรู้: ไม่ควรมีสิ่งใดเป็นพิเศษเกี่ยวกับความเป็นเจ้าของนี้ แต่เมื่อแนะนำสิ่งนี้กับเพื่อนร่วมงานของฉันฉันได้รับการผลักกลับมามากมายแน่นอนกว่าที่ฉันคาดไว้มาก ดังนั้นฉันจึงถามชุมชน: คุณมีความคิดเห็นอย่างไรกับการทำงานกับทีมใน codebase ขนาดใหญ่? มีบางอย่างที่ฉันขาดหายไปเกี่ยวกับการรักษาความเป็นเจ้าของร่วมอย่างระมัดระวังหรือไม่?

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

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

12
อารมณ์ที่แนบมากับรหัส [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ในฐานะพนักงานของ บริษัท เมื่อคุณเขียนโค้ดคุณรู้สึกว่าคุณมีไฟล์แนบหรือไม่ คุณรู้สึกว่าคุณเป็นเจ้าของรหัสหรือไม่ หรือคุณเขียนมันแยกออกจากมันโดยไม่ต้องกังวลว่าจะเกิดอะไรขึ้นกับมันหลังจากที่คุณย้ายไปทำอย่างอื่นหรือไม่? แก้ไข: ฉันไม่ได้พูดเกี่ยวกับการเขียนรหัสที่ไม่ดีและจากนั้นทำงาน ...

2
การเป็นเจ้าของคุณลักษณะเป็นการปฏิบัติที่ดีหรือไม่?
เมื่อเร็ว ๆ นี้ใน บริษัท ของฉันมีคนแนะนำว่าหนึ่งนักพัฒนาควรมุ่งเน้น นั่นจะหมายถึงบางสิ่งบางอย่างเช่นการตั้งค่าผู้พัฒนานอกเหนือจากรูทีนทีมปกติปล่อยความรับผิดชอบอื่น ๆ (การประชุมและอื่น ๆ ) และบุคคลนี้จะเป็น "คนเดียว" ที่รับผิดชอบในคุณสมบัติเทคโนโลยีที่ชาญฉลาด สำหรับบันทึกเราใช้ SCRUM ภายใน SAFe และเรามีนักพัฒนาเต็มเวลาต่อทีมแบ่งปัน QA และเจ้าของผลิตภัณฑ์ระหว่างสองทีมของเรา (Android และ iOS) ในขณะที่ฉันยอมรับว่าสิ่งนี้จะเพิ่มผลผลิตในระยะสั้นฉันมีความรู้สึก (และฉันคิดว่าฉันได้เรียนรู้ในมหาวิทยาลัย) ว่านี่เป็นการฝึกฝนที่ไม่ดีด้วยเหตุผลหลายประการ: การตรวจสอบรหัสจะเสียค่า แบ่งปันความรู้น้อยที่สุด การเพิ่มความเสี่ยง การสูญเสียความยืดหยุ่นของทีม ฉันถูกหรือว่าไม่ใช่การปฏิบัติที่ไม่ดีเลย?

3
ใครเป็นเจ้าของรหัสถ้าโครงการถูกยกเลิก [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ปัญหา: ฉันทำงานในตลาดอิสระและฉันตัดสินใจยกเลิกโครงการกับหนึ่งในลูกค้าของฉันเพราะลูกค้าเป็นไปไม่ได้ที่จะทำงานกับความล่าช้าที่ไม่ จำกัด และข้อบกพร่องมากมายในแบ็กเอนด์ของเขา ฉันต้องการคืนเงินให้เขาบางส่วน (บางส่วนเพราะฉันทำงานสองเดือนและมีรหัส 3k บรรทัดแม้ว่าแอปพลิเคชันยังไม่ทำงานเนื่องจากปัญหาจากแบ็กเอนด์ของเขา) คำถาม: ใครคือ "เจ้าของ" ของรหัสที่ฉันได้เขียน? เราไม่ได้ตกลงเกี่ยวกับเรื่องนี้เมื่อโครงการเริ่มต้นขึ้น ฉันจะบอกให้เขาไม่ใช้รหัสได้หรือไม่? ฉันเข้าใจว่าเขาสามารถเพิกเฉยต่อการห้ามของฉันต่อไปฉันแค่อยากรู้ว่าฉันมี "สิทธิ" อย่างเป็นทางการที่จะพูดเช่นนั้น

4
"ทีมศัลยกรรม" ของ Fred Brooks จัดการกับปัจจัยรถบัสได้อย่างมีประสิทธิภาพหรือไม่?
ทีมนักพัฒนาที่มีประสบการณ์ 4 คนของฉันทำงานบนแอพพลิเคชั่น Windows ขนาดใหญ่ (ประมาณ 200 KLoC) ฉันได้มุ่งเน้นไปที่ codebase หลักตั้งแต่จุดเริ่มต้นของโครงการ (3 ปีที่แล้ว) และค่อยๆเปลี่ยนไปสู่ตำแหน่งผู้พัฒนากึ่งนำแม้ว่าฉันไม่ใช่ผู้จัดการทีม การวนซ้ำปัจจุบันของเราคือการรีเฟรช UI ที่มีลำดับความสำคัญสูงที่ผู้บริหารระดับสูงร้องขอซึ่งเกี่ยวข้องกับการเปลี่ยนแปลงประมาณ 15 ครั้งในฐานข้อมูลหลัก เมื่อผู้จัดการถามฉันฉันคาดว่าการเปลี่ยนแปลงทั้ง 15 ครั้งจะใช้เวลาน้อยกว่าสี่ชั่วโมงกว่าจะเสร็จสมบูรณ์รวมน้อยกว่า 7 วันทำงาน ฉันอาสาไปทำงาน ผู้จัดการตัดสินใจที่จะแบ่งงานทั้ง 15 ให้กับนักพัฒนาทั้งสี่คนอย่างเท่าเทียมกัน ในสามวันนับตั้งแต่เราเริ่มทำงานฉันได้สังเกตสองสิ่ง: สมาชิกในทีมที่ไม่มีประสบการณ์คนอื่น ๆ ทำภารกิจอย่างน้อย 1 อย่างให้เสร็จ กฎหมายของ Brook ใช้งานได้ : ฉันใช้เวลาประมาณครึ่งหนึ่งในการให้ความช่วยเหลือ (พยายามสอนพวกเขาเกี่ยวกับการใช้ส่วนประกอบ) เป็นผลให้ฉันทำงาน 2 อย่างด้วยตัวเองแทนที่จะเป็น 5 หรือ 6 อย่างที่คาดไว้ ฉันเข้าหาผู้จัดการด้วยความกังวลว่าเรามาช้าและแนะนำอีกครั้งว่าฉันทำภารกิจที่เหลือให้เสร็จ คำขอของฉันถูกปฏิเสธอย่างสุภาพและเหตุผลที่กล่าวไว้ในการแบ่งโหลดอย่างเท่าเทียมกันนั้นเป็นสองเท่า: จำกัดปัจจัยรถบรรทุก …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.