코드를 짜다 보면 타협하고 싶은 순간이 옵니다.

아, 이건 좀 까다롭네.
왜 내가 원하는 대로 안 만들어지지?
이 부분만 빼고 만들면 안 될까?
요구 사항을 조금만 바꿔주면 쉽게 해결될 것 같은데.

개발자라면 반드시 닥쳐오는 갈등.
어쩌면 이게 실력을 가늠하는 순간은 아닐까?

얼마나 타협을 잘 하는가.
포기하면 안 되는 부분을 구현의 어려움 때문에 포기하는 건 아닌가?

저는 많이 그랬습니다.

내가 조금만 더 고생하면 되는데.
좀 더 찾아보고 계속 삽질하다 보면 잘 해낼 수도 있었을 텐데.
삽질하는 게 너무 피곤하고 두려워서.

삽질을 한다는 건 고통스러운 일.
이런 고통을 누구나 잘 알기에 타협의 순간이 왔을 때 합리화하게 됩니다.

이건 그렇게 중요한 기능이 아니잖아.
이런 애니메이션이 도대체 왜 필요해?
복잡한 기능은 나중에 만듭시다.

코딩하다가 타협하고 싶은 마음이 들면 신중해지려 합니다.
스스로에게 물어봅니다.
‘반드시 필요한 기능인데 구현이 어려워서 포기하고 싶은 건 아닐까?’

하지만…
포기하지 않는 불굴의 의지만이 능사는 아닙니다.
스스로에게 한 번 더 물어봅니다.
‘불필요한 기능인데 디자이너나 기획자를 배려하는 마음에..
혹은 내 자존심 때문에 억지로 만들어 보려는 건 아닐까?’

타협을 신중하게 하는 개발자가 되고 싶습니다.
구현의 난이도와 서비스 전체적인 이익 사이에서 잘 조율하고 싶습니다.
스스로에게 솔직하게 물어보고 내 마음을 깨닫고 나면 한결 나아집니다.

함께 읽으면 좋은 글: