굿닥에서의 1년 에 대한 회고.

굿닥에서의 1년,  그 시간에 대해서 생각을 해보다

2017년 1월을 기점으로, 저는 굿닥에 입사한지 1년 가량의 시간을 보내었고, 굿닥의 서비스팀에서의 서비스와 기술, 그리고 사람에 대한 여러가지 생각과 실험을 해왔던 시기 입니다. 공교롭게도 저의 입사시점에 팀은 자연스럽게 리빌딩이 되었고, 이에따라 모든 단계들을 차곡차곡 쌓아 나갔던 시기이기도 하지요.

굿닥에서의 1년은 저의 그동안의 경력 과정에서 가장 다양한 분야에 대한 고민을 하였던 시기입니다.

이전에는 기술, 그리고 주어진 업무를 잘 수행하는 것 만으로도 저의 가치가 충분히 있었습니다. 제가 지속적으로 개발경력을 쌓아왔던 안드로이드 플랫폼과 자바언어 기반의 기술스택을 지속해서 갈고 닦고, 그밖의 기술영역에 대한 호기심을 가지고 작게나마 도전을해오면서 그동안에는 충분히 능력을 인정받으면서 경력을 쌓아 왔습니다. 물론 그 안에서 제품을 주어진대로 만드는 것 보다는 사용자에게 더 나은 가치를 줄 수있는 것들에 대한 고민들은 서비스를 만드는 사람으로서 꾸준히 해왔다고 생각합니다.

하지만 굿닥에서 서비스를 만들어가는 개발팀을 리딩하는 관점에서의 노력은 `개발만` 잘해서는 팀을 꾸려가기 어렵다는 생각을 하였습니다. 어떻게 하면 함께 일을 잘 할 수 있을까? 또는 맹목적으로 주어진 업무를 하는 것이 아닌 업무의 목표와 공감대를 바탕으로 진행될 수 있도록 할 수 있을까? 또한 이 과정에서 주어진 비즈니스 계획을 최대한 실행 할 수 있도록 하는 것.. 이런 것들에 대한 고민이 많았고, 이 모든 것들을 결국 사람이 하기에 사람에 대한 고민도 많이 있었다고 할 수 있겠네요.

굿닥 개발팀에서는 일정주기가 끝나고 회고라는 절차를 통해 잘 했던 것, 부족했던 점을 채우는데, 이 형식에 맞추어 1년여간의 회고를 해보려고 합니다.

고민해 왔던 점.

  • 엔지니어링 문화 관점에서의 고민
    • 굿닥에 적합한 개발방법론이라는 것을 만들어갈 수 있는가?
    • 어떻게 하면 업무라는 것에만 집중할 수 있도록 할 수 있는가?
    • 단순히 주어진 업무를 수행하는 관점 보다 내가 만들어가는 일이라고 생각하고 이를 통한 동기부여를 만들어 갈 수 있는가?
    • 야근의 관점이 아닌 단위시간내에서의 생산성향상을 가져갈 수 있는 방법이 무엇이 있으며, 이를 측정할 수 있는 방법이 있는가?
    • 협업을 하는 과정이 마치 잘짜여진 축구팀 처럼 빠른 단계들을 거쳐 결과물을 만들어 낼 수 있는가?
    • 끊임없는 비즈니스 요구사항들을 어떻게 조율하여 한정된 리소스안에서 수행 할 수 있도록 하는가?
    • 해야하는 일과 하지 않아도 되는 일을 잘 구분하여 결정할 수 있는가?

 

  • 기술적 관점에서의 고민
    • 불안정한 인프라 환경에 대한 개선을 어떻게 할 수 있는가
    • 낡은 코드베이스를 어떻게 개선할 것인가?
    • 신규서비스에 대한 인프라 환경의 테크스택은 어떻게 만들어 가는 것이 좋은가?
    • git을 git답게 쓰도록 만들어 가야하지 않는가(git branch 전략의 도입)
    • 최소한의 서비스 모니터링 환경은 어떻게 구축 할것인가?
    • TDD 기반의 CI를 달성하여 품질과,반복되는 행위를 줄일 수 있도록 하자
    • 새로운 아키텍처의 도입을 통해 기술적 역량을 지속적으로 올릴 수 있는가?

이 중에서 어떤 것들은 적용/개선하였고, 어떤 것들은 시도하지 못한 것들도 많이 있습니다. 

잘 해왔던 점.

  • Jira를 비롯한 협업도구의 도입
    • 굿닥에서는 기존 Asana라는 할일관리도구를 사용하였고, 팀원이 늘어남으로 인해 점점 복잡도가 증가하게 되었습니다. Mantis 와 Jira사이에서 고민하다 Jira를 선택하게 되었고, 아직까지 아쉬움은 있지만 잘 활용하기 위해 노력하고 있습니다. 가장 의미있는 점이라고 하면 일의 추적성이 생겼다는 것과, 좀 더 의미가 있는 기록을 잘 남길 수 있는 토대가 된 점이라고 생각합니다.
  • 현대화된 개발환경 도입
    • 신규 프로젝트를 진행함에 있어 기존 인프라와 무관한 AWS Lambda기반의 환경으로 서버리스 아키텍처를 구성하였고, Android는 MVP패턴의 도입과 RxJava의 도입, Web은 Angular 기반 웹페이지를 구축하였습니다. 짧은시간안에 익숙하지 않은 개발환경에 대해 잘 적응하고, 문제해결을 해감으로 인해 기술선택지에 대한 폭이 넓어 졌다고 생각하네요
  • 우선순위를 조율하면서 다른 부서와 협업을 해왔던 점 
    • 비즈니스, 마케팅조직과 처음 협업을 할때는 요청부터 결과물까지 순탄하지 않았고, 데드라인 가까이 요청이 왔는데도 사전에 진행중인 업무로 인해 상호간의 불만족 스러운 상황들이 많이 발생하였습니다. 우선순위를 팀간의 조율하는 것 뿐만아니라, 요청사항의 근본적인 목적을 이해하고 더 올바른 결과를 나올 수 있도록 기획/개발을 진행하는 문화가 서서히 자리 잡아가고 있다고 생각합니다.
  • 서비스 안정화를 이루어 낸점
    • 당연한 것이지만, 부족한 부분이었고, 고가용성 유지나 트래픽에 대한 대응등을 2016년 동안 여러 단계에 거쳐 해왔습니다. 클라이언트(앱,웹)도 동작에 대한 오류나 여러 해상도에 따른 대응 등을 진행해서 사용자레벨에서의 안정성 확보도 잘 만들어 왔네요.
  • git flow의 부분적인 도입
    • 첫술에 배부를 순 없듯, 플랫폼별로 편차가 있지만 git을 좀 더 git답게 쓰려는 노력을 해 나가고 있습니다. 우선은 gitflow 기반의 브랜치전략으로 feature/release/hotfix 를 중심으로 구성해 나가고 있으며,  merge시점에서 pull request를 통한 코드리뷰도 해나가고 있네요.
  • 개발자간의 기술공유 문화를 만들어 낸점
    • 슬랙을 기반으로 article을 공유하는 작은 실행해서 부터 출발하여, 주단위로 세미나나 기술관련 논의를 하는 테크톡을 통해 조금씩이라도 기술영역간의 간격을 좁히고, 다른 파트에 대해서 접근을 시작하는 문화를 만들어 냈습니다.

아쉬웠던 점.

  • 직무역량의 강화(개인적인)
    • 팀의 여러가지 이슈들을 해결하는 과정에서 스스로 개발자로서의 업무는 상대적으로 감소할 수 밖에 없습니다. 이부분에 대해서는 감내해야 하는 부분이겠지만, 좀 더 밀도있게 스스로의 기술역량 강화와 팀 기술 역량강화를 위해서 시간을 쏟지 못한점이 아쉬움으로 남습니다.
  • 한사람 한사람과의 소통의 시간/피드백의 시간 부족
    •  팀원이 늘었기도 하지만, 업무의 관점에서 커뮤니케이션 하기 바빴다고 생각하고, 업무가 아닌 직무, 성과, 개인계발 측면에서의 소통을 많이 하지 못한점이 아쉽습니다.
  • 회고에 대한 Action Item을 지속적으로 follow하지 못한점
    • 1달에 한번정도 꼴로 업무단위가 끝나면 회고를 진행하였습니다. 회고 자체에 대한 만족도는 여러차례 개선 끝에 향상되고 있지만, 정작 도출된 action item을 지속적으로 챙겨가면서 유지되도록 만드는 노력은 부족했다고 생각이 드네요.

 

2017년에 노력해야하는 것들.

  • CI/CD 의 도입
    • 자동화 관점에서의 필요성은 점점 느껴지지만 도입하는 것이 쉽지는 않은 부분이라고 생각이 듭니다. 당장 해결해야 하는 여러가지 과제들에 우선순위가 밀리는 면이 있지만 2017년에는 개발에 좀 더 집중 할 수 있도록 하는 측면에서라도 빠르게 자동화배포 환경을 도입하는 것이 필요하다고 생각합니다.
  • 기술부채 청산
    • 모든 기술부채들을 줄일 수는 없겠지만, 현재 고도화 하는 영역이나 핵심 기능들에 대해서는 지속적으로 개선하려는 의지가 필요하다고 생각합니다.
  • 생산성 향상과 측정방법에 대한 고민
    • 기본적으로 스타트업은 해야하는 일이 많을 수 밖에 없습니다.(제한된 리소스) 우선순위를 잘 정해서 한다고 하더라도 모두가 공감하는 일들을 해나가려면 생산성이라는 측면에서 접근할 수 밖에 없는데, 주어진 시간안에 더 많은 결과물을 높은 품질을 유지할 수 있는 방법은 결국 개인의 역량강화와 불필요한 낭비를 줄이는 길이라고 생각합니다. 이를 잘 만들어 갈 수 있는 방안을 모색해봐야 합니다.
  • 작게 자주 바꾸는 개발문화
    • 지금도 잘 해나가고 있지만 가설을 기반으로 측정을 자주 하고 더 변경을 통해 실험하는 개발문화를 정착시켜야 합니다.
  • 기술 뿐만 아니라 서비스의 가치도 높이려는 노력
    • 설레는 서비스를 만들 수 있도록 팀 안에서의 의견이 좀 더 반영되고 더 짧은 주기안에 실행할 수 있도록 만들어 가야 할 것입니다.

 


굿닥은 현재 더 좋은 개발자분들과 함께 일하기 위해 각 직군별로 채용을 진행하고 있습니다. (백엔드,프론트) 관심 있으신 분들의 지원 기다리고 있겠습니다.

http://blog.naver.com/goodockorea/220976855845