วิธีส่งผลกระทบต่อลำดับความสำคัญของข้อบกพร่องให้กับนักพัฒนาและปฏิบัติต่อพวกเขาอย่างไร


14

เรามีกระบวนการบั๊กที่ใช้งานอยู่ในปัจจุบัน

เรามีบั๊ก 3 ระดับ:

  • ข้อผิดพลาด P1: ข้อบกพร่องที่ทำให้ผู้ใช้ไม่สามารถทำงานได้ พวกเขาจะต้องแก้ไขทันที
  • ข้อผิดพลาด P2: ข้อบกพร่องที่ส่งผลกระทบ แต่ผู้ใช้สามารถทำงานได้
  • ข้อผิดพลาด P3: ข้อบกพร่องที่ไม่ส่งผลกระทบและผู้ใช้สามารถทำงานได้

P1 เป็นข้อบังคับและต้องได้รับการจัดการทันที แต่สำหรับ P2 และ P3 เราจะตัดสินเป็นกรณีไป

ด้วย 3 ระดับที่เรามีทีมมีแนวโน้มที่จะทำงานในการพัฒนาที่เร่งรีบมากกว่าที่ลูกค้าถามแทนการติดต่อกับ P2 และ P3 ซึ่งเกือบจะไม่เร่งด่วน

คำถามดังต่อไปนี้:

ฉันควรเพิ่มระดับความสำคัญอีกระดับเช่นมี P4 หรือไม่

ฉันควรกำหนดเป้าหมายให้พวกเขาสำหรับจัดการกับตั๋วที่ไม่เร่งด่วนเหมือนในสัปดาห์นี้หรือไม่เมื่อไม่ได้มอบหมายงานการเขียนโค้ดคุณควรปฏิบัติต่ออย่างน้อย 1 P2 หรือไม่

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

ปรับปรุง:


ฉันถูกเสนอคำถามนี้ในแง่ของความคล้ายคลึงกัน อย่างไรก็ตามมันไม่เหมือนกันเลย

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



1
ระดับความสำคัญมักจะไม่มีประโยชน์เท่าการสั่งซื้อลำดับความสำคัญ ... "bug X" สำคัญกว่า "bug Y" หากคุณเพิ่ม p4 ในที่สุดคุณจะต้องการ p5 และ p3.5
sudo rm -rf slash

2
หากคุณมีข้อบกพร่อง P1 จำนวนมากที่นักพัฒนาซอฟต์แวร์ของคุณยุ่งอยู่เสมอแก้ไขพวกเขาแทนที่จะทำงานกับ P2 / P3 คุณกำลังทำสิ่งผิดปกติมาก อย่าเพิ่มคุณสมบัติใด ๆ อีกซักพัก มุ่งเน้นไปที่การเจาะลึกและแก้ไขปัญหาสถาปัตยกรรม (หรือบุคลากร) ที่เกือบจะทำให้เกิดบั๊กเหล่านี้ หากคุณกำลังเขียนโปรแกรมในภาษา C ++, ตัวอย่างเช่นให้แน่ใจว่าคุณกำลังใช้ RAII .release()ทุกที่ที่คุณสามารถทำได้เพื่อให้คุณไม่ลืมที่จะด้วยตนเอง
คดีฟ้องร้องกองทุนโมนิก้า

เป้าหมายของคุณคืออะไร คุณต้องการให้นักพัฒนาทำงานมากขึ้นในการแก้ไขข้อบกพร่องและลดคุณสมบัติใหม่ ๆ หรือไม่? โปรดแก้ไขคำถามของคุณเพื่อชี้แจง นอกจากนี้โปรดอธิบายว่านักพัฒนาซอฟต์แวร์รับหรือทำงานอย่างไรในปัจจุบัน มีอะไรบ้างที่ใช้ในการตัดสินใจว่าอะไรจะเกิดขึ้น?
sleske

คุณสมบัติข้อผิดพลาดเปลี่ยนแปลงสิ่งที่คุณเรียกมันว่าซอฟต์แวร์ไม่ได้ทำสิ่งที่มันต้องการ ข้อแตกต่างระหว่างข้อบกพร่องและคุณลักษณะคือผู้จ่าย
mattnz

คำตอบ:


30

โดยทั่วไปคุณมีสองแกนสำหรับข้อบกพร่อง: แรงโน้มถ่วงและความถี่

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

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

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

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

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

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

โชคดี!


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

3
@corsiKa ใช่ ROI เป็นตัวชี้วัดรวม: "ผลตอบแทน" และ "การลงทุน" และสำหรับบั๊กนั้นสามารถจำลองการส่งคืนเป็นคอมโพสิตของ "แรงโน้มถ่วง" และ "ความถี่"
พอลเดรเปอร์

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

3
@ Wildcard ฉันเป็นคอมมิวนิสต์อย่างแท้จริงดังนั้นฉันเห็นด้วยกับคุณ 100% ว่าสิ่งเหล่านั้นดีกว่า นั่นไม่ได้เปลี่ยนความจริงที่ว่านี่เป็นวิธีการที่ บริษัท ซอฟต์แวร์ดำเนินงานและต่อต้านกระแสนั้นเว้นแต่คุณจะบริหาร บริษัท จะทำให้คุณจมน้ำตาย แม้ว่ามันจะเป็นที่น่าสังเกต แต่ก็ไม่เห็นแก่ตัว มันเป็นบริการแบบเดี่ยว แต่ซิงเกิ้ลนั้นไม่ใช่ตัวของตัวเอง แต่เป็น บริษัท แค่โยนมันออกไป
corsiKa

1
@ Wildcard และ corsiKa บริษัท ไม่ใช่ บริษัท ใหญ่และเราไม่สามารถพูดได้ว่า "โอ้เรากำลังจะสูญเสียเงิน อย่างไรก็ตามในโครงการที่ยิ่งใหญ่ของสิ่งต่าง ๆ ฉันไม่เชื่อว่าวิธีการที่คุณกล่าวถึงนั้นยั่งยืนในระยะยาว คน - ลูกค้าอยู่ไกลจากความโง่ บริษัท ที่ได้สั่งสอนพระกิตติคุณเช่นนั้นซุนเพื่อตั้งชื่อไม่ได้อยู่ที่นี่อีกต่อไป ฉันทำงานด้านการจัดการบัญชีมานานพอที่เงินจะไม่ได้รับอย่างนั้น สำหรับทุกคนถ้าคุณทำงานให้กับ บริษัท ดังกล่าวซึ่ง บริษัท ขาดความภักดี 1 / n
Andy K

24

สิ่งนี้สำคัญมากสำหรับสิ่งที่คุณคิดว่าสำคัญกว่า ข้อผิดพลาด P2 หรือคุณสมบัติใหม่

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

นักพัฒนาซอฟต์แวร์ไม่ได้รับอนุญาตให้เลือกงานที่พวกเขาทำ นั่นคือหน้าที่ของผู้จัดการโครงการ ใครจะต้องตรวจสอบให้แน่ใจว่าโครงการมีจำนวนคุณลักษณะที่สำคัญที่สุดเท่าที่จะเป็นไปได้ก่อนที่งบประมาณจะหมด

นั่นคือสิ่งที่สำคัญที่สุดจริงๆ กฎง่ายๆเช่น "แก้ไขอย่างน้อย 1 P2 ต่อสัปดาห์" ไม่ได้ช่วยให้บรรลุเป้าหมายนี้จริงๆ


5
ปัญหาเกี่ยวกับการกำหนดลำดับความสำคัญคือสิ่งที่คุณเลือกถังใดก็ตามคุณมักจะจบลงด้วยมากกว่าหนึ่งต่อถัง คุณต้องใส่สิ่งต่าง ๆ ตามลำดับไม่เพียงแค่พูดว่า "สิ่งเหล่านี้ล้วนสำคัญที่สุด!"
Ewan

6
@Ewan นอกจากนี้ยังมีความเป็นไปได้ของอัตราเงินเฟ้อที่สำคัญซึ่งกลุ่มที่สูงที่สุดของคุณมีปัญหามากกว่าที่คุณเคยคาดหวังที่จะแก้ไข ฉันเคยได้ยินคนพูดถึงปัญหา P ลบ 2
kasperd

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

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

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

1

มันเป็นวัฏจักรที่ค่อนข้างธรรมดาสำหรับซอฟต์แวร์ในการรวบรวมข้อผิดพลาดที่ไม่ร้ายแรงจนมีบางอย่างเกิดขึ้นจากนั้นมีเหตุการณ์ใหญ่เกิดขึ้นและหลายครั้งจะได้รับการแก้ไขในแต่ละครั้ง อาจจะด้วยการอุทิศ sprint หนึ่งหรือสองตัวเพื่อแก้ไขข้อผิดพลาดก่อนที่จะมีการเปิดตัวครั้งใหญ่ครั้งใหม่หรือโดยซอฟต์แวร์ที่เป็น EOL และมีชีวิตรอดจาก heap-o-bug

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

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

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

อย่าบอก devs ของคุณว่าพวกเขาต้องทำงานที่ไม่ชอบ แต่พยายามเปลี่ยนบรรยากาศเพื่อให้พวกเขาชอบทำงานกับแมลง พยายามปลูกฝังความภาคภูมิใจในแอปพลิเคชันที่ไม่มีข้อบกพร่อง ทำให้สนุกมากขึ้น (sic) ในการทำงานกับข้อผิดพลาดโดยอนุญาตให้พวกเขาแก้ไขปัญหาพื้นฐานที่ทำให้เกิดรายการข้อผิดพลาดนั้น (เช่นไม่ใช่เพียงแค่การแก้ไขปัญหาด่วน / แฮ็ก) หากมี การแตกโครงสร้างชั้นเรียนที่แตกออกและแทนที่ด้วยสิ่งที่เหมาะสมกว่านั้นสามารถสร้างความบันเทิงให้กับผู้พัฒนาได้มาก หากคุณมีชิ้นส่วนกลางที่หักซึ่งทำให้เกิดข้อบกพร่องเป็นประจำที่อื่นให้แก้ไขส่วนกลาง

วิธีที่คุณไปถึงเป้าหมายของคุณนั้นขึ้นอยู่กับตัวละครของคุณเองและของทีมของคุณ - อย่าพยายามหลอกพวกเขาในสิ่งที่คุณต้องการเพื่อให้บรรลุ แต่มีการพูดคุยกันอย่างเปิดกว้าง กระบวนการทำงานด้วยตนเองและอื่น ๆ

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