연말을 연말답게 보내지 못해 그때 해야할 메모정리나 새해 계획을 이제서야 하고 있다. 작년 연초에 foo camp / bar camp에 대한 글을 읽고 막연하게 해외 개발자들을 부러워했던 기억이 난다.
그러다가 지금, 내가 하고 싶은 어떤것을 회사 생활에 투자할 수 있게 되었는데, 타겟을 설정하려다 보니 사실은 내가 바라는 모습이 매우 추상적인것을 느낀다. 그래서 성장의 방향에 대해 좀더 고민이 필요하다.
일단 그동안 인정해오지는 않았지만, 프로덕트의 소프트웨어 부분 리더 - 혹은 관리자 - 라는 성장 방향이 분명 있을것 같다. 이 방향은 도메인을 가리지 않고 명확한 도메인을 가진 기획자 - 혹은 고객 - 으로부터 요구사항을 받아 그것을 소프트웨어적으로 구현하는 동안 잘 구현될수 있도록 프로젝트를 리딩하는 개발자가 되는 것이다. 이 방향의 특징은 하나의 도메인을 완벽히 잘 알지는 않지만, 주어진 도메인을 이해하여 현재 파악하고 있는 소프트웨어 제약사항내에서 프로덕트를 개발하는것이 주된 업무이기 때문에, 일감이 끊이지 않는다
라는 강력한 장점이 있다.
이러한 일을 잘 수행하기 위해서는
- 가능한 도메인의
핵심내용
들을 잘 파악하고 있어야한다- 도메인의 핵심적 내용들은 도메인끼리 공통적인 경우가 많으며 이런식의 파악을 하여야 많은 도메인을 커버할 수 있다.
- 도메인을 구현할수 있는
여러 기술들
을 잘 알고 있어야 한다.- 혹자는 이것을 트랜디한 개발자라고 하기도 하는데, 구현에 적합한 기술의 장단점을 잘 파악하고 있는것은 실행에 있어서 더욱 정확한 예측을 가능하게 한다.
- 서비스를 넘나들수 있는 커뮤니케이션 능력이 있어야 한다.
- 사실 이 내용은 핵심내용을 잘 알게되어 도메인 커버리지가 넓어지면 자연스럽게 해결되는 문제이기는 하다
- 다만, 외부 연동 내용이
제약사항
이 될 수 있음을 알아야한다.
대체적으로 커리어를 쌓으면 한 방향으로 도메인이 굳어지고 그것이 다음 커리어 선택시에 영향을 미치게 되므로 많이 다뤄본 도메인을 다루게 되고, 이 방향으로 계속 성장하면 요건을 받아
소프트웨어적인 구현물을 내놓는
, 프로덕트 생산 조직의 리더가 된다.
다른 방향으로 위에 언급된 여러 기술들
들 중 하나를 다른 기술보다 뛰어나게 개발하는 개발자로 성장하는 방향이다.
이 방향은 기술간의 경쟁에서 뒤쳐지면 역사속으로 사라지는 단점 뿐만 아니라 도메인 영역 자체의 수요가 떨어지면 일감이 끊기는 단점이 있으나 요건을 자신이 만드는 경향
이 크기 때문에 개발의 만족도는 더욱 높을 수 있다.
그리고 다른 영역과 마찬가지로 소프트웨어에서도 갑자기 튀어나온 신기술은 거의 없기 때문에 자신이 맡은 기술을 정확하게 파악하고만 있다면, 해당 기술과 비슷한 기술이 투자를 받기 쉬운 상황이 되었을때, 해당 부분을 지휘 및 구성
할 수 있는 리더가 될 수 있다. - 물론 이러한 부분은 사실 다른 요건들과 합쳐져서 프로덕트가 되기 때문에 위에서 언급한 프로덕트 조직과 연계될 가능성이 매우 높다.
개발자들은 어떤 성장의 방향에 속하든지, 자신이 속한 도메인을 명확히 알아야 하는데, 이를 위해서 핵심 내용 도출
이 잘 되어야하고, 자신이 짠 코드가 가능하면 다른 부가적인 설명없이 이해 가능해야 할 것이다 - 기억해야될 내용들이 많으므로 하나의 내용은 명확하고 각 내용의 연결은 자연스러워야 한다. (물론, 명확한것이란 무엇
이며 어떤한 연결이 자연스러운 연결
인지는 일종의 선호일 수도 있고 정량적으로 파악 가능한 내용일 수도 있다. 이것에 대해서는 더 많은 고민이 필요하다)
또다른, 두 성장 방향의 공통점은 좀더 생존할수 있는 여러기술
로 요약될 수 있는데, 요컨대 푸캠프나 바캠프같은 컨퍼런스는 이러한 기술들의 동향을 살필수 있는 경연의 장이라 할 수 있겠다. 따라서 개발자에게 이러한 여러기술을 잘 파악할 수 있도록 하는것이 업무의 연장임을 알아야 한다.
사실 글을 쓴 이유가 내가 회사에서 해야할 일이라는 고민을 정리하기 위해서였는데, 나름 의미있게 정리되었다.
- 개별 도메인의 핵심 내용들을 공유한다.
- 코드 구현에 있어서 명확함과 자연스러운 연결에 대해 고민한다.
- 좀더 생존할 수 있는 여러 기술들을 배우고 파악한다.