보고 된 거의 모든 버그는 우선 순위가 높은 버그입니다.


50

여러 소프트웨어 프로젝트를 수행하는 동안 패턴이 나타났습니다.보고 된 대부분의 버그는 우선 순위가 매우 높았습니다. 나는 왜 이런 일이 일어날 수 있는지에 대해 동료들에게 물었고, 버그가 그 우선 순위를 갖지 않았다면 버그가 개발자의 관심을받는 것은 매우 드물며, 이는 실제로 의미가 있습니다.

따라서이 문제가 일반적인지 또는 운이 좋지 않은지 알고 싶었습니다. 빠른 Google 검색을 수행 한 결과 일부 팀에서 버그보고 가이드 라인을 구현하거나 별도의 "버그 심사"팀이 있음을 발견했습니다. 이 문제에 직면하여 해결 한 경우 어떤 접근 방식이 도움이 되었습니까?

이 질문은 구체적으로 "우선 인플레이션"문제에 관한 것입니다. 시나리오에 직면하고이 문제에 대해 효과적인 결과를 측정하는 경우.


9
이것이 '우선 순위'가 멍청한 이유입니다. X가 우선 순위인가 2는 의미가 없으며, Y가 대답하고 유용하기보다 X가 더 중요합니다. 중요한 것은 질서뿐입니다.
Nathan Cooper

7
@NathanCooper 그렇습니다. 그러나 우리가 정말로 중요한 버그를 가지고 있다면, 우리가 실제로하는 일을 알기 위해 약간의 추가 추진이 필요합니까? 맞습니다-우선 순위를 11로 설정했습니다.
gbjbaanb

6
@CarlosGavidia 따라서 버그를 제출하는 사람의 직접적인 손을 우선으로하고 버그를 수정하기위한 ROI를 결정하는 객관적인 방법을 찾아야합니다.

2
@JuliaHayward 개인적으로 나는 pef / rev를 좋아 하지만 버그에 대한 '고통'메트릭을 구체적으로 살펴 보았습니다 . 사용자 통증으로 버그 심사 개선 도 매우 좋습니다. 이들 중 어느 것도 버그를보고 한 사람이 전체적인 버그 우선 순위를 설정하게하지 않았다 (버그 통증 측정법의 '우선 순위'는 문제를 해결하는 것이 아니라 차단하는 것에 관한 것이다.

16
실화 : 나는 고객에게 전화를 걸어 우선 순위를 높이고 다른 우선 순위의 이름을 "오렌지", "금귤"및 "오랑우탕"으로 바꾸어 더 나은 차별화 작업을 수행하지 않으면이 문제를 해결했습니다. 필드를 의미있게 유지하기에 충분합니다. 그것은 실제로 작동했습니다 (안타깝게도 실제로 "금귤"심각도를 만들 수있는 관리자 권한이 있었기 때문에 오히려 기대하고있었습니다)
Cort Ammon

답변:


42

나는 이것이 어떤 일이 일어날 지에 대해 동료들에게 물었고, 버그가 그 우선 순위에 맞지 않으면 버그가 개발자의 관심을받는 것은 매우 드물다.

사실, 당신이 나에게 묻는다면 그렇지 않습니다. 우선 순위가 높을수록 더 많은 정보를 얻을 수 있습니다. 효과적으로 하나의 우선 순위 만 있다면, 그것은 우선 순위가 전혀없는 것과 같습니다.

그리고 당신은 여전히 ​​똑같은 수의 버그와 그것을 해결하는 동일한 시간을 가지고 있기 때문에 다른 휴리스틱이 사용될 것입니다. 그리고 이제는 버그 우선 순위 메트릭이 있습니다. 단, 도착 시간이며 더 이상 제어 할 수 없습니다.

버그 수정에 할당 된 리소스가 충분하지 않은 증상 일 수 있습니다 ( " 버그가 수정 될 때까지 새로운 기능이 없습니다 "와 같은 일부 정책 이있을 수 있습니다. Joel은 승인합니다 . 한계와 결과를 이해하는 것은 비즈니스 결정입니다 ).

내가 일한 한 프로젝트에서 들어오는 버그는 "우선 순위 버퍼 없음"에 누적되었으며 매주 월요일마다 버그 목록을 검토하고 어려움을 평가했습니다 (매우 대략적인 추정; 우리는 단지 "평균"을 넣는 것보다 더 자주) 사용 가능한 시간별로 정렬하십시오. 이것은 지루하고, 흥미롭지 않거나, 생각하기 어려운 버그를리스트에 떨어 뜨리는 경향이 있었다. 상사와 마케팅은 일주일에 특정 수의 크레딧을 가지고 좋아하는 버그의 우선 순위를 떨어 뜨리고 해결되지 않은 버그에 대해 상환했습니다. .

버그를 병합, 취소 및 분할하는 것도 가능했습니다. 너무나도 절망적으로 결함이있는 하나의 모듈을 기억하여 우리가 약 30 개 또는 30 개의 버그 보고서를 하나의 "처음부터이 문제를 다시 작성"으로 고정시킨 다음, "비참한 것의 입력과 출력을 명확하게 기술", "쓰기 테스트 "입력과 출력이 사양과 일치하는지 확인하십시오"등. 마지막 항목은 "이전 코드를 재활용 용지에 인쇄하여 잔디밭에 가져 와서 불에 태우는 것"이었습니다 (우리도 그렇게했습니다. 기분이 얼마나 좋았는지 기억합니다. 우리는 추론을 시작했습니다. ).

약간의 흥정 후, 우리는 다음 주에 부딪 쳤던 "할 것", "할 수있는 것"및 "할 수없는 것"으로 나뉘어 진주의 할 일 목록을 가졌습니다. 여기에 몇 가지 추가적인 흥정 거리가 생겼습니다. 버그에 할당하는 데 50 시간이 걸렸으며, 처음 20 개를 고치려면 95 % 확신했습니다. 경영진은 21 번째 버그를 고치기를 원했고 크레딧을 남기지 않았습니다. 그런 다음이 버그를 "Will do"목록에있는 버그로 바꾸거나 누군가 며칠 동안 FooBazFeature 하위 팀에서 연락을 취하겠습니다. 인력".

이 시스템은 실제로 아무도 만족하지 않았지만 (적어도 개발자들 사이에서) 좋은 신호라고 믿어졌습니다.

관리자의 "소원 한 생각"( "버그 57212는 8 시간이 필요하다고 말하였습니다. 허용되지 않습니다. 4 개로 설정하십시오")와 "충분히 디버그"( "원하는대로하세요") 그러나이 40 개의 버그는 다음 주 큰 데모 전에 수정해야합니다. 더 많은 시간을 가질 수없고 더 많은 사람들을 가질 수 없습니다 "). 또한 복서 증후군 ( "나는 열심히 일할 것") 은 짧은 시간 동안 아주 잘 작동 했지만 일반적으로 개발자가 녹색 목초지를 놀라게하거나 떠날 수있었습니다.


"불을 붙인"부분을 사랑하십시오. 우리는 모듈 중 하나에 대해 비슷한 계획을 가지고 있습니다 :)
Roman Reiner

1
나는 당신이 조직적이고 협상 된 시스템을 가지고 있었고 여전히 개발자를 태워 버렸다는 것에 깊은 인상을 받았습니다. 그것은 하나의 강렬한 프로젝트 였을 것입니다!
감사합니다 :

실제로, 우리는 강렬한 관리자를 가지고 있었으며 항상 좋은 인간 역학을 가진 것은 아닙니다. 그래서 매번 문제가 발생했습니다. 일부는 대처했고, 다른 것은 그렇지 않았습니다.
LSerni

원래의 질문은 "모든 버그가 우선 순위가 높은"(피하는 방법)입니다. 엄밀히 말하면, (허용 된!) 답변은 실제로 답변하지 않습니다. 단지 "들어오는 버그는 우선 순위가없는 버퍼에 축적되었고 매주 월요일마다 버그리스트를 검토하고 (거의) 난이도를 추정하고 가능한 시간별로 정렬합니다"라고 언급합니다. 그러나이 답변은 많은 훌륭한 관찰과 좋은 음식을 제공합니다.
RayLuo

@RayLuo 아니요, 답입니다. 기자가 우선 순위를 평가하는 대신 개발자가 우선 순위를 평가합니다.
JAB

47

사용자가 더 높은 우선 순위 버그를 할당하는 경우이 문제가 발생하는 경우 유일한 현실적인 해결책은 심사 메커니즘입니다. 모든 버그는 원하는 우선 순위로보고되지만, 일부 불량 관리자는 새로보고 된 모든 버그를 통과하여 우선 순위를 합리적인 수준으로 재설정해야합니다.

잠시 후 사용자가 메시지를 받거나 모든 버그가 기본 우선 순위를 갖도록보고 시스템을 변경할 수 있습니다. 고객이 이관을 원하는 경우 누군가에게 연락하여 충돌을 일으켜야합니다. 이 사실만으로도 모든 버그의 99 %가 사용자에 의해 에스컬레이션되지 않습니다.

분명히 처리 할 수있는 것보다 더 많은 버그가 있으므로 백 로그를 지우려면 버그 수정 라운드 업을 시작해야합니다. 이것은 사용자에게 버그가 매우 정직하지 않고 정직하지 않은 것으로 표시 될 필요없이 버그가 수정 될 것임을 보여줍니다.


8
아냐 당신은 sugesst 것 같습니다 ...하지만 그럴 수 없습니다 ... 실제로 처리 할 수있는 것보다 더 많은 버그 가없는 개발자가 있습니까? 진심이야? :-D
Martin Ba

49
@MartinBa YMMV이지만 제품을 신중하게 디자인하고 개발하는 데 시간이 걸렸던 곳에서 일했으며 버그가 발견되는 동안 합리적으로 드물었습니다. 당신은 오늘, 당신은 많은 선행 디자인 생각없이 코드를 작성하는 아이들, 당신은 모든 시간 단위 테스트 및 리팩토링을 보내는 데
놀라지

5
실제로, 단위 테스트에 충분한 시간을 소비하면 버그가 다시 빠르게 사라집니다. 스크럼 팀에서 제품 소유자는 버그의 중요성을 재확인하는 사람이되며 제품 소유자는 버그의 진정한 중요성을 평가하기에 충분한 비즈니스 도메인 지식을 갖도록 의도됩니다. 스프린트 백 로그에서 버그가 발생하지 않으면 제품 소유자가 작업을 제대로 수행하지 못하는 것입니다.
Cronax

14
@Cronax 충분한 시간 단위 테스트를 수행하면 기능을 작성하기 위해 남은 시간이 없다는 것을 알 수 있습니다. 그래서 나는 그것이 :-) 나타나는에서 버그를 중지 않는 것 같아요
gbjbaanb

4
@gbjbaanb 실제 단위 테스트를 고수하지 않고 개발 시간 단위의 10-20 %를 소비하는 일반적인 애자일 / 스크럼 메트릭은 나에게 정확한 것 같습니다. 모든 것을 테스트 할 수는 없지만 어떤 종류의 테스트를 수행하든 테스트 목표는 아닙니다. 코드가 의도 한대로 작동하는지 확인하는 것만으로 테스터는 코드가 목적에 맞는지 평가합니다.
Cronax

14

면책 조항 : 아직 사용자 가보고 한 버그 우선 순위 shenanigans에 대한 경험이 없었습니다. 나는 질문이 이것을 요구한다는 것을 알고 있지만, 외부인의 관점을 갖는 데 도움이 될 수 있습니다.

문제는 우선 순위가 높은 버그가 너무 많다는 것이 아닙니다. 문제는 버그 우선 순위를 직접 제어하는 ​​사람들이 너무 많다는 것입니다. 모든 사용자가 버그에 우선 순위를 직접 할당 할 수 있으면 거의 자동으로 문제를 우선 순위로보고합니다.

버그 우선 순위를 관리자 나 헬프 데스크 무인 항공기로 구성해야 할 수도 있지만, 이로 인해 고객이 상태 때문에 또는 메시지를 작성하는 방법을 알고 있기 때문에 고객이 인위적으로 우선 순위를 높이는 편견과 사회 공학으로 이어질 수 있습니다 그것들을 더 중요하게 보이게하십시오. 또한 노동 집약적입니다.

사용자가 우선 순위를 어느 정도 제어 할 수있는 중간 지점이 있지만 시스템을 악용하기가 더 어렵습니다. 기본적으로 사용자는 버그보고를 위해 템플릿을 사용하도록합니다. 먼저 카테고리를 선택합니다.

  1. 내가 무언가를 할 때 프로그램을 사용할 수 없거나 충돌합니다.
  2. 프로그램에 기능에 영향을주는 그래픽 결함이 있습니다.
  3. 이 프로그램을 통해 내가 할 수있는 일을 할 수 없습니다.
    이 프로그램을 통해 할 수 없었던 일을 할 수 있습니다.
  4. 내가 무언가를 할 때 프로그램이 잘못된 결과를 제공합니다.
  5. 프로그램이 작업을 수행하는 데 시간이 너무 오래 걸립니다.
  6. 이 프로그램에는 기능에 영향을 미치지 않는 그래픽 결함이 있습니다.
  7. 프로그램에 위의 범주 중 하나에 맞지 않는 결함이 있습니다.

예를 들자면 :

  1. 히브리어 기호가 포함 된 메시지를 받으면 iPhone이 충돌합니다.
  2. 내 Android 잠금 화면이 화면의 절반이 화면에서 떨어지도록 회전됩니다.
  3. 올바른 코드를 입력 했는데도 Android 휴대 전화에서 잠금 화면 코드를 허용하지 않는 경우가 있습니다.
  4. PhoneHub.net으로 이동하려고하면 전화가 성인 사이트로 리디렉션됩니다.
  5. Facebook 앱을 열면 빠른 연결 및 다른 앱이 실행되지 않는 경우에도 1 분 정도 걸립니다.
  6. 앱에 맞춤법 오류가 있습니다.
  7. 귀하의 프로그램에서 보안 결함을 발견하여보고하고자합니다.

보시다시피, 이러한 각 오류의 심각도는 다르며이 심각도를 기준으로 범주가 대략적으로 정렬됩니다. 그런 다음 카테고리,보고 담당자 및 설명에 나타나는 키워드를 기준으로 각 버그에 우선 순위를 지정할 수 있습니다. 카테고리 7의 버그는 우선 순위를 수동으로 지정해야합니다.

이 문제는 완전히 자동으로 발생할 수 있으므로 자동으로 수행해야합니다. 실제로 자동화가 핵심입니다. 사용자는 비즈니스에 대한 자신의 중요성을 과대 평가하는 경향이 있으므로 버그를보고하는 것보다 우선 순위가 높은 버그를보고하는 데는 문제가 없습니다. 그들은 의도적으로 버그를 다른 카테고리에 배치하는 경향이 적습니다. 왜냐하면 기본적으로 버그에 대해 거짓말을해야하기 때문입니다.

사용자는 여전히 잘못된 범주에 버그를 입력 할 수 있습니다. 가장 먼저해야 할 일은 1.0 버전부터 사용자에게 버그에 대한 정확한 정보를 제공하여 개발자가 버그를 더 빨리 찾아 수정할 수 있도록하는 친근한 메시지를 표시하는 것입니다. 대부분의 사용자는 버그보고를 이해하고 중지합니다. 일부 사용자는 여전히 잘못된 정보를 계속 제공 할 수 있습니다. 이 경우 정확한 정보가 중요하며 시스템을 남용하지 않도록 메일을 통해 해당 사용자에게 부드러운 알림을 보내십시오. 그들이 계속 위조 기록을한다면, 당신은 그들이 고의적으로 시스템을 남용하고 있다는 경고를 주며 계속적인 남용은 그들의 버그에 자동적으로 더 낮은 카테고리를 할당하게됩니다. 이들이 지속되면 버그 승수를 조정할 수 있습니다.

이 시스템의 일부는 처리량이 많은 지원 상황 (예 : Microsoft, Facebook, Google, Valve 및 Blizzard와 같은 사용자가 많은 게임 회사, 특정 정부 등)에서 처리량이 많은 지원 상황에서 볼 수 있습니다. 배후의 작업 중 사용자를 향한 지원 시스템은 엄격한 카테고리 시스템을 사용하여 여기에서 제안하는 것과 유사한 인터페이스를 가지고 있음을 알 수 있습니다.


아주 좋은 대답입니다. 사용자는 버그 보고서에서 어떠한 종류의 우선 순위도 스스로 설정할 수 없습니다. 카테고리는 매우 좋은 조언입니다. 수동 우선 순위 설정은 제품 소유자 또는 이와 유사한 사람이 수행해야합니다. 개발 프로젝트에서 테스트 중에 발생하는 문제는 제품 소유자가 스크럼 마스터와의 토론 회의에서 우선 순위를 정합니다.
awe

11

사람들이 말했듯이, 이것이 버그를보고하는 사람들이 우선 순위를 부여하지 않는 이유입니다. 개발자 팀은 자신의 작업 할당을 관리해야합니다 (상위 관리자가 설정 한 범위 내). 그래서, 누군가가 더 업 "에 대한 작업을 말합니다 응용 프로그램은 수정 기능을 수행에서 더 잘 할 "그들이 어떻게 평가하는 데 필요한 전문 기술을 가진 사람이기 때문에 팀은, 그것에 대해 이동하는 방법을 결정하기 위해 도착 경영진이 원하는 것을 달성하는 것이 가장 좋습니다.

버그를보고하는 사람들 은 범위를 정의한 영향 또는 심각도 수준을 지정해야합니다 . 합의 된 심각도 수준을 지키지 않는 사람들을 쉽게 불러 낼 수 있습니다. 그 수준에 대한 중요한 증거가 있기 때문입니다. 예를 들면 다음과 같습니다.

  1. 완전한 기능 손실
  2. 기능의 일부 손실
  3. 효과의 광범위한 감소
  4. 국산화 효과 감소
  5. 성가심 또는 방해 (해결 방법 존재)
  6. 화장품
  7. 실제로 눈에 띄지 않는 탐색 테스트 중에는 아무도 발견하지 못했습니다.

우선,이 레벨을 무딘 도구로 사용하여 일부 제목 텍스트의 정렬이 잘못되어 전체 응용 프로그램을 사용할 수 없게되므로 레벨 1 버그가 아님을 지적 할 수 있습니다. 일단 아이디어를 얻으면 더 세밀하게 만들 수 있고 텍스트 상자를 마우스 오른쪽 버튼으로 몇 번 클릭하거나 레벨 4로 수정하면이 텍스트 상자를 업데이트 할 때 발생하는 결함이 레벨 5인지에 대해 토론을 시작할 수 있습니다 회계에서 모든 사람의 속도가 느려지므로 시간당 처리되는 양식이 줄어 듭니다.

조직에 버그가 얼마나 나쁜지에 대한 유용하고 측정 가능한 정보 가 확보되면 우선 순위를 지정하는 것이 분명해집니다. 현재 조직의 가장 큰 문제인 이익 손실, 공공 이미지 손상, 직원 불행 등 무엇이든간에 우선 순위가 높아질 것입니다.


이. 그리고 PR 목적의 짧은 버전은 우선 순위가 항상 다른 것에 상대적이므로 대기열의 다른 것들과 비교하여 만 결정할 수 있다는 것입니다. 당신의 일이 분명히 필요하다고해서 그것이 가장 높은 우선 순위를 의미하는 것은 아닙니다.
Steve Jessop

1
글쎄, 당신은 가장 큰 영향을 미치는 문제가 약간 낮은 영향 문제 보다 해결하기가 훨씬 어렵다는 것을 할인해서는 안됩니다 . 같은 노력으로 하루에 100 유로의 비용으로 2 개의 버그를 수정하거나 200 달러의 비용으로 버그를 고칠 수 있다면 어떻게 하시겠습니까?
중복 제거기

1
그건 좋은 지적이야; 노력 견적도 함께 올 것입니다.
anaximander

@Deduplicator 죄송 합니다만 100 € 및 200 $ 아날로그를받지 못했습니다. 가장 영향이 크지 만 훨씬 더 어려운 문제보다 약간 덜 영향을 주지만 훨씬 더 쉬운 문제를 처리하려고 제안 했습니까? 다시 말해, ROI (Return On Invest)의 개념을 말하고 있습니까?
RayLuo

10

다음과 같이 조금갑니다 :

Mgr : 무엇을하고 있습니까? 개발자 :이 우선 순위가 낮은 작업 Mgr : 우선 순위가 높은 작업을 수행하지 않아야합니까?

클라이언트 : 내 버그는 언제 수정 되나요? 개발자 : 우선 순위가 낮습니다. 우선 순위가 높은 작업이 있습니다. 클라이언트 : 오, 그럼 버그 상태를 우선 순위로 설정하십시오.

이것은 점점 더 높은 우선 순위로 이어질 것입니다. 나는 당신이 이미 높은 우선 순위를 넘어 높은 우선 순위로 넘어간 것을 봅니다. 다음은 다음과 같습니다

  1. 최고 우선 순위
  2. 매우 높은 우선 순위
  3. 매우 매우 높은 우선 순위.
  4. 매우 초고 메가 높은 우선 순위.

예, 이것은 정상적인 과정입니다. 우선 순위를 지정하는 데 드는 비용이없고 발신자가 영향을 미치는 한, 문제를 가장 빨리 해결하고 가장 높은 우선 순위를 설정하려고 시도합니다.

이것을 반대하는 기본적으로 2 가지 방법이 있습니다 :

  1. 우선 순위 수준과 관련하여 클라이언트로부터 제어하십시오.
  2. 우선 순위가 높은 고객에게 비용을 연결하십시오.

7
그것은 정상적인 과정 이 아닙니다 . 고객은 해당 수준에서 개발자와 상호 작용하는 비즈니스가 없으며, 이러한 상황이 발생하면 경영진이 완전히 수행하지 못했습니다.
Davor Ždralo

@ DavorŽdralo 아마도 process가 여기에 사용 된 올바른 단어가 아닙니다. 나는 그것이 정상적인 일이라는 것을 의미했습니다.
Pieter B

3
클라이언트가 항상 겪고있는 버그가 예상보다 더 중요하다고 느끼는 한 정상적인 프로세스입니다. 동시에, 개발자들은 버그의 중요성을 과소 평가 한 것으로 악명이 높습니다. 이것이 스크럼에 비즈니스 소유자에 대한 지식과 응용 프로그램이 어디로 가는지에 대한 높은 수준의 견해를 가지고있는 제품 소유자가있는 이유입니다. 스토리 나 버그의 우선 순위를 정확하게 평가하는 데 적합합니다.
Cronax

5

특히 Jira 인 경우 시스템에 더 높은 우선 순위 레벨을 추가 할 수 있습니다. 새로운 우선 순위가 점점 더 어리석지 만 무서운 이름 을 부여하면 모든 당사자가 선택한 우선 순위의 품질이 호손 효과를 높일 수 있습니다 . 최우선 순위가 실제로 엉뚱한 이름을 가진다면 그 효과는 영구적 일 수 있습니다. 결국 누군가가 우선 순위를 선택할 때, "죽음의 벌레"우선 순위를 선택하는 것과 그에 대한주의를 기울이는 것의 사회적 결과를 평가해야합니다. 따라서, 가장 우선 순위는 사실상 손님 앞에서 집에서 CTO에게 일어난 일이나 그와 동등한 가시성 사건에 대한 것입니다.


4

요청 지원 비용을 소개합니다. 사용자는 주어진 기간 동안 X 개 우선 순위 항목, Y 개 중간 우선 순위 항목 및 Z 우선 순위가 낮은 항목 만보고 할 수 있습니다.

물론 이는 개발팀과 경영진이 실제로 특정 우선 순위 항목, 대부분의 중간 우선 순위 항목 및 (어쩌면) 특정 기간 내에 우선 순위가 낮은 항목

그러나 이것이 효과가있을 경우 경영진은 실제로이를 구매해야하며, 그렇지 않으면 전체 운동이 시간 낭비입니다.

그러나 마지막 날에는 특정 상황이 경영진이 지원 문제를 처리하기에 충분한 리소스를 할당하지 않는 문제의 증상 인 것 같습니다. 문제가 적시에 처리된다면, 나는 이것이 일어날 것이라고 생각하지 않습니다.

지원 프로세스가 제대로 작동하지 않아서 모든 것이 응급 상황이라면 아무것도 아닌 상황으로 이끌었던 첫 번째 회사에서 이와 같은 것이 구현되었습니다. 우리의 경우, 사내 상황을 통제 한 후 새로운 소프트웨어 개발 관리자는 고객이 지원 계약에서 지불 한 금액에 따라 고객이 제기 할 수있는 우선 순위가 높은 문제의 수를 엄격하게 제한했습니다. 그들이 한도를 초과하면 더 많은 현금을 기침했거나 지원 문제가 우선 순위가 낮아졌습니다.


1
나는 당신의 요지를 오해했을지도 모르지만 소프트웨어의 품질이 일반적으로 좋지 않은 경우 일련의 우선 순위가 높은 버그를 제기 한 이유는 무엇입니까?
로비 디

@RobbieDee 누가 소프트웨어의 품질이 좋지 않다고 말합니까? 이것은 나쁜 코드 연습 문제를 해결하는 방법에 대한 질문이 아니며 클라이언트가 모든 지원 문제를 우선 순위로 높이 지 못하게하는 방법에 관한 것입니다.
user1666620

그래서 당신은 명목상의 비용이나 할당량에 대해 이야기하고 있습니까?
로비 디

@RobbieDee-그것은 다릅니다. 지원 프로세스가 제대로 작동하지 않아서 모든 것이 응급 상황이라면 아무것도 아닌 상황으로 이어지면서 제가 처음으로 일한 회사에서 이와 같은 것이 구현되었습니다. 우리의 경우, 사내 상황을 통제 한 후, 새로운 관리자는 고객이 지원 계약에서 지불 한 금액에 따라 고객이 제기 할 수있는 우선 순위가 높은 문제의 수를 엄격히 제한했습니다. 그들이 한도를 초과하면 더 많은 현금을 기침했거나 지원 문제가 우선 순위가 낮아졌습니다.
user1666620

아, 알겠습니다.
로비 디

3

이는 IT가 부수적 인 것으로 보이거나 아웃소싱되는 대기업에서 매우 자주 발생합니다. 비즈니스 사람들은 소프트웨어를 이해하지 못하고 신경 쓰지 않습니다. 그들이 중요하게 생각하는 것은 "그들의"버그가 얼마나 중요하지 않은지에 상관없이 어제 수정된다는 것입니다. 그들은 수백 명의 다른 사용자들도 버그를 신고하고 5 명 정도의 개발자 팀이 문제를 해결할 수 있다는 것을 깨닫거나 신경 쓰지 않습니다.

이는 경영진이 열악 해졌으며, 특히 "아니오"라고 말할 수 없거나 단순히 비즈니스 사람들이 버그 우선 순위를 설정하게하는 비 IT 관리자들에 의해 악화되었습니다. (어쨌든, 매니저는 자신의 업무를 수행하고 있지 않습니다.) 대부분의 관리자는 "긴급"때문에 마지막으로 연락했던 버그를 우선시합니다. 그 결과 개발자는 결국 버그를 뛰어 넘어 단일 버그를 수정하는 데 시간이 오래 걸리고 (문맥 전환) 하루가 끝날 무렵에 모든 사람이 불행 해집니다. "모든 버그가 우선 순위가 높은 버그 일 때는 우선 순위가 높은 버그가 없습니다."

나는이 상황에 처해 있었고 일반적으로 탈출하는 유일한 방법은 나가는 것입니다. 사용자가 ** t를 제공하지 않기 때문에 버그보고 지침은 항상 무시됩니다. 버그 심사를 도입하려는 시도는 거부되거나 다음 번에 사용자가 "그들의"버그에 대해 불만을 제기하기 위해 관리자에게 전화 할 때 적용됩니다.

기본적으로 개발자가 우선 순위를 제어 할 수 없다면 이미 잃어버린 것입니다.


우선 순위를 제어하는 ​​개발자도 똑같이 문제가 될 수 있습니다. 그들은 빠른 승리로 뛰어 들거나 익숙한 지역에서만 버그를 선택할 수 있습니다.
로비 디

@RobbieDee 나는 정책으로 낮은 교수형 과일을 먼저가는 것에 아무런 문제가 없다고 생각합니다.
Pieter B

1
버그없는 정책은 훌륭한 목표이지만 IMO는 완전히 비현실적인 정책입니다. 버그는 사람들이 완벽하지 않기 때문에 소프트웨어 개발의 인공물입니다. 그렇기 때문에 지금 고쳐야 할 사항 , 시간이있을 때 고칠 수있는 부분, 고칠 필요가없는 부분을 파악하기 위해 심사가 필요한 이유 입니다. 이렇게하면 기능을 계속 제공하면서 가장 심각한 문제를 제거 할 수 있습니다.
Ian Kemp

1
@RobbieDee 저는 기능 개발자이자 버그 해결사였습니다. 문제는 기능 담당자와 해결사가 각자 작업하지 않기 때문에 각자의 미니 팀에 사일로가 있다는 것입니다. 동일한 코드이므로 상호 작용할 필요가 없습니다. 그것은 팀 응집력과 사기에 관한 모든 종류의 문제를 만들어냅니다.
Ian Kemp

1
@RobbieDee 그리고 역할이 순환되면 상황이 더 나빠집니다. 정해진 시간 안에 역할을 수행하면 사람들이 업무 도중 중단되고 "새로운"사람들이 다시 증가해야합니다. 작업이 완료된 시점을 기준으로 작업을 수행하면 항상 누군가가 변화를 느끼기 때문에 불행이 생길 수 있습니다 ( "왜 항상 버그에 더 많은 시간을 투자해야합니까"). 내 경험상 작동하는 유일한 방법은 모든 개발자가 기능 작업과 버그 수정 (예 : 주 4 일 동안 기능 개발, 1 일 동안 버그 개발)을 혼합하는 것입니다.
Ian Kemp

3

회사는 중요도 / 비용 비율이 가장 높은 문제를 해결하려고합니다. 사용자는 중요성을 결정하고 엔지니어링은 비용을 결정합니다. 사용자가 모든 버그에 동일한 중요성을 부여하면 비용 만 중요합니다.

실제로 이것은 우선 순위를 중요도 / 비용으로 정의하고 사용자 또는 개발자가 해당 우선 순위를 직접 설정하도록 허용하지 않음을 의미합니다. 어느 쪽도 전체 그림을 가지고 있지 않습니다.

사용자가 모든 문제를 똑같이 중요하게 결정하면 괜찮습니다. 그러나 엔지니어링 (비용)이 수행 할 작업을 결정한다는 의미입니다. 그들에게 중요성이 그들이 우선 순위에 영향을 줄 수는 있지만 결정할 수있는 유일한 방법이라고 설명한다.


1
작동합니다. 모든 문제가 모든 사용자에게 똑같이 영향을 미치는 한. 그렇지 않으면 버그가 항상 우선 한다는 것을 기억하십시오 .
중복 제거기

이론 상으로는 효과가 있습니다. 그러나 "거의 모든보고 된 버그가 우선 순위가 높은 버그"라는 원래 문제를 실제로 해결하지는 못하지만, 사용자는 여전히 모든 버그를 "높은 중요성"으로보고 할 수 있으며 결국 "쉬운 버그 우선"이됩니다.
RayLuo

3

몇 가지 요소 ...

  • 종종 사람은 버그를보고 더 큰 그림을 알지 못하며 버그의 중요성을 결정할 수 없습니다.
  • 우선 순위가 낮은 버그는 종종 분류되거나 고려되지 않으므로 우선 순위가 너무 높은 경우 분류를 수행하는 사람이 분류를 낮추는 것이 좋습니다.
  • 필자는 개발자로서 버그 보고서를보고 버그의 우선 순위가 매우 높은 문제를 발견했지만 심사를 수행하는 제품 관리자는 버그에 신경 쓰지 않습니다.

따라서 모든 버그 보고서를 1-2 명의 숙련 된 개발자가 신속하게 살펴보고 버그 보고서에 생각을 추가 한 다음 버그를 심사해야한다고 생각합니다. 버그를 발견 한 사람이 버그를 발견 한 시점에 유용한 우선 순위를 설정할 수 있다고 기대하는 것은 너무 많은 질문입니다.


3

언급 된 모든 버그 높은 우선 순위 일 수 있습니다. 나는 자금 부족과 불충분 한 프로젝트에 참여했으며, 테스트가 시작될 때 QA를 시작했을 때 사용자는 우선 순위가 낮은 항목을 포기했습니다. 프로젝트의 핵심 기능인 경우 사용상의 철자 오류 또는 결함이 시간 낭비라는 것을 알았 기 때문에 완전히 호스되었습니다. 귀하의 경우 자동 수하물 시스템이 함께 카트를 충돌 및 수하물을 파괴 태그에 글꼴이 너무 작 2PT 경우, 무슨 상관?

이와 같은 상황에서는 프로젝트가 실패합니다. 이것이 가능성이 있다고 생각되면 결함을보고하는 사람들과 마음을 나란히해야합니다. 사람들이 버그 보고서를 부 풀리면 다른 답변이 도움이 될 것입니다. 버그가보고 된대로 나쁘면 극단적 인 조치취해야합니다 .


2

대부분은 이미 언급되었지만 "bug zoo"목록을 조금 덜 세분화 한 것으로 증류합니다.

A : 버그는 트랙에서 사용자가 죽는 것을 막고, 잘못된 출력을 제공하며, 일반적으로 시스템 / 기능 / 기능을 사용할 수 없게 만듭니다. "우선 순위"버그입니다.

B : 그 밖의 모든 것. 이들은 "협상 가능한"버그입니다.

협상 가능한 버그는 다음과 같은 다양한 우려 사항에 해당합니다.

1 : 보안에 영향을 미치는 버그;

2 : 유용성에 영향을 미치는 버그 (의도 된 목적에 적합)

3 : 미학에 영향을 미치는 버그;

4 : 성능에 영향을 미치는 버그 (사용 가능성의 일부일까요?);

5 : 전문 프로그래머로서의 감수성을 상하게하는 버그;

6 : 사용자 신뢰를 떨어 뜨리는 버그;

그래서 우리 중 누구도 실제로 살고 있지 않은 유토피아 세계입니다. 한숨 전체 소프트웨어 산업에서 OP의 언급 된 질문에 대한 답변을 완성하기 위해서는 모든 단일 버그가 우선 순위가되는 개발 노력이 일반적으로 흔합니다. 한 슈퍼 뱅어 스페셜. 그리고 당신은 그들이 "특별"에 대해 말하는 것을 알고 있습니다 : 모든 사람이 특별 할 때, 아무도 특별하지 않습니다.


2

기본적 으로이 문제는 우선 순위를 분산시키는 문제에 기인합니다. 팀의 작업 우선 순위를 정할 수있는 사람은 항상 홀수 여야하며 3 명은 너무 많습니다. 따라서 한 사람이 효과적으로 심사 할 책임이 있습니다. 또한 개발자 리드 / 건축가와상의하여 관리자 / 분석가 여야합니다. 프로세스는 매우 간단하며 기능 요청에도 적용 할 수 있습니다. 개발 비용은 얼마입니까? 비즈니스에 예상되는 결과의 가치는 무엇입니까? 해당 기능의 출력이 우선 순위입니다.

코스 중 모든 사용자는 먼저 문제를 해결하기를 원합니다. 그리고 당신이 그것을 허용하자마자 혼란. 올바른 우선 순위가 없습니다. 모든 문제와 비즈니스 요구 사항에 대해 가시성을 갖고 필요한 비즈니스 및 IT 전문가 조언을 수집하여 통계의 합리적으로 정확한 추정치를 생성 할 수있는 권한을 가진 권한이있는 (필요한 경우 다른 사람들과 상담) 권한이있는 단일 사용자가이를 수행해야합니다. 위.


1

명백한 내용을 밝힐 위험이 있으므로 버그를 기본값으로 설정하는 버그 추적 소프트웨어가 없다고 가정합니다 (또는이 설정으로 설정되어 있음).

통제가 없으면 여러 팀, 고객 등이보고하는 기본 시나리오입니다. 현재 상태가 악용되는 경우 일종의 심사 프로세스가 확실히 진행됩니다.

과거에 매우 잘 작동하는 빠른 승리는 P1 (최우선 순위 버그)이 많은 관리 경고를 생성한다는 것입니다. 시스템이 악용 된 경우 즉시 시스템이 다운됩니다. 또는 긴급하게 긴급한 경우 가능한 빨리 문제를 해결하기 위해 전화 회의 또는 실제 회의가 발생합니다.

나는 초기 개발의 버그뿐만 아니라 모든 버그 에 대해 이야기하고 있다고 가정합니다 . 일반적으로 고용을위한 그린 필드 개발 건이라면 초기 알파 릴리스 이후 대부분의 버그가 우선 순위가 높은 것은 드문 일이 아닙니다.


JIRA에서 문제의 기본 우선 순위는 ( "주요 손실 기능") 주요이다
카를로스 Gavidia-칼데론

1
@CarlosGavidia 그러면 오류가 설정에있는 것처럼 보입니다. 버그 시스템은 일반적으로 모든 것이 일종의 중간 우선 순위를 갖도록 설정됩니다.
로비 디

0

당신은 우선 순위를 가질 수 없으며 모든 것이 마술처럼 작동 할 것으로 기대합니다. 때때로 사람들은 스스로 알아 내지 만 항상 그런 것은 아닙니다.

우선 순위를 올바르게 지정하려면 각 우선 순위를 정확히 구성하는 것에 대한 정의가 있어야합니다. 버그 선호와 정치적 우선 순위를 피하기 위해 이러한 기준은 객관적이어야합니다. 객관적인 기준을 따르지 않으면 팀이이를 따르도록해야합니다.

버그가 어디로 가는지에 대한 객관적인 기준을 가질 수없고 사람들이 이러한 기준을 존중하는 것을 기꺼이 거부하는 경우 제출자가 할당 한 우선 순위를 갖지 않을 수도 있습니다. 다른 사람들이 제안한대로 제 3자가 우선권을 부여합니다. 크라우드 소싱 된 데이터는 제출자가 협조적이며 데이터 수집을 적극적으로 방해하지 않는 경우에만 작동합니다.

객관적인 기준을 만들 수 없어 어려움이 발생하면 상대 기준을 사용할 수 있습니다.

  • 모든 버그에 대한 간단한 대기열이 있어야합니다. 사용자는 대기열의 어느 곳에 나 버그를 삽입 할 수 있습니다. 버그가 그 아래의 모든 것보다 중요하다고 생각되면 주어진 위치에 삽입해야합니다. 버그 수정 프로그램은 대기열 맨 위에서 시작합니다.
  • 이미 잘 분류 된 버그 세트가 있다고 가정하면, 버그를 우선시하는 조건은 X모든 버그보다 우선 순위를 두어야한다는 것 X-1입니다.
  • 제출자에게 우선 순위 X가 높은 버그 의 수가 우선 순위가 높은 버그의 수를 초과 할 수 없다고 알려주십시오 X-1.

그러나 문제가 정의가 아닌 것처럼 들리지만, 우선 순위가 낮은 버그가 수정되지 않는다는 제출자 사이의 믿음. 아마도, 당신은 (당신이 말한 것에서) 그들의 믿음이 사실에 근거하고 있기 때문에 다른 방법으로 설득 할 수 없습니다. 그렇다면 왜이 버그를 제출하게합니까? 결국 바쁜 일이 아닙니다. 예를 들어, 특정 수의 활성 버그에 도달 한 후, 가장 뛰어난 버그 보다 더 중요한 것을 발견하지 않는 한 보고서 작성을 방해하지 않도록 모든 사람에게 알릴 수 있습니다. 물론 이것은 대기열 길이의 상한이있는 대기열 솔루션 일뿐입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.