증거 기반 스케줄링

Evidence-based scheduling

증거 기반 스케줄링은 소프트웨어 엔지니어링 원리에 대한 해설자인 조엘 스폴스키가 만든 소프트웨어 추정 접근법이다. 증거 기반 스케줄링은 최소 두 가지 핵심 아이디어에 기초한다. 즉, 소비되는 모든 시간과 몬테카를로 완료 날짜 예측 방법을 포함한다. 증거 기반 스케줄링은 증거 기반 관행의 한 예다.

모든 시간을 포함하여

일반적인 추정 관행을 추가하는 증거 기반 스케줄링의 핵심 아이디어 중 하나는 관련성과 무관하게 소비되는 모든 시간을 포함하는 것이다.

대부분의 사람들은 추정할 때 프로젝트에 실제로 소비하는 시간을 측정한다 – McConnell의 소프트웨어 프로젝트 생존 가이드에[1] 인용된 것과 같은 전통적인 시간 회계 범주는 프로젝트 이외의 활동에 대한 회계처리를 허용하지 않는다. McConnell은 휴일, 병가, 프로젝트 지원 같은 덜 명백한 활동을 계속 포함하지만, 그와 다른 대부분의 사람들은 별도로 기록될 활동과 같은 것을 확인한다.

그러나 2차 활동을 녹음하고 예산을 책정하려 하면 그런 활동을 중단하라는 정치적 압박이 뒤따르는 경우가 많다. 실제로, 사람들은 그들을 피할 수 없고 초과 근무로 보상한다. 마찬가지로 스폴스키가 지적하는 바와 같이,[2] 그의 낚시 여행, 즉 모형 헬리콥터에 대한 당신의 상사의 이야기는 시간 낭비일 뿐 아니라 시간 보고 시스템을 두기에는 정치적으로 위험하다.

증거 기반 스케줄링의 핵심 통찰력은 측정이 필요한 것은 실제 업무 전달뿐이라는 것이다. 시간이 흐르면 다른 모든 산만함이 평균화될 것으로 추정된다. 추정의 목적상, 중단에 의한 변동은 추정의 부정확성으로 나타나며, 통계적 분석에 의해 보상될 것이다. 기구가 사람들이 불규칙한 추정치를 갖는 이유를 더 깊이 파고들기를 원한다면 이상 징후가 나타날 수 있다.

이 아이디어의 매력은 간단하다. 즉, 작성해야 할 증거의 양은 단순히 작업을 완료하는 사이에 경과된 시간이며, 디버깅하는 또 다른 중요한 시점인 디버깅이 원래 작업에 다시 적용되는 것이다.

몬테카를로법

또 다른 핵심 아이디어는 프로젝트 완료일을 예측하기 위해 몬테카를로 방법을 사용하는 것이다. 이 방법은 이전의 추정치가 얼마나 신뢰할 수 있었는지를 평가한다. 이 방법은 단일 완료 날짜 대신 여러 개의 가능한 완료 날짜를 생성하며, 각 날짜는 정확할 수 있는 관련 확률을 갖는다.

참조