개발 문화 체크 리스트

IT 회사로서 좋은 개발 문화를 가지고 있는지 측정해 볼 수 있는 체크 리스트이다.

Joel 테스트

Joel 테스트는 2000년에 아래와 같은 항목으로 발표되었다.

  1. Do you use source control?
    소스 코드 관리 시스템을 사용하고 있습니까?
  2. Can you make a build in one step?
    One step으로 빌드할 수 있습니까?
  3. Do you make daily builds?
    Daily build(일일 빌드)를 하고 있습니까?
  4. Do you have a bug database?
    버그 추척 시스템을 운영하고 있습니까?
  5. Do you fix bugs before writing new code?
    새로운 코드를 작성하기 전에 버그들을 수정합니까?
  6. Do you have an up-to-date schedule?
    개발 일정을 최신으로 업데이트하고 있습니까?
  7. Do you have a spec?
    스펙(명세서)을 작성하고 있습니까?
  8. Do programmers have quiet working conditions?
    조용한 작업 환경에서 일하고 있습니까?
  9. Do you use the best tools money can buy?
    돈이 허락하는 한도 내에서 최고의 도구를 사용하고 있습니까?
  10. Do you have testers?
    테스터들이 별도로 있습니까?
  11. Do new candidates write code during their interview?
    프로그래머 채용시 코딩 테스트를 합니까?
  12. Do you do hallway usability testing?
    무작위 사용성 테스팅을 하고 있습니까?

나도 2000년 경에 들어본 테스트로, 이 테스트를 통해 SCM(Source Code Management)의 존재와 one step build, daily build, BTS(Bug Tracking System) 등의 존재와 중요성을 알게 되었다. 특히 10점 이하라면 심각한 문제가 있다는 코멘트에 충격을 받았던 기억이 있다.

Channy의 개발 문화 체크 리스트

AWS 윤석찬 님이 만드신 체크 리스트로 아래와 같다.

  1. 코딩 테스트 인터뷰
    개발자 입사 시 코딩 테스트 혹은 화이트 보드 인터뷰를 진행한다.
  2. 자율적 개인 개발 장비 선택
    회사에 업무 장비 표준 (PC, 노트북 등)이 있더라도, 개인별로 원하는 개발 장비를 선택할 수 있다.
  3. 자율적 팀 개발 환경 선택
    회사에 기술 표준 (프로그래밍 언어, 플랫폼 등)이 있더라도, 팀별로 원하는 개발 환경을 선택할 수 있다.
  4. 소스 코드 리뷰 및 테스트
    모든 개발자가 다른 사람의 소스 커밋을 리뷰하고, 테스트하는 과정을 가지고 있다.
  5. 주요 개발 방향에 대한 개발자들의 참여 가능 주요 개발 방향을 PM/기획 뿐만 아니라 개발자들이 주도 혹은 참여해서 정해나간다.
  6. 지속적 통합 및 배포 (CI/CD)
    코드 커밋 후 자동으로 통합 및 배포되는 시스템을 가지고 있다.
  7. 내부 소스 레포지터리 공유
    다른 팀의 소스 코드에 접근(access), 포크(fork) 혹은 기여(contribution)할 수 있다.
  8. API에 기반한 연동 및 소통
    내부 팀 및 플랫폼간 협업을 할 때, API를 개발해서 공유하거나, 검색할 수 있다.
  9. 기술을 이해하는 팀장/매니저
    회사 내 개발팀장 대부분은 소프트웨어 개발 경력을 가지고 있으며, 내부 코드 및 기술 플랫폼을 이해하는 사람이다.
  10. 개발자 레벨/경력 관리
    사내에 개발자의 업무 역량별 레벨 제도 혹은 팀장/매니저가 아닌 별도의 개발자 전용 승진 경로를 가지고 있다.
  11. 참여형 지식 공유 플랫폼 운영
    사내에 직접 참여 혹은 편집 가능한 위키, 블로그 플랫폼을 운영하고 있다.
  12. 개발자 관계 활동
    외부 개발자와 소통하는 채널(기술 블로그, 컨퍼런스 등)을 운영하거나 전담하는 사람/팀이 있다.

이번 2022년 6월에 국내 주요 IT 회사들을 대상으로 한 설문 조사 결과, 소위 잘 나가는 IT 기업들은 10점 ~ 12점을 받았음을 알 수 있다.

실용적 엔지니어 테스트

Pragmatic Engineer Test는 2021년에 발표되었고 12가지 항목으로 구성되어 있는데, 국내에서는 크게 알려지지 않았고 나 역시 이번에 처음 알게 되었다.
다른 테스트에 비해 좀 더 프로그래머 중심의 항목들로 구성되어 있는데, 각 세부 항목과 번역은 생략한다.

세부 항목 예를 들면, 코드 리뷰와 테스트를 일상적으로 하고 있는지, CI/CD를 사용하고 있는지, 내부 오픈 소스 모델을 사용하고 있는지, 피드백 문화가 있는지 등이 있다.

내 생각

위 체크 리스트들은 모두 각 항목들이 yes/no로 결정되어 1점씩 계산되므로 점수가 단지 근사치를 보여주는 것일 뿐이겠지만, 대략적으로 회사의 개발 문화를 가늠해 볼 수 있고, 개발 문화에 어떤 것이 중요한 요소인지 느낄 수 있다는 데에 의미가 있는 것 같다.
좋은 개발 문화를 이와 같은 몇 개의 항목들로 단정지을 순 없겠지만, 하나를 보면 열을 알 수 있듯이 위 항목들에서 좋은 점수를 받았다는 것은 (실제로 좋은 회사들이 높은 점수를 받았음) 그만큼 좋은 개발 문화를 위해서 계속해서 노력하는 회사임을 알 수 있겠다.
나도 좋은 문화를 가진 회사에서 일하고 싶고, 또한 좋은 영향을 미치고 싶다. 😅

카테고리:

업데이트: