언젠가는 마감을 못 지키는 날이 온다. 최고 실력자에게도 오고 가장 헌신적인 사람에게도 온다. 간혹 그저 추정을 망쳐서 일정을 못 지키는 처지가 되기도 한다.

일정 지연을 관리하는 요령은 이른 감지와 투명성이다. 최악의 경우는 마지막 순간까지도 다른 사람들에게 제 시간에 맞출 거라고 말한 다음 모두를 실망시킬 때다. 이러지 마라. 대신 정기적으로 목표 대비 진척을 측정하고 사실을 바탕으로 한 세 가지 완료일자, 즉 최선의 경우, 최악의 경우, 성공 가능성이 가장 높은 값인 명목 추정치를 마련하라. 세 날짜에 대해 최대한 정직해야 한다. 추정에 희망을 섞지 마라! 세 숫자를 팀과 관계자들에게 알려라. 매일 이 숫자들을 갱신하라.

관리자가 당신을 불러 앉힌 다음, 마감을 지키도록 노력해 보라면 어떻게 해야 할까? 관리자가 "무슨 짓이든 해보라."고 주장한다면 어떻게 할까? 추정을 고수하라! 상사의 반박 때문에 바꾼 일정은 원래 추정에 비해 정확성이 떨어진다. 이미 가능한 선택지를 모두 고려했고 일정을 개선할 유일한 길은 (기능적인) 범위를 줄이는 방법뿐임을 상사에게 말하라. 질주하라는 부추김에 넘어가면 안 된다.

압박에 굴복해 허리띠를 졸라매고 마감일을 지키려 노력해 보겠다고 동의하는 형편없는 개발자를 두려워하라. 개발자들은 지름길로만 가려 하고 초과 근무를 하며 기적을 바라는 헛된 희망을 가지게 되는데 이는 스스로와 팀, 이해 관계자들에게 잘못된 희망을 주기 때문에 재앙으로 가는 조리법이다. 모든 사람들이 문제를 대면하는 것을 피하게 만들고, 힘들지만 꼭 필요한 결정이 늦어진다.

질주하는 방법은 없다. 스스로 코딩을 더 빨리 하게 만들 수 없다. 문제를 더 빨리 풀게 만들 수 없다. 노력해 보려는 시도는 단지 본인뿐만 아니라 다른 사람까지 더 느리게 만드는 엉망진창인 결과를 낳는다. 따라서 상사, 팀, 관계자에게 반드시 정확하게 대답해서 희망을 갖지 못하게 해야 한다.

그랬더니 상사가 말한다. "하루에 두 시간씩 초과 근무하면 어떨까? 토요일에 일하는건 어때? 힘 내자고, 기능을 제 시간에 완료할 충분한 시간을 쥐어짤 방법이 분명 있을거야."

초과 근무는 잘 될 때도 있고 가끔 필요하기도 하다. 때로는 며칠간 10시간씩 일하고 토요일에도 한두 번 일해서 초과 근무 없이는 불가능한 날짜를 맞추기도 한다. 하지만 이는 아주 위험하다. 20% 시간을 더 일한다고 20% 더 작업이 완료되지 않는다. 더구나 초과 근무는 2~3주 이상 지나면 확실히 실패한다.

따라서 1) 개인적으로 감당 못할 정도거나 2) 2주 이하인 단기간이 아니거나 3) 초과 근무 노력이 실패할 때를 대비한 후퇴 계획을 상사가 가지고 있지 않다면 초과 근무에 동의하면 안 된다.

특히 마지막 기준을 만족하지 못하면 절대 협상해서는 안 된다. 초과 근무 노력이 실패했을 때 어떻게 할 생각인지 상사가 제대로 말하지 못한다면 초과 근무에 찬성하면 안된다.