โปรแกรมเมอร์ควรแก้ไขงานสร้างที่ล้มเหลวของคนอื่นหรือไม่? [ปิด]


45

โปรแกรมเมอร์คนหนึ่งมอบหมายงานบางอย่างให้กับที่เก็บ SVN จากนั้นกลับบ้าน หลังจากที่เขาจากไปการสร้างอัตโนมัติของฮัดสันล้มเหลว โปรแกรมเมอร์คนอื่นเห็นสิ่งนี้และหลังจากตรวจสอบการเปลี่ยนแปลงรหัสตรวจพบว่าปัญหาคือการขาดงานของหนึ่งไลบรารี เขาเพิ่มไลบรารีนี้ไปยัง SVN และการสร้างถัดไปเสร็จสมบูรณ์

โปรแกรมเมอร์คนที่สองทำสิ่งที่ถูกต้องหรือควรรอจนกระทั่งโปรแกรมเมอร์คนแรกแก้ไขปัญหาได้หรือไม่


31
คำถาม: สมาชิกโปรแกรมเมอร์หนึ่งคนถามคำถาม สมาชิกอีกคนอ่านคำถามและเห็นข้อผิดพลาดทางไวยากรณ์และไวยากรณ์ดังนั้นเขาจึงตัดสินใจที่จะแก้ไขคำถามและแก้ไขให้ถูกต้องเพื่อทำให้คำถามอ่านง่ายขึ้นเล็กน้อย สิ่งที่บรรณาธิการทำถูกต้องหรือเขาควรรอให้ผู้โพสต์แก้ไขข้อผิดพลาด?
yannis

2
ทีมของคุณมีกฎอะไรสำหรับสถานการณ์นี้

4
@nahab โอ้ไม่ต้องกังวลฉันไม่ได้บอกว่ามันเป็นปัญหา :) เพียงแค่ในชุมชนเช่นเดียวกับในทีมสมาชิกที่ช่วยเหลือซึ่งกันและกันควรได้รับการส่งเสริม นอกจากนี้ฉันไม่คิดว่านักพัฒนาที่ทำลายงานสร้างจะไม่เป็นมืออาชีพแม้ว่าจะมีข้อผิดพลาดเล็กน้อยสิ่งเหล่านี้เกิดขึ้นกับเราได้ดีที่สุด
yannis

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

14
สิ่งนี้จะเข้าใจได้ง่ายกว่าถ้าคุณพิจารณาสิ่งที่ตรงกันข้าม - ถ้าสิ่งก่อสร้างพังลงทำให้ทีมทั้งหมดช้าลง (แม้กระทั่งที่บ้านหลังเวลาทำการ) และคุณสามารถแก้ไขได้ คุณควรได้รับอนุญาตให้ทำงานของคุณหรือไม่
Bill K

คำตอบ:


87

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

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


101
มันสุภาพสำหรับนักพัฒนาคนแรกที่ซื้อโดนัทเพื่อชดเชยการสร้าง
เจเค

17
ฉันต้องการเบียร์มากกว่าโดนัท
Martin York

2
โดนัทอาจเป็นที่น่ารังเกียจต่อกลูเตนที่ไม่ยอมแพ้ A $ 5 บัตรของขวัญให้กับ Best Buy, บนมืออื่น ๆ ...
คริสฮัน

1
@ChristopherMahan จะส่งผลให้เกิดการต่อสู้ระหว่างสมาชิกในทีมทุกคนที่ได้รับมัน หรือถ้าให้สมาชิกในทีมคนหนึ่งเช่นการแจกจ่ายโดยปริยายจากกล่องโดนัทในห้องเบรกเป็นข้อเสนอที่แพงกว่ามาก และในกรณีใด ๆ บัตรของขวัญ Best Buy อาจสร้างความไม่พอใจให้กับทุกคนที่เคยทำงานให้กับ Circuit City หรือ CompUSA :)
Dan Neely

1
คุณจะได้อะไรบ้างที่ Best Buy ในราคาต่ำกว่า $ 5
วินไคลน์

12

มันขึ้นอยู่กับ.

  • จุดบกพร่องที่เห็นได้ชัดคือการเพิ่มห้องสมุดเป็นวิธีการแก้ไขหรือไม่? บางครั้งการแก้ไขอยู่ในการค้นหาวิธีแก้ปัญหาโดยไม่ต้องใช้ไลบรารีนั้น

  • โครงการอยู่ในเฟสที่การเปลี่ยนแปลงทั้งหมดจะต้องเชื่อมโยงกับตั๋วที่มีอยู่หรือไม่ ถ้าเป็นเช่นนั้นคุณยื่นตั๋วหรือไม่ ตั๋วนั้นมอบให้คุณหรือไม่?

อย่างไรก็ตามให้ความสำคัญกับการแก้ไขข้อผิดพลาดไม่ได้อยู่ที่การตำหนิผู้รับผิดชอบ


9
"... ไม่โทษผู้ที่รับผิดชอบ" เว้นแต่จะเป็นเหตุการณ์ปกติ
Shawn D.

11

ใช่มันไม่เป็นไร อย่างไรก็ตามมันไม่เป็นมืออาชีพสำหรับโปรแกรมเมอร์ดั้งเดิมที่จะกลับบ้านก่อนที่จะทดสอบว่าบิลด์จะรวบรวม

ชื่อเสียงของคุณคือ 100% ในการควบคุมของคุณ สิ่งเช่นนี้ทำให้ชื่อเสียงของคุณเสื่อมเสียและการพยายามขัดชื่อเสียงที่เสื่อมเสียนั้นยากมาก


2
+1 สำหรับการวางความรับผิดชอบในผู้พัฒนารายแรกเพื่อทดสอบการสร้าง ย่อหน้าที่สองไม่จริงหรือเกี่ยวข้อง คนอื่นสามารถสร้างความเสียหายต่อชื่อเสียงของคุณไม่ว่าจะโดยเจตนาหรือไม่ก็ตามแม้ว่าพฤติกรรมของคุณจะเหนือกว่าคู่แข่งอย่างสมบูรณ์ก็ตาม
Caleb

6
เป็นไปได้อย่างสิ้นเชิงที่โปรแกรมเมอร์ดั้งเดิมมีห้องสมุดอยู่ในเครื่องของเขา แต่เครื่องที่สร้างอัตโนมัติไม่ได้ทำ ใช่ห้องสมุดควรอยู่ใน SVN แต่นี่อาจเป็นปัญหาที่ละเอียดอ่อนมากที่จะไม่สังเกตเห็นแม้แต่น้อย
mpdonadio

7

สื่อสาร

ไม่มีกฎที่เข้มงวด (ข้างกฎทีมของคุณเอง) สำหรับสถานการณ์เหล่านั้น

Dev2 ควรจะบอก dev1 ได้ว่าเขาสามารถแก้ไขข้อผิดพลาดได้ไม่ว่าใครก็กลัวสิ่งที่เกิดจากการแลกเปลี่ยนพวกเขาเป็นส่วนหนึ่งของทีม


5

ทำไมจะไม่ล่ะ? หากผลิตภัณฑ์ของคุณมีความสำคัญมากกว่าการแก้ไขความผิดพลาดแน่นอนว่าเป็นสิ่งที่ถูกต้อง แม้ว่าบิวด์ที่ล้มเหลวเนื่องจากการเปลี่ยนแปลงของไลบรารี่นั้นค่อนข้างง่อยและคุณจำเป็นต้องตำหนินักพัฒนาเพื่อไม่ทำการทดสอบ


3

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

อย่างที่ได้รับการกล่าวว่าคนที่แก้ไขมันควรจะส่งอีเมลถึงคนที่ทำลายมันและรายละเอียดว่าการแก้ไขคืออะไร


2

คติประจำใจของฉันคืออย่าผูกมัดกับ SVN หลังจาก 15.00 น. ในแบบที่คุณสามารถแก้ไขความล้มเหลวในการสร้างของคุณเองได้เสมอ

หากคุณไม่แก้ไขความล้มเหลวในการสร้างของเขา / เธอการสร้างของคนอื่นจะล้มเหลวเช่นกัน ฉันจะแก้ไขเพื่อประหยัดเวลาในระยะยาว แต่ให้แน่ใจว่าพวกเขาทราบว่าคุณต้องแก้ไข

การมีสคริปต์ 'ชี้นิ้วแห่งการตำหนิ' เป็นวิธีที่ดีในการทำเช่นนี้หรือทำให้คนที่ทำลายการซื้อโดนัท !!


2
เครื่องมือ CI ของเรามีตัวเลือกในการส่งอีเมลไปยังนักพัฒนาที่ทำลายโครงสร้าง (นอกเหนือจากส่วนที่เหลือของทีม)
TMN

2

มีคนต้องการแก้ไขและโปรแกรมเมอร์คนแรกไม่ควรกลับบ้านโดยไม่ได้ตรวจสอบก่อนว่าเขาไม่ได้สร้างสิ่งที่ขาด อย่างไรก็ตามสำหรับปัญหาดังกล่าวที่แก้ไขได้ง่ายการเรียกเขากลับมาเพื่อแก้ไขด้วยตัวเองจะรุนแรงมาก

ฉันเห็นด้วยกับข้อเสนอแนะของลุคเกรแฮมในการส่งอีเมลอธิบายแม้ว่าฉันจะบอกว่ามันเป็นมากกว่าความสุภาพ - เป็นการสื่อสารขั้นพื้นฐาน


ด้วยการรวมการสร้างบางครั้งใช้เวลาหนึ่งชั่วโมงหรือมากกว่านั้นขึ้นอยู่กับความซับซ้อนของระบบของคุณคุณจะต้องใช้ "การตัดทอน" ทุกวันเพื่อให้แน่ใจว่าการสร้างครั้งสุดท้ายของวันจะเกิดขึ้นในขณะที่ทุกคนยังคงอยู่ ถึงอย่างนั้นคนก็มีนัดกับแพทย์ฝึกซ้อมฟุตบอลเด็กและอื่น ๆ และต้องรีบออกไปทันทีโดยไม่คำนึงถึงสถานะการสร้าง Agile กล่าวว่างานควรเป็นงานที่ยั่งยืนและไม่ควรเป็นงานที่ต้องทำ ทำให้พวกเขาอยู่ที่นั่นจนถึง 8:00 น. เพื่อดูงานสร้างที่ประสบความสำเร็จ
KeithS

@ KeithS: จริง แต่ฉันพบว่าไม่ว่าฉันจะจากไปไหนเวลาที่เป็นไปได้มากที่สุดที่ฉันจะทำลายสิ่งปลูกสร้างคือเมื่อฉันรีบร้อน: ก่อนอาหารเที่ยงก่อนการประชุมทันทีก่อนที่จะสิ้นวัน ดังนั้นฉันคิดว่ามันเป็น "แนวปฏิบัติที่ดีที่สุด" ที่จะไม่ทำอะไรเลยเมื่อไม่มีเวลามากพอที่จะดูและแก้ไขการสร้างในภายหลัง
Daniel Pryden

2

ใช่ใช่ใช่! มันส่งเสริมการเป็นเจ้าของรหัสส่วนรวมและกำหนดชนิดของแรงกดดันที่ดีต่อสุขภาพในทีมเพื่อรักษามาตรฐานที่สูงและไม่ปล่อยให้สถานการณ์หน้าต่างแตกพัฒนา การสื่อสารเล็กน้อยเพื่อให้นักพัฒนาซอฟต์แวร์คนอื่นรู้ว่าเป็นความคิดที่ดี


2

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

โดยทั่วไปแล้วกฎทั่วไปคือ: คุณทำลายบิลด์ - คุณแก้ไขบิลด์ แต่มีข้อยกเว้นโดยเฉพาะอย่างยิ่งถ้าการแก้ไขนั้นชัดเจนและ / หรือบุคคลที่รับผิดชอบไม่สามารถเข้าถึงได้

แน่นอนว่าถ้าคุณมีกรณีของตัวต่ออนุกรมบิลด์ - โดยเฉพาะอย่างยิ่งกับรูปแบบ "เช็คอินกลับบ้านสร้างเสียเป็นวัน ๆ " - ผู้รับผิดชอบต้องได้รับการพูดคุยเกี่ยวกับสาเหตุที่ระบบ CI และการทดสอบมีอยู่ ตรวจสอบก่อนที่จะเช็คอิน :)


1

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

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


1

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


0

มันก็โอเคที่จะแก้ไขเว้นแต่กรณีนี้จะเกิดขึ้นเป็นประจำในกรณีที่ฉันต้องการให้เจ้านายเรียกเขาและทำให้เขากลับมาและแก้ไขด้วยตัวเอง


0

มันขึ้นอยู่กับว่า ...

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

อย่างไรก็ตามการมีคนล่าสุดที่ทำลายการสร้างหมวกแปลก ๆ ก็เพียงพอที่จะให้ความสนใจมากขึ้นในครั้งต่อไป ^ _ ^


0

ในบางสภาพแวดล้อมนี่เป็นสิ่งที่หยาบคายมากและด้วยเหตุผลที่ดี ในสภาพแวดล้อมอื่น ๆ เป็นไปตามที่คาดหวังและด้วยเหตุผลที่ดี

ในสภาพแวดล้อมอื่น ๆ มันหยาบคายหรือคาดหวังมากด้วยเหตุผลที่ไม่ดี

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


0

ครั้งแรก 'กลับบ้าน' เป็นสมัย โปรแกรมเมอร์ไม่กลับบ้านอีกต่อไป - เป็นเพียงออนไลน์หรือออฟไลน์ คุณสามารถปิงและรอ

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.