안녕하세요 멘토님. 저는 언젠가 꼭 저 만의 비즈니스를 하고 싶은데요. 하지만 무작정 혼자 사업을 하는 것보다는 배울 것이 많은 곳에서 성장하고 싶습니다.
©️Fernando Hernandez
멘토님께서는 어떤 곳에서 일해야 성장할 수 있다고 생각하시며, 어떻게 하면 개발자의 몸값을 높일 수 있을까요? 멘토님의 의견이 궁금합니다.
안녕하세요! 비가 많이 내려서 여러 곳에서 어려움을 겪고 있는 8월 중순이네요. 내노라 하는 기상청 예보관들도 세계 수위권에 있는 슈퍼컴퓨터를 통해 데이터를 처리하고 있음에도 하루 앞의 일기 예보가 적중하지 못해 많은 어려움을 겪고 있는 기상청 직원들을 보면 남의 얘기가 아닌 거라는 생각이 드네요. 하루 앞의 일기예보도 쉽지 않은데, 10년 뒤에 미래를 예측한다는 것은 그 누구도 어려운 일입니다. 그것은 멘티님도 저도 마찬가지겠죠.
저도 사회 초년생일 때는 여러 가지 상황을 보면서 제 앞날이 어떨지 짐작을 못 하고 방황한 적이 많았지만, 그래도 하루하루를 최선을 다해서 지내다 보니 어느 순간 제가 원하는 방향으로 조금씩 가고 있다는 걸 느낍니다.
사실 진작 답변을 드렸어야 했는데 사실 답변 내용이 떠오르지 않아서 계속 고민을 하다가 오늘에서야 답을 적어봅니다. 질문을 주셨으니까 그에 대해서 제 이야기라도 적는 게 마땅한 도리 같았어요.
멘티님이 주신 질문이 아마 제가 지금까지 받았던 질문 중에 가장 어려운 질문이 아닌가 싶기도 하면서, 그만큼 답변이 어쩌면 맘에 들지 않으실 수도 있지 않을까 하는 걱정이 앞서지만, 아무튼 제 생각을 한번 적어보겠습니다.
©️Fotis Fotopoulos
개발자의 성장은 여러 가지 뜻을 내포하고 있습니다. 물론 이는 개발자뿐 아니라 다양한 직무에서 일하는 많은 사람들도 같겠죠. 개발자는 일단 기술적으로 많은 지식을 얻는 것을 성장이라고 할 수 있겠죠? 가령 javascript 만 다루는 사람이 jquery 라는걸 배우고, vuejs 나 angular 나 jango 같은 프레임웍을 배워 나가면 성장했다고도 이야기 할 수 있을 겁니다.
또는 다양한 프로젝트를 해보는 것도 성장이라는 표현을 써도 좋을 듯하다고 생각합니다. 가령 A라는 프로젝트도 해보고 B라는 프로젝트도 해보고 프로젝트를 여러 가지 하면서 기술의 패턴이나 실무적인 이슈를 체험하고 해결하면서 배우는 것도 있을 테니까요. 프로젝트를 안해본 사람 입장에서는 하나씩 하나씩 프로젝트를 하면 성장하는 것일 수 있겠네요.
그럼 기술적인 성장만 성장인가? 라고 묻는다면 저는 기술적인 성장은 반쪽뿐인 성장이고, 비기술적인 부분의 체험과 체득도 성장이라고 생각합니다. 가령 잘 모를 때는 요구사항만 듣고도 개발 기간 산정이 어렵지만, 점점 많은 경험이 쌓이면 요구사항을 듣고 개발 기간을 정할 수도 있고 더 나아가서 여러 가지 개발과 관련 없는 이슈들도 인해 늘어나는 기간을 고려하여 개발 기간을 산정하는 능력도 생기겠죠? 이런 것도 성장이라면 성장이라고 할 수 있을 것입니다.
이렇게 따지면 성장이라는 것은 단순하게 기술이다, 프로젝트 횟수 라고 따지기가 어렵다는 생각이 듭니다. 하지만 저는 답을 드려야 하니까 굳이 이것들을 하나로 묶을 수 있는 단어로 이야기한다면 바로 "경험"이라고 말할 수 있을 거 같습니다.
RPG 게임을 하다 보면 캐릭터가 다양한 미션을 수행하면서 얻어나가는 경험치처럼 SW엔지니어도 다양한 프로젝트를 하나씩 경험하면서 기술도 익히고, 실무에서 발생하는 다양한 상황에 대한 시행착오도 익히고, 또 같이 일하는 여러 사람과의 소통 방법을 익히고 그것을 통해 얻는 시너지들을 만들어 낼 수 있다면 그것 또한 경험치이자 성장이겠죠.
또한 개발하고 있는 시스템이나 프로젝트가 속한 분야 공공, 제조, 서비스, 금융 등에서의 업종별 지식을 얻는 (흔히 도메인 지식이라 표현하는 것들) 것 역시 하 아침에 생기는 게 아니므로 이런 것들도 전부 경험이자 성장이라고 저는 생각합니다.
그럼 이런 성장 혹은 경험을 어떤 개발자들이 많이 잘 느낀다고 할 수 있을까요? 그것은 한마디로 이야기할 수 없는 것들이 아닐까 생각이 듭니다. 가령 아무리 좋은 회사고 기술적인 회사라고 하더라도 그곳에서 하는 일이 내 경험에 크게 도움이 되지 않는다면 성장하고 있다고 말하기 어려울 것이고, 반대로 일반적으로 이야기하는 열악한 환경에서의 개발이라도 내가 잘 모르는 분야이고, 기술이라면 거기서 배우고 성장할 수 있는 것이 있을 테니까요.
흔히들 SI 회사나 프로젝트에서 일하면 배우는 게 없고 성장할 수 없다고 합니다. 일정 부분 저도 동의하지만 아무것도 모르는 사회 초년생, 신입 개발자일 때 저는 SI를 하는 프로젝트에서 많은 것을 배웠습니다. 단순히 코딩 실력뿐 아니라 인프라, 네트워크, OS, 미들웨어, DB 등 제가 갖추지 못했던 지식이나 얕은 지식을 실무적 경험을 통해 배웠거든요. 뿐만 아니라 사람들과 소통하는 방법도 배우고, 업무를 협의하는 방법, 메일을 쓰는 방법 등등 그 모든 것들을 그때 배웠는데, 그게 지금 제가 일하고 있는 밑천이 되고 있는걸 보면 SI가 배울 게 없다는 이야기는 약간 선입견이 아닌가 생각합니다.
따라서 먼 훗날 비즈니스를 직접 하시고자 하는 멘티님이라면 단순하게 기술로 개발만 하는 그런 곳에서도 배우겠지만 개발도 하면서 사업이나 기획 쪽 담당자와 협업을 하면서 그들에게서 사업을 꾸려나가거나 서비스나 시스템을 기획하는 것을 함께 해보면 오히려 그게 10년 후의 멘티님에게는 더 좋은 경험이자 성장의 밑거름이 되지 않을까요? 물론 개발자가 사업이나 기획과 밀접하게 엮이게 되면 그일 자체는 쉬운 일은 아니겠죠.
가장 중요한 것은 제 경험상 어떤 환경에서라도 배워보겠다는 마음가짐이 제일 중요한 거 같습니다.
©️James Harrison
참고로 연봉이라는 것은 개개인의 몸값이라는 표현도 되지만 정확하게는 회사가 기대하는 기대치이자 그 개인의 경험과 지식에 대한 값어치라고 저는 생각합니다. 프로 스포츠 선수들의 몸값이라고 이야기하는 것들도 그들이 가진 잠재적 능력까지 포함하는 것처럼 말이죠. 따라서 많은 지식과 경험과 평가를 두루두루 갖추면 자연스레 몸값은 올라간다고 생각합니다.
물론 몸값을 올리는 몇몇 포인트가 있긴 합니다. 가령 일반적으로 한 회사에서 오래 있는 것 보다 이직을 하면 몸값을 올리기 쉽죠. (프로 스포츠 선수랑 똑같죠?) 그리고 한 회사에서도 자신의 실력과 가치를 인정받으면 몸값은 올라가게 됩니다. (이것 역시 프로스포츠 선수랑 같네요)
이런 포인트를 적절하게 잘 이용하면서 협상을 잘하면 조금 더 수월하게 몸값을 올릴 수 있지만, 그 근간이 되는 것은 역시 그 개인의 실력과 경험이 되겠죠.
답변이 조금 되었을까요? 이미 멘티님이 잘 알고 있는 내용을 제가 이야기한 게 아닐까 싶지만. 그만큼 저에겐 어려운 질문이었다는 점 감안 부탁드리겠습니다. 감사합니다.