Laziness
Feb 18, 15
We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.1
불편함에 대한 낮은 관용은 유용한 기질이다. 이는 게으름이라는 특징으로 대변된다. 게으름laziness은 미루기procrastination와는 다르다. 미루기는 하고 싶지 않은 일을 만났을 때 다른 작업으로 집중의 대상을 돌려서 당면한 기분 나쁨을 피하는 과정이다. 결과적으로 해야 하는 원래 작업은 그대로 있기 때문에 대체로 유익한 과정이 아니다.2 게으름은 어떤 일을 달성하기 위해 사용하는 에너지의 총량을 최소화하려는 특질을 말한다.
일상에서 불편함을 만나면 이를 해결할 수 있는 도구를 찾게 된다. 만약 없다면 내가 만드는 때도 종종 있다. 거창한 것은 많지 않고 남들이 만들어둔 도구를 확장하는 때가 잦다. 가령 TextExpander의 스니펫을 만들거나 Alfred의 workflow를 만드는 정도가 대부분이다.
약간씩 불편함을 제거하는 것은 결국 쌓여서 큰 생산성 향상으로 이어진다. 불편함의 문턱을 넘기지 못해서 현실화되지 못하는 수없이 많은 아이디어를 상기해보자.
물론 야크 쉐이빙을 주의해야 한다. 나는 대체로 작업하는 바로 그 순간에는 작은 조각의 문제를 주어진 도구만 가지고 푸는 것에 집중한다. 도중에 불편함을 느끼면 이를 기록하고 잊어버린다. 문제를 푸는 그 순간에는 불편함을 견뎌낼 줄 알아야 한다.
Desirable programmer skill: enough tolerance and perseverance to build on top of other people’s shitty foundations, nothing else matters.3