แก้ไขข้อผิดพลาดที่ไม่เคยทำให้เกิดปัญหามาจนถึงตอนนี้


20

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

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

ชัดเจนสำหรับฉันที่เราเพิ่งโชคดีจนถึงตอนนี้ แต่เขาจะไม่ฟังเหตุผล

ฉันควรจะแก้ไขหรือไม่

ปรับปรุง

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


มันเป็นข้อผิดพลาดที่เกี่ยวข้องกับเกลียวหรืออย่างอื่น?
TheLQ

3
เขาเป็นเจ้านายด้วยเหตุผล เมื่อคนเซ่อชนแฟนเขาจะเป็นคนที่พวกเขาย่าง ถ้าเขาย่างเพราะคุณไม่ได้ทำในสิ่งที่เขาถามคุณจะต้องใช้ไม้พายขนาดใหญ่
Martin York

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

3
อืมถ้า "มันพัง - เป็นการตีความนวนิยายฉันจะให้เขาอย่างนั้น
Orbling

1
"ถ้ามันไม่พังไม่ต้องแก้ไข"? แต่มันก็ยากจน
StuperUser

คำตอบ:


26

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


9
ข้อควรจำ: Cover Your Ass :-)
gruszczy

1
ไม่โชคดีมาก ทุกอย่างเป็นที่นั่งของกางเกง ไม่มีการติดตามบั๊กไม่มีการรวบรวมความต้องการไม่มีการทดสอบ อาจไม่มีการควบคุมเวอร์ชันหากฝ่ายบริหารไม่ได้ยืนยัน
Kenneth Cochran

18
จากคำอธิบายสภาพแวดล้อมการทำงานของคุณคุณควรจะพยักหน้าและยิ้มเมื่อผู้นำการพัฒนาบอกให้คุณไม่แก้ไขและจากนั้นไปข้างหน้าและทำสิ่งที่คุณต้องการจะทำต่อไป
Carson63000

2
และอย่าถามคำถามดังกล่าวในครั้งต่อไป :-)
gruszczy

2
@codeelegance: "ไม่มีการติดตามบั๊กไม่มีการรวบรวมความต้องการไม่มีการทดสอบอาจจะไม่มีการควบคุมเวอร์ชันหากฝ่ายบริหารไม่ได้ยืนยัน" - พระมารดาของพระนางหวานมาเรีย !! 1 !! สภาพแวดล้อมนั้นตั้งอยู่อย่างสิ้นเชิงประชดชื่อผู้ใช้ของคุณ :)
Bobby Tables

8

โดยส่วนตัวฉันจะแก้ไขเว้นแต่จะต้องใช้ความพยายามมากกว่าจำนวนที่คุ้มค่า "หากยังไม่พังอย่าแก้ไข" น่ากลัวที่จะใช้กับซอฟต์แวร์

หากนักพัฒนานำของคุณคือหัวหน้าของคุณและเขาบอกว่าอย่าแตะต้องมันในกรณีนั้นฉันจะไม่ทำเช่นนั้น


2
พวกเขาสายมานานแค่ไหน? นี่อาจเป็นการฆ่าตัวตายที่มีศักยภาพ
งาน

8
"หากยังไม่พังก็ไม่สามารถแก้ไขได้" เป็นกฎที่ดีในการใช้กับซอฟต์แวร์ - ไม่ใช่เมื่อซอฟต์แวร์เสียหาย
Steve314

หากไม่สามารถแก้ไขได้อย่าใช้กับซอฟต์แวร์โดยขึ้นอยู่กับความหมายของรหัสที่ใช้งานไม่ได้ ช่วงเวลาที่คุณนั่งลงและจ้องที่รหัสที่จำเป็นต้องได้รับการแก้ไขอย่างชัดเจนมันจะเสีย ในขณะที่คุณเริ่มใช้การแก้ปัญหาสำหรับรหัสที่ใช้งานไม่ได้คุณกำลังทำงานไปข้างหลังและในเวลาที่รหัสที่ใช้งานไม่ได้จะยากและแก้ไขได้ยาก ...
Ernelli

2

คำตอบและความคิดเห็นส่วนใหญ่แนะนำให้ลดความรับผิดชอบในการตัดสินใจโดยการสร้างรายงานบั๊กและปล่อยให้คนอื่นโทรออก

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

ไม่ใช่โซลูชันที่สมบูรณ์แบบ แต่อย่างน้อยข้อผิดพลาดได้รับการแก้ไขอย่างถูกต้อง


คุณทำงานในสายการบังคับบัญชาและครอบคลุมถึงก้นของคุณ การใช้ซอฟต์แวร์การติดตามข้อผิดพลาดเป็นสิ่งที่ บริษัท ของคุณควรพิจารณาก็จะช่วยอย่างน้อยติดตามสิ่งเช่นนี้และคำขอคุณลักษณะ ฯลฯ
Berin Loritsch

2

เตือนเขาว่าวลีคือ "หากยังไม่พังไม่ต้องแก้ไข" และไม่ใช่ "หากลูกค้าไม่ได้สังเกตเห็นอย่าแก้ไขมัน"


1

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


อย่างน้อยคุณก็มีทางเลือกต่าง ๆ อยู่ในใจของฉัน:

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

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


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

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

1

ในขณะที่สัญชาตญาณที่ท่วมท้นของฉันจะแก้ไขข้อบกพร่องที่ไม่ซ่อนปัญหา แต่ก็มีบางสถานการณ์ที่ฉันจะกลั้นจมูกและซ่อนปัญหาไว้

  1. มีการใช้รหัสภายในและบางครั้งผลลัพธ์ของข้อผิดพลาดจะสามารถจัดการได้ภายใน บริษัท
  2. ข้อควรพิจารณาเชิงพาณิชย์อย่างล้นหลามซึ่งเรียกร้องให้มีการจัดส่งในวันนี้และการแก้ไขข้อผิดพลาดสามารถใช้งานได้ในอีก 2 สัปดาห์ต่อมาโดยมีผลกระทบน้อยที่สุด

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


0

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


0

คัดลอกฟังก์ชั่น buggy ใช้การแก้ไขเปลี่ยนชื่อมันอาจปลอมตัวเล็กน้อยและเรียกมันว่าแทน

จากความเห็นข้อบกพร่องสองตัวของคุณที่ดีที่สุดของคุณอาจจะทำตามตัวอักษรของกฎหมาย แต่ไม่สนใจจิตวิญญาณของมัน

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


1
ความคิดที่ไม่ดีถ้าฉันจับหนึ่งในโปรแกรมเมอร์ของฉันทำอะไรแบบนั้นฉันจะยิงเขาในที่เกิดเหตุนั่นเป็นวิธีที่รับประกันได้ว่าจะทำให้เกิดความเสียหายกับรหัสและสำหรับทุกคนที่ต้องรักษารหัสนั้น
Miki Watts

@Miki - ในกรณีนี้บอกฉันว่าอะไรคือความคิดที่ไม่เลว โปรดอธิบายว่าการใส่บั๊กกลับมาได้อย่างไรเพราะมันทำให้เกิดบั๊กอื่น (ที่มีอยู่แล้ว) การมองเห็นที่ชัดเจนยิ่งขึ้นเป็นสิ่งที่ดี สำหรับการยิงในจุดนั้นผมขอยืนยันว่าการไล่ออกเชิงสร้างสรรค์เนื่องจากนักพัฒนาถูกทิ้งให้มีทางเลือกเพียงเล็กน้อย
Steve314
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.