2008. 12. 8. 23:25

이 버그를 누구에게 넘겨 줄 것인가?

이는 매우 어려운 문제이다. 당신이 하루에 200개의 새로운 버그 리포트를 받고 당신과 일하는 개발자가 500 이상이나 된다고 하자. “ 버그를 누구에게 주지?” “A개발자가 자기가 Fix하겠다고 하는데 과연 A 적당한 개발자일까?” 이는 쉽지 않은 문제이다.

문제에 좋은 해결책이 있는지 찾아보기 위해이클립스와 모질라에 있는 450,000개의 버그리포트의 할당방법들과 버그가 픽스 되는 과정들을 살펴 보았다. 이과정중에  혹시나 개선할 것들이 있는지를 살펴 보기 위해서다. (대부분의 작업은 정가을 석사과정 학생이 했다.)

우선 개발자 (한번이라도 버그를 할당 받은 사람의 이메일) 몇명인지 관리자 (한번이라도 다른 사람에게 버그를 할당한 적이 있는 사람의 이메일) 몇명인지 살펴 보았는데 메너저가 500 이상 그리고 개발자가 1,000 명이나 된다. 어찌 이렇게 많은 개발자와 메니저가 있는지이런 많은 개발자가 있다면 버그를 할당하는 일이 어려운 일처럼 보인다.

그럼 리포트가 들어온 다음버그리포트가 할당되는데 얼마의 시간이 걸릴까? 우선 버그가 할당 되기 전에 버그가 리포트된 다음 메니저가 리포트 읽고 어떤 행동을 취하는데 얼마나 걸리는지를 살펴 보았다. 그런다음 버그가 개발자에게 Assign되는데 걸리는 시간을 살펴 보았다.



(Eclipse 15,000 버그중 147,965 메니저에 의해 관리 되었는데 평균 시간은 17 그리고 버그가 할당되는데 걸리는 시간은 24일이였다.)

 

생각보다 너무 길었다.메니저가  첫번째 Action 취하는데 까지 평균 17, 첫번째 할당까지가 무려 24일이나? 무엇인가 너무 많이 걸리는 같아 버그들중에 우선순위가 높은것, 더욱 심각한것, 그리고 Fix되고 verified 버그만 살펴 보았다.

 

우선 verified 된것만 살펴보면 시간이 줄기는 했지만 이것도 평균5일과 19일이 각각 걸린다.

 

그래서 버그들이 할당되는데 걸리는 시간들을 histogram 형태로 보기로 했다. 하루만에 할당되는 버그는 몇개인지? 1~5 사이는 몇개인지? 등등등. 기대한것 처럼 하루만에 할당되는 버그들이 많았지만 하루 이상 걸리는 버그들도 많았다.


그래프는 Eclipse 버그들중 Fix되고 verified 버그들에게 개발자가 할당되는 시간이다. 15,000 여개의 버그중 1~5일이 걸리는 것은 10% (1500) 그리고 100 이상 걸리는 것들도 5% (750) 달했다.

일전 기사에서 어떤 버그들은 많이 Tossing 된다는 글을 올렸는데 한번 버그가 다른 개발자에게 넘어가는 시간도 만만하지 않다.


그림은 버그가 한번 넘겨질때 마다 걸리는 평군 시간이다. 첫번째에서 두분째로 넘겨질때 평균 52일이 걸리고 3번째로 넘겨 질때 평균 45 정도 등등등이다.

물론 이런 tossing 많이 필요로 하는 버그들을 복잡하거나 토론이 많이 필요한 버그들일 수도 있다. 그러나 처음부터 좀더 적당한 개발자에게 버그를 할당하는 것이 매우 중요하다는 것을 있다. 아니면 tossing하는데 너무 많은 시간을 소비하게 되고 결과적으로 버그가 픽스되는데 시간이 오래 걸리게 된다.

그러면 어떤 버그가 들어 왔을때 이를 적당한 개발자에게 할당하여 tossing 줄여주려면 어떻게 해야 할까?

우선은 이전 tossing 그래프에서 본것 처럼 개발자들간의 그룹이 있는데 그룹을 나타내는 그래프에서 clique 있으면 이를 하나의 팀으로 보고 팀에게 버그를 할당해도 좋을것 이다. 이전의 버그 tossing history 바탕으로 다음 tossing대상자를 예측하여 어떤 개발자에게 버그를 할당할때 예측된 개발자들을 참조 (CC) 넣어 주는 방법도 도움이 있을 것이다.

다른 방법으로 할당 시간을 줄일수  있을까요?

Trackback 1 Comment 2
  1. Autumn 2008.12.09 10:55 address edit & del reply

    3-gram 데이터를 좀 더 정교화해서 위의 문제를 해결할 수 있으면 좋을 것 같은데요. 좋은 결과가 나와주기를. ^-^

  2. Autumn 2008.12.09 15:58 address edit & del reply

    버그가 발생했다는 Report를 받았을 때 그것을 다시 개발자에게 전달하는 것은 여러 면모에서 굉장히 어려운 일이라고 봅니다.
    개발자는 버그의 존재를 모르고 있기 때문에 최대한 상세한 버그 발생 상황을 설명해줘야하는데, 어떠한 정보를 누구에게 주어야 가장 효과적으로 빠른 시간 내에 Fixing될 수 있을 것인가? 하는 질문에 답할 수 있도록 버그에 대한 다양한 속성들을 파악해 내는 일이 우선적으로 필요합니다.
    또한 버그가 어떠한 형태로 Reporting이 되든, 그것과 관련되어 있는 개발자인 동시에 그것을 가장 잘 먼저 인지할 수있는 개발자에게 Forwarding하는 것은
    현재 소프트웨어 개발 분야 중 시급하게 연구가 진행되어야할 중요한 부분인 것 같습니다.
    시스템에서 버그 할당의 과정을 자동으로 지원하여 서포트한다면 버그 Fixing 프로세스의 Time Consuming을 단축시킬 수 있을 것입니다.

    (지나가는 글)