Ordinary
About

좋은 개발자

profileordilov / 2022. 3. 11

되고 싶은 개발자

취업을 준비하는 입장에서 면접에서 종종 이런 질문을 받습니다. 왜 개발자가 되고 싶은지 물어봤는데 매번 별 생각 없이 답했습니다. 개발할 때 즐겁고 만들 때 성취감을 제일 크게 느낀다고 말이죠.

마찬가지로 3년 후의 모습이나, 어떤 개발자가 되고 싶은지도 물어봤습니다. 그럴 때마다 지금보다 나은, 믿고 맡길 수 있는 개발자가 되고 싶다고 말했습니다.

컴퓨터를 전공으로 하면서 주변 사람들도 개발자가 많았기에 비슷한 대답들을 들었습니다. 그러다가 다른 직업 면접 영상을 보다가 깊게 고민해볼 필요가 있겠구나 느꼈습니다.

내가 생각하는 전문가

어떤 직업이든 단순하게 표현하면 간단하게 표현이 가능합니다. 가수라면 노래를 부르는 사람이고, 요리사는 요리를 만드는 사람입니다. 개발자도 간단하게 말하면 소프트웨어를 만드는 사람이라고 말할 수 있습니다.

하지만 어떤 자격증을 요구로 하는 전문직이 아닌 이상 이런 일들은 누구나 할 수 있습니다. 가수가 아니더라도 노래를 할 수 있고, 개발자가 아니더라도 개발을 할 수 있습니다. 그럼에도 어떤 일을 직업으로 삼는 사람들은 그 일을 '잘'하는 사람일 겁니다.

그 일을 잘하기 위해서 필요한 것들에 어떤 것이 있는지 제 나름대로 생각해봤습니다.

  • 어떤 것이 좋은 것인지 평가할 수 있어야 합니다.
  • 원하는 시간 내에 원하는 결과를 만들 수 있어야 합니다.
  • 스스로 채워나가야 할 점에 대해서 판단하고 실행할 수 있어야 합니다.

제일 먼저 전문가라면 취미로 하는 사람들과 차이를 낼 수 있는 부분이 평가하는 부분이라 생각합니다. 요리사라면 요리 과정이나 요리를 보고 어떤 게 좋은 방법으로 조리하는지 알고, 좋은 요리인지 평가할 수 있듯이요. 개발자도 마찬가지로 코드나 프로그램을 봤을 때, 좋은지 나쁜지 평가할 수 있는 능력이 있어야 한다고 생각합니다. 그걸 볼 수 없고 판단할 수 없다면, 어떤 게 잘하고 있는건지 모르고 자신도 그렇게 하고 있다는 걸 뜻하는 게 됩니다.

다음으로는 시간 내에 일을 할 수 있는지는 말하지 않아도 중요한 부분입니다. 일단 원하는 시간 내에 결과를 못 만든다면 할 수 있는 건 연습해서 실력을 올리고 개선해나가는 것입니다. 이걸 반대로 말하면 시간 내에 결과를 못 만든 건 연습이 부족했고 실력이 떨어진 걸 의미합니다. 예상치 못하게 시간이 촉박한 경우도 있지만, 언제나 최적의 환경을 유지할 수는 없습니다.

마지막으로 스스로 개선해나갈 점을 찾고 해내는 건 어느 직업이나 필요합니다. 자신의 건강, 부족한 실력일 수도 있고 새로운 트렌드를 파악하고 익히는 것도 포함됩니다.

여기까지가 일반적으로 자신이 직업으로 삼았으면 해낼 수 있어야 한다고 생각하는 부분입니다. 그렇지만 이런 부분들은 직업으로서 어쩌면 당연히 갖춰야할 부분이고 되고 싶은 것이랑은 차이가 있다고 느꼈습니다. 마찬가지로 돈을 많이 버는, 명예로운 같은 수식어는 직업으로서 전문가의 영역에 다다를 수록 얻는 부가적인 것으로 생각되었습니다. 굳이 어떤 특정 직업에서 될 수 있는 게 아니라, 어느 분야에서도 최고에 가까워지면 얻는 것이요. 그런 점에서 되고 싶다는 걸 다시 생각해봤습니다.

좋은 개발자

일단 되고 싶다는 것은 그런 모습이 좋다고 생각하기에 되고 싶을겁니다. 그 기준은 사람마다 너무나도 다릅니다.

선생님이라고 한다면 수업을 잘 가르쳐주는 쪽, 인격적으로 성장시켜주는 쪽으로 갈릴 수 있습니다. 학생을 대할 때도 누구나 평등하게 대해주는 쪽, 어려운 친구들을 끌어주며 이끌어주는 쪽이 좋은지 정답이 없습니다. 그 기준들은 그 사람마다의 경험과 가치관에 의해 결정되는 것이니까요.

그런 기준에서 제가 생각하는 좋은 개발자는 판단력을 갖추고 그 판단으로 남들을 충분히 설득할 수 있는 능력이 있는 사람입니다. 먼저 제가 생각하는 개발자들은 언제나 선택의 기로에 놓여있습니다. 어떤 기능을 먼저 만들지, 어떤 식으로 해결할지, 이걸 만드는 게 맞는 건지 계속해서 고민하게 됩니다. 그럴 때 잘못된 판단을 내리면 쉽게 풀어갈 문제를 오래 걸리거나, 나중에 엄청나게 큰 문제로 다가오기도 합니다. 개발자가 비즈니스적인 문제를 기술로서 푸는 사람이라고 한다면, 잘못된 판단은 당연히 비즈니스 적으로 큰 손해를 불러옵니다. 따라서 미래까지 생각하지만 현재 상황을 고려한 판단을 내릴 수 있는 개발자가 좋다고 생각했습니다.

하지만 이런 판단을 했지만 다른 사람과 협업할 때 원하는 결정으로 못 끌고 가는 경우를 많이 봤습니다. 생각은 했지만 정리가 안되서 말로 표현을 못하거나, 자신의 입장에선 맞지만 다른 사람의 입장을 배려하지 못하는 경우도 있었습니다. 혹은 평소에 이미지가 안좋아 괜히 신뢰성이 떨어져 보이거나, 논리가 아닌 감정을 앞세워서 설득력이 떨어지는 경우도요. 그런 점에서 혼자 일하면 모를까 팀으로서 일한다면 자신의 판단을 믿을 수 게 만들 능력이 필요한 것 같습니다. 평소에도 뛰어난 모습을 보이거나, 커뮤니케이션 능력, 그리고 사람을 대할 때 기본적인 태도, 배려, 성격처럼 말이죠.

그래서 해야할 일

그래서 더 많이 보고 배우고 경험해서 좋은 판단을 내릴 수 있는 기준을 만들려고 합니다. 좋은 판단도 선택을 여러 번 해봤어야 실수도 하고 회고하면서 내릴 수 있는 것이니까요. 그리고 글을 더 잘 써보려고 합니다. 글도 자신의 판단에 대해 남들에게 설득시키는 과정이니까요. 기술적으로 뭔가 더 잘 한 글에 비해 더 가독성 있고 잘 설명한 글에 눈길이 갈 때가 많습니다. 그런 개발자들을 보고 배우며 제 판단을 설득시킬 수 있는 개발자가 되고 싶습니다.