개발자로 살아남기 / 박종천 지음(2022)

yongseok·2022년 12월 30일
1

책으로 배운 개발

목록 보기
2/2

시작

유튜브를 통해서 저자에 대해서 알게 되었고, 전자도서관에서 책이 눈에 들어와 읽게 되었다. 내가 커리어를 시작하려고 하는 분야에서 커리어를 30년간 이어온 것도 대단하고, 개발자가 아니더라도, 알 수 있는 기업에서 일을 해온 부분도 멋있었다. 좋은 곳에서 좋은 프로세스로 일한 경험을 간접적으로 느낄 수 있었다.

주요 내용 및 적용

무엇인가를 체계화하고 설명하는 것을 좋아하는데, 본인이 걸어온 길을 나름의 체계를 가지고 설명한 것이 이 책을 끝까지 읽은 이유가 아닌가 싶다.

개발 30년 커리어 패스

  • 성장하는 10년: 엔지니어링 역량→ 어시스턴트, 어소시에트, 미드 레벨
    • 개발에 대한 기본 지식
    • 제품에 대한 이해
    • 개발 주기 지식
  • 리딩하면서 일하는 10년: 매니지먼트 역량→시니어, 리드, 프린시펄
    • 프로젝트 관리
    • 팀 관리
    • 프로세스 관리
  • 서포트하는 10년: 비즈니스 역량→디렉터, VP of 엔지니어링, CTO
    • 인사시스템
    • 사업관리
    • 비전과 조직 문화

성장하는 10년, 리딩하는 10년, 서포트하는 10년 총 30년의 커리어별 목표는 꼭 개발자가 아니더라도, 자신의 목표로 가져가도 좋다고 생각했다.

내가 일에 대해서 생각하는 부분 중 하나는 통상 연차를 기준으로 자신의 역량이 부족한 상태에서 수준 이상의 역할을 맡게 된다면 너무 많은 사람이 고통을 받게 된다는 점이다. 우선 맞지 않는 옷을 입은 본인과 답답한 팀원들 그리고 일을 맡긴 사람까지 불행해질 수 있다. 준비하지 않는다면 하루 8시간은 일을 하고 있으니 삶의 1/3이 불행해질 수 있다고 생각한다.

책에서 지금 필요한 역량, 업무, 조직, 회사에 대한 지식을 모아보고, 생각을 정리해 보는 시간을 가지려 한다.

역량

역량 = 지식 + 경험 + 숙련도

나는 역량을 태도, 지식, 기술로 분류하는데, 저자는 지식, 경험, 숙련도를 제시했다. 앞으로 기술을 경험과 숙련도로 세분화해서 관리해 보는 것이 좋겠다.

성과 항목

  1. 생산성 2. 책임감 3. 협업 4. 지식 5. 기능성 6. 좋은 코드 7. 구조 설계와 아키텍처

개인의 성과에 대한 평가항목으로 스스로 계획을 세워서 나의 상태를 점검하고, 어떻게 하면 해당 역량을 성장시킬 수 있을지 주변에 물어보고, 나의 것으로 만들기 위해서 노력해야겠다.

업무

시간 아끼기

  1. 필요 없는 코드
  2. 개발과정에서 기다림(다음 과정이 준비되지 않았기 때문에)
  3. 불명확한 요구사항
  4. 내부 정치
  5. 느린 내부 소통

일을 하면서 항상 듣던(하던) 이야기는 ‘시간이 부족하다’였다. 나와 팀의 시간 사용에 대해서 고민하게 될 때 해당 사항을 바탕으로 무엇이 문제인지 진단에 참고해 시간을 아끼면 좋겠다.

문제 해결 단계

  1. 문제 고르기
  2. 고른 문제를 정의하기
  3. 문제 분석하기
  4. 해결책을 찾고 그중에서 최선의 해결책 선택하기
  5. 선택한 해결책을 실행해도 되는지 결정권자에게 승인받기
  6. 문제가 해결되었는지 확인하기

업무는 결국 어떠한 문제를 해결하는 것이라고 생각한다. 문제해결을 직관에만 의존하지 않고 효과적으로 해결하기 위해서는 어떤 부분을 고민하고 있는지 명확하게 생각하는 것이 중요하다고 생각한다. 추후 함께 이렇게 되는 조직에 문제해결 프로세스가 있는지 살펴보면 좋을 것 같다.

조직

기술적으로 성장하기를 목표로 하는 시점에 내가 일하게 될 조직의 사람과 다음과 같은 이야기를 나누고, 내가 속한 조직을 진단하는 도구로 사용하기 좋을 것 같다. 회사들과 커피챗을 하게 된다면, 필요한 질문을 잘 정리해 사용하면 좋겠다.

기술 자산 실사 질문

  1. 개발 역량은 있는지?
  2. 프로젝트 관리 능력은 있는지?
  3. 출시 후 운영 능력은 있는지?
  4. 확장성이 좋은지? 단일 장애점이 있는지?
  5. 보안은 잘 되고 있는지?
  6. 플랫폼은 무엇을 쓰고 있는지? 클라우드는 어떻게 활용하는지?
  7. 미래에 생길 수 있는 위험 요소는 없는지?

조엘 테스트

  1. 소스 코드 관리 시스템을 사용하고 있습니까?
  2. 한 방에 빌드를 만들어낼 수 있습니까?
  3. 일일 빌드를 하고 있습니까?
  4. 버그 추적 시스템을 운영하고 있습니까?
  5. 코드를 새로 작성하기 전에 버그를 수정합니까?
  6. 일정을 업데이트하고 있습니까?
  7. 명세서를 작성하고 있습니까?
  8. 조용한 작업환경에서 일하고 있습니까?
  9. 경제적인 범위 내에서 최고 성능의 도구를 사용하고 있습니까?
  10. 테스터를 별도로 두고 있습니까?
  11. 프로그래머 채용 인터뷰 때 코딩 테스트를 합니까?
  12. 무작위 사용 편의성 테스트를 수행하고 있습니까?

회사

비즈니스 유형

  • 하드웨어
  • 소프트웨어
  • 서비스
  • 데이터

함께할 회사를 고르기 위해서 여러 회사를 찾아보고 있다. 정말 대부분 위 유형으로 정리가 되는 것 같다. 각 유형의 특징을 정리하고 내가 하고 싶은 분야를 정한다면 재미있게 일할 수 있지 않을까?

스타트업 조건

  • 속도
  • J커브
  • 데이터 주도적

스타트업은 빠르게 시도하고, 성장 가능성이 크고, 파급력이 있어야 한다고 생각한다. 위 관점에서 매력적인 회사를 찾아보자.

역량 성숙도 모델

  1. 초기 단계: 사내에서 모두가 같은 용어를 사용함
  2. 반복 가능 단계: 사내 프로젝트들이 모두 프로세스대로 움직임
  3. 정의된 단계: 회사 전체에 프로세스가 통일됨
  4. 관리 단계: 사내 모든 것을 측정하고 분석할 수 있음
  5. 최적화 단계: 지속적으로 회사 내부를 개선하고 변화함

회사가 커짐에 따라서 조직의 역량에 대한 단계를 구분한 것인데, 어떤 단계에 있는지? 고민은 하고 있는지를 살펴보면 회사의 미래를 조금은 그려볼 수 있지 않을까?

마치며

미래를 결정하는 5년 후 질문

  • 이 회사는 5년을 갈 것인가?
  • 나는 5년 후에도 이 회사에서 일하고 있을 것인가?
  • 5년 후에 내가 이 회사에 아직 있다면 나는 무슨 일을 하고 있을 것인가?

지난 직장을 그만두겠다고 생각한 시점이 바로 위의 질문과 비슷한 ‘다음에는 어떤 포지션에서 일하고 싶으신가요?’에 대한 답을 내린 순간이었다. 앞으로 개발자로 일을 하면서 회사에 대한 고민, 일에 대한 고민, 나의 역할에 대한 고민을 계속할 것이고, 점점 더 발전하기를 기대한다.

0개의 댓글