의도한 발견
나는 아테네에서 가장 똑똑한 사람임에 틀림없다. 왜냐하면 나는 내가 아무것도 모른다는 사실을 알기 때문이다.
- 소크라테스Socrates
소프트웨어 프로페셔널이 할 수 있는 최대의 실수는 자신이 모르는 것을 모른다고 받아들이지 않는 것이다. 모르고 있다는 것을 인지하지 못한 상태를 ‘2단계 무지’*라고 한다. 아직 배울 내용이 많음을 인정하는 것은 성숙하다는 증거이고 마스터가 되기 위한 첫걸음이다.
개발자 대다수는 긍정적이고 낙관적이다. 일의 작업량을 예측할 때 얼마나 많이 틀리는지를 보면 알 수 있다. 실제로 소요된 작업량과 원래 예측했던 작업량을 비교해보면 거의 대부분 예측보다 훨씬 긴 시간이 걸렸다. 계획대로 안 될 가능성이 매우 높다는 것을 인정해야 한다. 무언가 예상하지 못한, 예상할 수가 없는 문제가 항상 발생한다. 언제, 어디서, 어떻게 그런 일이 있을지 안다는 것은 불가능하다. 이러한 사실을 무시하면 당황하여 문제에 제대로 대응하지 못하게 된다.
이러한 문제를 완벽하게 해결할 수는 없지만 영향을 최소화하도록 노력할 수는 있다. 한 가지 방법은 현재 처한 상황과 관련해 새로운 사실들을 계속 익히도록 스스로를 노출시키는 것이다. 이 부분은 특히 프로젝트 초반, 주요한 기능 모듈들이 아직 만들어지기 전 시점에 매우 중요하다. 이때는 무엇을 해야 하는지 상당 부분 잘 모르는 시기다. 생각 가능한 모든 측면에서 우리가 파악하지 못한 것을 찾아내기 위해 시간을 투자해야 한다. 이러한 투자는 수익률이 대단히 높다.
* 역자주 필립 G. 아모어의 ‘무지의 5단계’