ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 개발자로 지내면서 겪는것들
    잡동사니/Developer 2019. 2. 22. 13:56
    반응형

    개발자 

     

     원래는 모든 분야의 개발에 대해 사용되는 용어다. 그런데 대한민국에서는 개발자라고 하면 주로 '소프트웨어 개발자'를 떠올리곤 한다. 이것은 외국도 마찬가지라서 위키백과에서 Developer를 검색해보면 Software Developer와 Game Developer가 나온다. Developer라는 용어가 사용되는 또 다른 중요한 분야인 부동산 개발 분야는 우리나라에서는 오히려 '디벨로퍼'라는 단어가 사용되고 있다. 영미권에서는 Developer 를 줄인 Dev라는 이름으로 불리는 일도 많다. 일명:개팔자



     나무 위키의 정의는 저렇다. 이제 횟수로따지면 8년차 낼모레 10년이 다되간다. 늙었다. 누가보면 꼰대처럼 보일 년차가 다되간다. 한편으로는 이제부터 시작이 아닐까?  주변에 20년 되신 개발자분을 보면 난 아직 멀었단 생각이 들기도 하다. 

     많으면 많고 적다면 남들보다 적을수 있는 직장을 다녔고 이젠 최소한 밥값은 하는 년차가 된거 같다. 년차에 비해 아직 모자르다고 스스로 생각을 하고 있지만 게으르다보니 마음처럼 그렇게 쉽사리 뭔가 시도해보지 못하는거 같다. 동기부여가 약해서 그런지도 모르겠다. 


     내가 개발자다 보니 주변도 개발자가 많다 학교동창, 친구, 지인, 친척 등 나와 연관된 일에 종사하는사람이 많다. 작게는 SI 기업부터 크게는 대기업다니는 사람도 다수 있다.  그리고 나랑 같은 직업을 가지고 있는 사람 제법 많다. 

      내가 알고있는 개발자라면 이정도는 해야지! 라는 생각의 범위와 나랑 동종업계 다니는 사람들과의 거리, 그리고 회사의 입장에서는 과연 나에게 어느정도의 원하는것일까 ? 


     처음 일을 시작하기전에는  그저 개발자는 C 개발자 , java 개발자 뭐 이런식으로 나누는줄 알았다. 학생일때는 그냥 막연하게 상상만해서 그렇지 않나 싶다. 너 뭐 전공해 ? 이정도 ?

     지금은 내 기준은 서비스별인거 같다. 임베디드 , 웹, 모바일 등... 그리고 내가 속한 웹 개발은 프런트와 백엔드 정도로 나누는 것같다. 

    난 백엔드 개발자 다. 흔히 많이 볼수있는 자바를 사용하고 그외 다른것들 어설프게 조금조금 사용하는 흔한 개발자다. 그럼 나무위키에 나오는 정의에 가깝나 라는 생각을 해보면 난 아직까지는 위키상의 정의에 가까운거 같다. 


     프로그래밍 언어를 쓰고 서비스를 구축하기위한 설계를 하고 그리고 원인을 해결하기위한 R&D 를 한다. 순수하게 보면 이게 소프트웨어 개발자가 항상 하는일이 아닌가 싶다. 

     근데 잘 살펴보면 주변사람들은 저것들 이외의 것들을 다양하게 많이한다. 요청자의 요구를 분석하여 정의 하기도하고 제대로 만들어졌는지 테스트를 같이 테스터들과 함께 하기도 한다. 이것은 과연 기획자인가 개발자인가 테스터인가? 그리고 내 지인중에는 고객 집까지 찾아가서  사과하는 경우도 보았다.  그리고 서비스 장애가 나면 그 장애에 대한 모든건 개발자 혼자 분석하고 대책을 내놓기도 한다. 


    왜 개발자들은 뭔가 다양한것들 할까 라는 생각이 들었다.  내가 잘못하고 있는건가 ?


    - 요구사항정의하고 화면구상하고 그걸 문서화하는건 보통 기획팀이 하는거아닌가 ? 개발자들이 UX 를 하면 정말 자기 편한대로 할텐데 그거 생각을 못하나 ? 난 내가 기획해서만든 화면은 만들고도 마음에 안든다.

    - 테스터가 있는데 테스트까지 개발자가 ? 개발자도 단위테스트를 하고 주는거 아닌가...  근데 시나리오까지 ? 개발자가 과연 테스트가 될까 ? 본능적으로 자기가 만든대로 합리화시키며 테스트 할텐데 ? 혼자 과연 그 많은 버그를 찾아 낼수 있을까 ? 전문 QA가 붙어서 테스트 해도 버그가 나오는 경우를 너무 많이 봤는데 ..... 

    - 장애가 나는 원인은 다양하다 근데 왜 개발자가 다하지 ? 시스템팀은 ? 네트워크팀은? DBA 들은? 하다 못해 기획이.. 잘못됬다면 ?


    이런생각들을 하다보니 내가 굉장한 회사내 불순분자(?) 가 되있는거 같단 느낌이 들었다. 

     예전에는 그런생각이 들어서 열심히 해야지 하는 생각에 저런것들은 시키면 그냥 다 했던거 같다. 그때 기준으로 말하면 배가 불러서 혹은 일하기 싫어서 이렇게 불순한(?) 생각을 하는건가? 

     그랬다면 난 스스로 기준에 아직 함량 미달일것이다. 경험이 이렇게 나를 만든거 같다. 

    내가 기획하면 항상 뭔가 빠지거나 목적과 조금 달라져있다. 왜냐면 내가 만들기 때문이다 만들기편하게 나도 모르게 만들고 있다. 

    내가 테스트하면 항상 잘된다. 가장 많이 했던 말인거 같다. 내자리에선 되는데 왜 당신자리에선 안될까요 .... 나도 모르게 테스트를 자기합리화 하고 있다. 

    내가 장애 파악하면 항상 다른이유들때문에 원인 규명이 안된다. 장애날경우 트래픽, 디비 수치 , 하드웨어 자원, 서비스로그 다보려니 눈이 두개라 다 안들어온다. 나도 모르게 서비스만의 문제로 착각을 하고 있다. 사고는 다른데서 터지고있는데 말이다. 


     결론적으로는 이모든걸 다 해낼수 있는 능력이 부족해서  문제가 있었던거였거 같다. 기획도 놓친게 많았고 테스트도 부실했다 그리고 하드웨어 자원이 모자를거란 생각을 하지 못했다. 


     그럼  과연 내가 개발자란 직업을 가진 사람으로써 회사에선 어떻게 생각할까 ?


    내가 경험한 회사들은 각기 반응이 달랐던거 같다. 

     스타트업 회사에선 관대했다. 뭔가 사람이 없는데 그래도 너라도 그나마 그정도 해줘서 고맙다 였다. 

    중소기업에서는 회식자리에서 겁나 한소리 들은거 같다. 그렇게하면 안된다고 영업팀장한테 그리고 기획자한테 ㅠㅠ 

    중견기업에서는 피드백이 오히려 없었던거 같다. 그러다 지나고보면 그냥 내가 독박으로 평가가 깎여있었다. 

    대기업에서는 팀장님이 엄청나게 변호를 해주셨다. 근데 지금 와서 생각해보면 내가 잘못하면 그분 평가가 잘못되서 그랬다고 하더라 


     나름 경험한 바가 있어 지금은 회사를 선택하는 기준 중에 하나가 부서 구성을 꼭 본다.  영업/기획팀은 있는지,  품질테스트 하는 부서는 있는지 , 개발부서는 어떻게 구성 되있는지 항상 확인하는거 같다. ( 물론 부서가 있다고 다 서로 유기적으로 일이 돌아가진 않았다 )


     내가 할수는 있지만 어느곳에 신경을 더 쏟냐에 따라서 다른것들은 상대적으로 퀄리티가 떨어지는거 같다. 난 개발자다 당연히 개발에 신경을 더써야 하고 더 좋은 서비스를 만들기위해 노력을 해야한다. 


    근데 저런것들을 하나하나 신경쓰다보니 개발보단 다른것들을 더 신경쓰게 된다. 그나마 테스트는 개발할때 내가 더 꼼꼼히 진행을 같이 할 수 있지만 그외 대외적인것들은 벅찼다. 개발할시간에 회의를 했다 하루에 두세개씩 끝나면 간신히 개발을 시작하고 별보면서 한숨쉬는 날이 매일매일 늘어났다. 그러니 퀄리티가 전반적으로 낮아 질수 밖에 없는거 같다. 


     예전에는 그래도 해야지 어떻게 하겠어요 라고 생각했는데 지금은 약은 약사에게 진료는 의사에게란 생각이 든다. 내가 할줄 알아도 경력있는기획자보다 기획을 잘할거 같진 않다.  그리고 테스트를 하더라도 전문테스트의 기발함을 내가 따라잡긴 힘들다. 할수있는 사람이 있다면 요청하고 협업하는게 맞는거 같다. 


     각자의 직군이 있고 그사람들이 할일이 있다. 그 사람들도 그 일하고 돈받는데 내가 그일을 하는건 엄연히 Role 위반 아닌가 싶다. 

    그리고 일단 그분들은 각자 그것이 직업인 말그대로 프로다. 내가 물론 천재적인 능력이 있다면 상관없겠지만 범인이고 개발능력치만 그분들보다 높다. 잘하시는 분들이 있다면 도움을 요청하고 같이 하면 되지 않을까 ? 


     그럼 내주변 사람들은 나같은 생각이 들떄 어떻게 하는지 알고 싶었다. 내가 일을 배우면서 보았던 개발자분들을 보면 둘중 하나였다. 

    묵묵히 시키는대로 하다가 힘들어서 이직 하시거나 이건 아니다! 라고 열혈 토킹을 하시다가 화나서 이직하시거나 .... 내 직군은 항상 끝은 이직인거 같다 ㅋㅋㅋㅋ 물론 잘 버티시는 분들도 있었다. 

     묵묵히 하시는분들은 그래도 어쩌겠어, 말해봐야 소용없어, 저쪽은 그럴능력이 안되니 우리가 해야지 라는 반응이 많이 있으셨다. 저렇게 순응할수 있겠다 싶었다. 


     열혈토킹을 지향하시는분들이 무조건 나쁜분들은 아닐것 같다. 무조건적인 부정이 아니라 근거가 있고 열의가 있어서 하시는 분들도 많다.  항상 업무에 대한 영역에 강조를 하셨다. 개발자는 그런거 하는거아니다!! 라고 극단적으로 말씀하시지만 내용은 결국 각자의 직군에 맞는일을 하고 다른직군일 까지 간섭하지 않아야 한다는 이야기다. 그건 그사람의 일을 뺏는거기 때문에 .... 


    묵묵히 일하거나 불타오르며 일하는 것 둘다 맞는 부분도 있고 아닌부분도 있다고 본다. 


     내가 다녔던 스타트업, 중소기업, 중견기업, 대기업 계열사 ... 


    스타트업은 당장 살아 남는게 문제고 중소는 빨리 커서 안정화 시키는게 급선무이다. 중견은 잘유지하길 바라거나 남들보다 더 나아지길 원한다. 대기업은 실적을 항상 잘나오는게 목표인거 같다. 


    각자의 회사의 목표가 다르고 저 와중에 각 업체별 서비스하는거에 따라 그 목표의 성질은 대부분 더 디테일하게 달라진다. 


    그안에 소속된 개발자들은 결론적으로는 여러가지 needs 를 처리해줘야 하고 그 과정에선 감수 해야하는 부분이 참 많아지는거 같다. 


     아는 지인의 이야기다 회사가 외국계 회사다 내부에는 한국인보다 외국인이 더많다. 그리고 외국인들과 프로젝트를 진행하면서 제일 황당했던건 

     " 해보다보니 못하겠어요 미리 전 빠질게요. 그전에 해놓은거 전달해 드리겠습니다. "


    우리나라에선 아마 상상도 못하는 문화일거 같다. 무조건 기간안에 해내는것 이외에 다른걸 상상하지 않는다. 하지만 잘 생각해보면 내 능력이 안되는데 어거지로 붙잡고 이상한걸 만드는거 보단 깔끔하게 인정할건 인정하고 포기하는게 회사나 동료들한테 피해를 덜주는게 아닌가라는 관점에선 외국개발자가 한 저행동이 과연 잘못됬다고만 할순 없을거 같다. 


     능력없는 개발자, 기획자, 엔지니어들이 분명 존재한다. 우리가 학교 다닐 때도 전부 공부 다 잘하지 않았다. 어딜가든 잘하는 사람과 못하는 사람이 있는건 같다고 본다. 그럼에도 불구하고 모르면 모른다 내 능력으로는 안되겠다 하는 개발자, 기획자, 엔지니어들은 못본거 같다. 분명 잘하는사람은 할수 있겠지만 못하는 사람 입장에선 벅찰수도 있다. 하지만 우리나라 문화상 내가 남들보다 못하다는걸 표현하는건 극도로 꺼려하는건 어쩔수 없는 현상이란걸 너무 잘안다. 나도 바로 못하겠다고 말을 쉽사리 하지 못하기 때문이다. 


    난 개발자가 어디까지 해야한다라는 업무의 영역은 이미 정해져 있다고 본다. 단지 회사에서 혹은 사회에서 나에게 다른것들을 더 요구하는 경우가 생기는것 뿐이라고 생각한다.  나 스스로는 내 영역을 지킬수있다면 지켜야 한다 생각한다. 그것이 더 품질 좋은 프로젝트를 진행할수 있다고 생각하기 때문이다. 이전해도 말했지만 개발자의 기본은 주어진 시간안에 개발을 잘해내는것이다. 

     단지 기획자나 다른 구성원이 능력이 안된다면 내가 만일 그일을 도와줄수 있다면 Needs 를 달성하기위해 도와줄수있다고 생각한다. 단지 그걸 마치 원래 그런것 처럼 정형화 하는 회사 혹은 관리자들이 문제가 아닐까 싶다. 원래 하는게 아니고 이번엔 예외적으로 같이 한다의 개념만 잊지 않는다면 개발자가 다른일을 같이 해보는건 좋은 경험이 될수 있다고 본다. 

     잘하시는 분들, 정치질만 열심히 하시는분과 일도 해보고 정말 답답한 분들과도 일해봤지만 서로 커뮤니케이션이 잘되고 서로 이해를 해줄수있는 관계만 되면 잘하고 못하고를 떠나서 프로젝트 만큼은 잘 진행됬던거 같다. 

     

    "원래 그래요" "여태 그래왔어요"  

    라고 시작되는 순간 고행길이 열린다고 생각한다. 커뮤니케이션이 안되기 때문이다. 


     "저희가 정한것 아닙니다." "우리는 문제 없습니다."

    라고 말한다면 그건 그때부터 서로간의 무한 핑퐁의 시작이다. 일이란건 해결하고 뭔가 더 좋은 방안을 찾는거라 생각하는데 회사가 클수록 사람들은 방어적인 사람들이 많고 마치 저렇게 말안하면 상대가 공격할거라고 생각하고 일단 전투모드로 임하는 사람들이 다수 보였다. 굳이 그래야할까... 같은 프로젝트에 속해있다면 잘 정리해서 빨리 끝내는게 서로에 더 시너지가 날거 같은데 말이다.


     업무 영역, 업무의 성과, 업무의 책임이란게 단순히 직군과 명확한 업무 Role같은걸로 정해진게 아니라 사람간의 관계로 인하여 늘어나고 줄어들고 얽히고 설킨다는 것참 안타깝다. 어짜피 같은 회사에 같은 동료인데 잘지내면 좋지 않을까 ? 


    난 요즘 많은 사람들이 이야기하는 꼰대가 되고 싶지 않다. 쓸데 없는 고집과 아집으로 사로잡히지 않고 싶으며, 도전하는거에 거부감이 없던 초심을 잊지 않고 싶다. 쓸데없는 정치질과 임기응변 멘트로 정치질을 하고 싶지 않다. 유능한 개발자가 아직 못되었기에 유능한 개발자가 되고 싶고 적어도 같이 일하는 동료들에게는 좋은 동료 , 좋은후배 , 좋은 선배 정도로 기억에 남으면 좋겠다. 


     아직 일할 날들이 많이 남았고 이제 이런것들은 고민하는것 보면 초보딱지는 땐거 같다. 이제 10년도 채다 못채운경력이기에 아직 갈길이 멀다고 생각한다.  항상 내 개발 인생의 목표는 좋은사람들과 즐겁게 일하는것이다. 그 어떤것보다 어렵지만 어려운 일이기에 해내면 그만큼 더 보람이 있지 않을까 싶다. 


     






    반응형
Designed by Tistory.