가끔은 긴 기술 글보다 짧은 문장이 더 오래 남는다. Sean Hickey의 The Evolution of a Software Engineer는 딱 그런 글이다.
이 글은 개발자의 시간을 연차로 자르며, 문제를 대하는 태도가 어떻게 변하는지를 아주 짧고 날카롭게 보여준다.
내가 읽은 핵심
- 초반에는 “코드를 많이 쓰는 것”이 실력처럼 느껴진다.
- 시간이 지나면 구조, 추상화, 패턴 같은 큰 도구에 빠진다.
- 더 지나면 복잡함을 줄이고 본질만 남기는 쪽으로 이동한다.
- 결국 숙련은 ‘어렵게 만들기’가 아니라 ‘쉽게 끝내기’에 가깝다.
- 그래서 나중에야 비로소
YAGNI(You Aren’t Gonna Need It)를 몸으로 이해하게 된다.
개발자의 성장은 직선이 아니라 원처럼 돌아온다는 표현이 특히 인상적이었다. 처음의 단순함은 미숙해서 단순한 것이고, 나중의 단순함은 모든 복잡함을 통과한 뒤 남기는 단순함이라는 점.
왜 이 글이 촌철살인인가
내가 개발자로 읽은 글 중 최고의 촌철살인이라고 느낀 이유는, 불필요한 미사여구 없이 “우리가 결국 무엇을 배우는가”를 한 번에 찌르기 때문이다.
현업에서 자주 보는 장면이 있다.
- 문제보다 기술 스택이 먼저 결정되는 순간
- 유지보수보다 ‘멋있어 보이는 구조’가 우선되는 순간
- 단순한 해결책을 두고도 복잡한 설계를 정당화하는 순간
- 당장 필요 없는 기능까지 덧칠하는
Gold Plating이 습관이 되는 순간
이 글은 그런 순간마다 브레이크를 걸어준다. 정말 중요한 질문은 하나라는 걸 상기시킨다.
YAGNI는 게으름의 구호가 아니라,
문제의 경계를 지키고 변화 비용을 관리하는 실무 원칙에 가깝다.
반대로 Gold Plating은 성실함의 탈을 쓴 과잉 설계일 때가 많다.
이 문제를 가장 작고 명확하게 해결하는 방법이 무엇인가?
오늘의 메모
좋은 엔지니어는 복잡한 것을 이해하는 사람이고, 더 좋은 엔지니어는 그 복잡함을 팀이 다룰 수 있는 단순함으로 바꾸는 사람이다.
앞으로도 새 도구와 새 개념을 배우겠지만, 끝에서는 언제나 단순함으로 돌아오려고 한다.