2021년 7월 회고
빠르게 배우는 것이 최고의 능력
스타트업에서 일하면서 앞으로 어떤 능력이 필요한지, 나는 그것을 어떻게 키워야할지 고민을 해보는데 당장에 뚜렷한 예상을 할 순 없었다. 어떻게 될지 예상이 어려운 이유는, 풀어야하는 문제가 어떻게 바뀔지 전혀 모르기 때문이다.
대기업같이 이미 시장이 있고 그 시장을 지키는 것이 중요하다면 풀어야할 문제도 이미 잘 정의되어있고 그 문제를 푸는게 중요할 것이다. (대기업의 모든 사업이 수성을 하는것만은 아니긴 하지만) 반대로 스타트업은 시장을 개척해나가는 것이고, 풀어야할 문제도 정의되어있지 않으며 미래에 어떤 문제를 풀게 될지도 모르는 일이다.
결국 얼마나 빠르게 배우고 성장할 수 있는지가 가장 중요한 능력일 것이다. 만약 배우는 속도가 아주 빠르다면 내가 지금 뭘 알고있는지, 얼마나 알고있는지는 별로 중요하지 않을 수 있다.
가장 풀기 어려운 문제는 유연함
마찬가지로, 스타트업이 "기술적으로" 어떤 문제를 풀어야할지 미리 아는 것도 사실상 불가능하다. 이건 비단 스타트업에서만 그런건 아디다. 개발의 세계에서 널리 통용되는 조언 중 하나는, "미래를 예측하지 말아라."는 것이다.
미래를 예측하지 않으면서 미래를 준비하는 방법은 현재를 유연하게 만들어서 대응능력을 키우는 것이다, 라는 마찬가지로 널리 통용되는 격언을 항상 염두에 두지만 이 말은 대단히 추상적이어서 현실에서 구현하는게 마냥 쉽지만은 않다.
인간은 미래를 예측하고 싶어하기 때문이다. 미래를 예측하고 약간의 장미빛 희망을 더하면 더할나위 없이 아늑해진다. 그 아늑함의 유혹에서 벗어나서 스스로를 정해지지 않은 상태로 만드는 것이 쉽지 않다. 유연함을 만들려고 하다보면 오히려 그 방향이 '나이브'한 것이 아닌가, '무계획적'인게 하는 부정적인 의심이 드는 것이다.
유연하면서도 안정적인(신뢰할 수 있는?), 어떻게 보면 이율배반적인 그런 소프트웨어는 어떻게 만드는 것일까. 아직 코드베이스의 크기가 큰 것도 아니고 팀의 크기가 큰 것도 아니지만, 확실한건 제품이 내가 지금껏 경험해본 적 없는 상태(와 크기)를 향해 나아가고 있다는 것이고, 이것이 불현듯 불안하게 만든다. 1백평 크기의 정원을 가꾸는 일과 5백평 크기의 정원을 똑같이 유연하게 가꾸는 일의 차이는 단순히 ‘전동 잔디깎기 쓰기’같은 테크닉이 아니라 좀 더 근본적인 곳에서 기원하는 내가 모르는 자세나 사상이 아닐까 하는 생각이 든다.
그리고 이 주제는 비단 소프트웨어 엔지니어링에서만 다룰 얘기가 아니기도 하다.
그리고 밥 로스...
긍정적인 말과 행동에 취해 빠져들으면서 보다가, 문득 폴 그레이엄의 에세이 해커와 화가가 떠올랐다. 해커가 화가와 유사하다면, (내가 닮고 싶은)훌륭한 해커는 밥 로스같은 사람이 아닐까.