개발(기술) 리더들이 갖춰야 할 기본기
이제 막 전입 온 신병들에게 군기를 잡아주는 이야기를 벗어나서 (그 분들 역할도 필요한거 동감합니다)
이제 대대장을 맡은 기술 리더(CTO, 팀장)의 역할에 대한 이야기를 심플하고 두서없이 해보려고 합니다.
제목을 기술리더에서 개발리더로 바꾸긴 했는데, 기술리더가 더 적합하긴 하네요.
이 글은 오히려 CEO,갑들이 봐야하는데…
소프트웨어 개발은 가방을 만드는 일
소프트웨어 개발을 하나의 ‘가방 제작’에 비유해 봅시다. 모두 어떤 짐을 담는 기능을 가진 ‘가방’이지만,
그 퀄리티는 100원짜리부터 백만원 혹은 그 이상까지 천차만별입니다.
기술 리더는 이 가방이 어떤 용도인지, 어느 수준의 품질을 지향해야 하는지를 갑 혹은 비즈니스 리더(CEO 등)와 함께 결정하고,
그 품질 수준을 보장하기 위해 기술적 기준과 프로세스를 정의하고 관리해야 합니다.
예를 들어 금융 서비스에서 ‘출금’은 단순히 버튼 하나로 끝나지 않습니다.
출금 1건에는 수백개의 기술적 결정이 얽혀 있습니다.
보통 우리가 생각 할 수 있는 일반적 출금 흐름에 대한 비지니스로직
이중지불방지
락 전략 (Optimistic / Pessimistic)
트랜잭션 처리와 격리 수준
장애 복구 전략
모니링과 알림
감사 로그와 데이터 무결성
등등 수 없이 많음
기술 리더는 이 많은 요소를 의사결정 가능한 레벨에서 이해하고 있어야 합니다.
( 일정&진척관리 및 글쓰기능력,협업능력,소통능력 같은 소프트기술등은 제외하고도.)
프로그래밍 언어, 프레임워크, 라이브러리, 디자인 패턴, 인프라 아키텍처...
소프트웨어 기술 세상에는 수백만 개의 인덱스가 존재합니다.
예를 들어 자바와 스프링만 해도 수없는 API와 Best Practice가 얽혀져 있죠.
리더는 이 방대한 인덱스의 지도 위에서 길을 찾을 줄 아는 사람입니다.
디테일을 외울 필요는 없지만 (가능하지도 않고), 어디서 무엇을 꺼내야 할지 아는 감각은 반드시 필요합니다.
100원짜리 가방 vs 천만원짜리 가방
모든 소프트웨어가 최고급 품질일 필요는 없습니다.가성비 및 납품해야하는 가방에 대한 일정을 지켜 주는게 중요한 경우도 있고, 최고의 견고함이 필요한 경우도 있습니다. 그에 따라 100원짜리 가방을 빠르게 만드는 개발자도 필요하고,1억짜리 명품 가방을 오랜 시간을 들여 만드는 장인도 필요합니다. 기술 리더는 이 중 어떤 길을 갈지, 어떤 품질을 추구할지를 비즈니스의 전략적 목적과 연결하여 결정 하고 위,아래로 설득해야합니다.
현실에선..
사실 위의 내용들은 다소 교과서적인 말일 수 있습니다. 수많은 경험을 쌓으면서 현실을 지켜보면..
- 십만원 이상되는 가방이 있는지를 모르는 “갑”, CEO,CTO 들도 많습니다. 안타깝지만
- 그들은 비싼 가방을 알 필요도 없으며, 1000원짜리 많이 파는데 집중 하는게 이득이니까요.
- 그런 경우가 대부분이라면 기술팀장,기술리더들이 그 수많은 기술 인덱스들을 항상 공부하고 업데이트해야할 유인이 줄어듭니다.
- 즉 그들이 내가 위에 서술한 기술리더의 기본기를 가지고 있지 않다면 그들의 탓이라기보단 시스템의 탓일 확률이 높습니다.
- 그들은 직접 가방을 하나라도 더 만드는데 힘을 보내는 역할을 해야하니까요. (저 역시 CTO면서 그냥 직원들이 어떤 가방을 만들고 있는지 신경 덜 쓰고 내 가방을 만들기 위해 전념한적이 허다합니다)
결국 신병(“신입”)들에게 드리대는 기본기와 자질등의 기준이 “일병”의 개인 취향에 따라서 달라질 확률이 높듯
리더들에게 드리대는 기본기와 자질등 역시 회사상황, 서비스종류(SI 등)종류 등 다양한 컨텍스트에 따라 달라지겠지요.
ps)
AI 시대에 있어서 이제 더더욱 기술리더 자질을 갖추는게 쉬워지고 있습니다.
거꾸로 생각하면 쉬워졌다는것은 100개만 알면 되던것을 이제 경쟁적으로 1000개를 알아야 하니..
고생하는건 예나 AI시대나 마찬가지이긴 합니다. AI와의 경쟁이 아니라 AI를 이용하는 인간끼리의 경쟁의 시대.