Post

효율적인 개발자 목표 설정 가이드

글을 쓰게 된 이유

기존에는 설계에 대한 가이드라인을 작성해 보려고 했지만 출장 동안 단 한 글자도 작성하지 못한 채 1주가 지나갔기 때문에 주제를 바꿔서 어떻게 목표를 선정할 것인가?를 주제로 정답은 정해져 있지는 않지만 어떤 식으로 접근해 보면 좋을지를 작성해 보고 저의 이야기도 글에 녹여보려고 합니다

한 가지 더 과도한 정보라고 생각하나 최근에 회사 내에서 깊은 교류 관계는 없었던 분이지만 그분의 상황에 대한 미숙한 대처로 인해서 회사에 불미스러운 일이 발생했습니다. 앞선 일과 관련하여 징계시말서의 유무를 떠나 회사 구성원에게 차가운 시선을 받는 것을 보며 총을 쥔 사람이 내가 아니라면 총구는 누구에게나 향할 수 있다라는 생각을 하게 되었습니다

일이 옳으냐 그르냐를 떠나서 누구나 그런 일에 직면할 수 있을 것이며 이에 대한 빈도를 줄이거나 능동적으로 대체할 수 있게끔 하기 위해서는 자아 성찰의 기회가 필요하다고 생각했습니다.

결론적으로 나는 어떤 사람 어떠한 개발자가 되어야 할 것이며 어떠한 목표를 향해 달려야 하는가 대해 고민을 하게 되어 이러한 글을 작성하는 상황까지 이르게 되었습니다.

잡설이 조금 길어졌던 것 같네요. 바로 글에 대한 본론으로 넘어가 보도록 하겠습니다

무엇을 하고 싶은가요

과거 제가 취업 준비생이던 시절 어떤 기업에서 면접을 봤던 적이 있습니다. 그 기업의 CTO님께서 저에게 하신 질문입니다. 무엇을 하고 싶으신가요? 저는 이 질문에 대해서 그냥 백엔드 개발을 하고 싶다는 단순한 답변을 드렸던 적이 있습니다.

물론 당연하게도 의도는 그것이 아니었을 것이고 그걸 물어본 게 아니라고 이야기 해주셨습니다. 질문 답변도 잘하고 있었는데 아마 그 때 이것 때문에 불합격 한 것 같네요

eeveelution

사진 출처: wikipedia

현재 시점으로 돌아와서 과거에 받았던 질문의 의도를 생각해 보면 어떤 목표를 가지고 도착 지점으로 향할 것인가라는 이야기라고 생각합니다. 물론 아닐 수도 있습니다. 혹시나 이 글을 보시는 CTO님 자신의 이야기라고 생각된다면 답변 부탁드립니다

저는 이 질문을 보면 포켓몬스터이브이가 생각나더라고요 이브이는 기본적인 형태에서 무려 8종으로 진화할 수 있습니다. 진화의 돌이라는 물품으로 어떠한 형태로 진화가 가능하고 또한, 특정한 기술을 익힌 채 레벨을 올려도 다른 형태로 진화가 가능합니다. 엄청난 가능성을 품고 있는 포켓몬입니다.

사람에게도 동일하게 적용되며 그 안에 직업 내에서도 이를 설명 가능합니다. 여러분도 그렇고 저도 포함되며 무한한 가능성을 가지고 있으며 다양한 형태로 진화할 수 있습니다.

다양한 형태(=분야)로 진화에 대해서 개발자를 예시로 들어보도록 하겠습니다.

  • 프론트 엔드(Front-End)
  • 백엔드(Back-End)
  • 데브옵스(DevOps)
  • 데이터 사이언(Data Scientist)

전부 나열하기에는 너무 많을 것 같아서 생각 나는 정도만 적어보았습니다. 저는 이것들은 어떻게 보면 종착점이라고 생각합니다.

과거에 제가 이야기 한 것처럼 백엔드 개발을 하겠다(=백엔드 개발자가 되겠다)는 단순하게 최종적인 종착점(=목표)을 이야기한 것입니다. 왜 하고 싶으며 어떻게 할 것이며 어떠한 결과를 낼 것인지에 대해서 없는 것입니다.

그렇다면 어떤 식으로 목표를 잡아야 할지에 대해서 한번 이야기해 보도록 하겠습니다.

개발자로써의 목표

개발자로서 가질 수 있는 목표는 어떤 것들이 있을까요? 간단하게 몇 가지만 나열해 보겠습니다

  • 팀을 원활하게 돌아갈 수 있게끔 하는 협업 능력 향상
  • 새로운 기술을 습득하여 기술적 역량을 향상하는 일
  • 오픈 소스 프로젝트에 기여하는 일
  • 개발 커뮤니티나 개인 블로그에 지식 공유 활동

여기서 항목으로 적은 것들 말고도 더 많은 목표가 존재할 것이라고 생각합니다만 일단 이것 들을 가지고 이야기 해보도록 하겠습니다. 만약 과거로 돌아가서 면접을 다시 본다 가정하고 이 중에서 하나의 항목에 대해서 답변을 했다고 해도 미래는 바뀌지는 않았을 것입니다. (과학적으로 불가능하다 그런 이야기를 떠나서 말입니다)

아직은 어떻게(How)에 대한 추가적인 방법에 대해서 설정하지 않았기 때문일 것입니다. 지식 공유 활동을 하는 것을 목표로 잡고 있다고 해도 무언가 일어나는게 아니며 아직은 어떻게 할 지가 정해진 상태는 아닙니다.

조금 더 살을 붙여보자면 특정 기간에 몇 개가 될 수도 있을 것이고 일정 기간 마다 글을 작성해서 지식 공유 활동을 한다로 정리해볼 수 있을 것 같습니다. 여기서 확장하여 작성한 글을 통해 회사동호회에서 특정 주기마다 발표를 하겠다 등으로 점진적으로 확장해 나갈 수 있을 겁니다.

인간으로써의 목표

조금 더 큰 분류로 넘어왔다고 생각이 드네요 앞서 설명한 개발자로써의 목표와 현재의 인간으로써의 목표가 겹칠수 도 있을 것 같습니다.

여러 항목이 존재할 것 이라고 생각하는데 이것도 한 번 정리해보도록 하겠습니다

  • 경제적인 자유를 획득하는 것
  • 끊임 없는 자기 계발과 학습을 통한 자아 실현
  • 대외 활동을 통한 여러 사람과의 사회적인 관계 형성

여기서도 개발자로써의 목표를 설정했던 방식과 동일하게 어떻게 할 것인지에 대한 세부적인 사항을 선정해야 할 것입니다. 조금 차이가 있다면 인간으로써의 목표는 개발자로써의 목표보다 조금 더 볼륨이 클 확률이 높다는 것 입니다.

간단한 예시를 들어본다면 만약에 경제적인 자유를 얻는 것을 목표로 잡는다고 하고 10억을 모으기 라고 한다면 세부적인 목표를 설정한다고 하여도 상당히 장기전으로 갈 것이며 성공하지 못할 확률도 높을 것 입니다.

게임으로 비교해보자면 게임 클리어에 10~20년 혹은 그 이상 걸리는 게임이 존재한다면 어떨 것 같으신가요? 아무리 재밌는 일이라도 언젠가는 흥미를 잃게 되는 순간도 올 것입니다.

목표를 설정하되 하나의 목표에 너무 얽매이는 일이 발생하면 안 될 것이라는 이야기입니다. 결국에는 도착지에 도착하는 시간만 다를 뿐 꼭 주어진 길로만 가야할 이유는 없습니다. 오히려 반대로 샛길이 지름길이여서 더 빨리 도착할 수 도 있다고 생각합니다.

목표는 중요하지만 목표를 부가적인 도구라고 생각하고 너무 얽매이면 반대로 독이 된다

결과에 대한 검사

목표를 정해서 실행 했다면 이 목표로 인해 산출된 결과(Result)가 존재할 것 입니다. 결과에 대한 검사는 부족한 점을 보완하기 위한 필수적인 작업이라고 생각 합니다.

만약에 기술역량 향상을 목표로 삼았다면 언어일 수도 있을 것이며 프레임 워크개발 도구 등에 대한 숙련도가 올라갔을 것이며 큰 차이는 보이지 않을 수 있지만 코드 가독성이나 유지 보수성 향상이 일어 났을 것 입니다.

협업 능력 향상이 목표 였다면 팀과의 원활한 소통이 일어난다거나 자잘하게 발생하는 이슈의 빈도가 적어졌다 등의 여러 결과가 일어날 수 있을 겁니다.

물론 유의미한 결과를 못 낸 경우도 존재할 겁니다. 새로운 기술을 습득 했지만 기술 습득 기간을 짧게 잡아서 심도 있는 지식을 얻지 못했 다는 경우도 존재할 겁니다.

이런 식으로 결과를 나열해 보면서 얻은 점과 부족해서 보완할 점을 나열하면 다음에 있을 목표 선정 때 좀 더 확실한 목표를 잡고 결과에 도달할 수 있을 거라고 생각합니다.

끝 마치며

벌써 한 해의 끝을 향해 달려가고 있네요 저는 이번 한 해 엄청 정신 없이 보내서 시간 가는 줄 몰랐네요 좋은 일도 많았고 반대로 아쉬운 일도 여러 번 있었지만 그래도 결과적으로는 즐거운 한 해를 보낸 것 같습니다. 크리스마스를 차갑게 보내는 것만 빼면 말입니다 🥶🥶🥶

몇 주 뒤인 다음 해에는 작년에 대한 회고록을 작성해 보면서 이야기를 정리하고 나아가서 새로운 새해 목표를 한 번 선정해봐야 겠습니다.

긴 글 읽어주신 것에 대해서 감사의 말씀 전달드리며, 다음에는 조금 더 좋은 글 보여드릴 수 있도록 노력하겠습니다.

감사합니다.

참조

매슬로의 욕구단계설

This post is licensed under CC BY 4.0 by the author.