프로젝트 역할에 따른 분류
1. PM(Project Manager)
소프트웨어 프로젝트의 모든 관리 업무를 책임지는 사람. 외부 팀과 인터페이스를 담당하고 의견 조율을 하면서 내부의 개발팀을 외부의 폭풍으로부터 보호하는 역할 담당
- 프로젝트 성공에 대한 책임
- 프로젝트 팀 구성에 대한 권리와 책임
- 프로젝트의 업무, 일정, 산출물, 회의, 기술, 외주, 리스크 관리
2. PL(Project Leader)
프로젝트의 리더, PM을 도와서 설계와 구현의 실무적인 부분을 책임지는 업무 수행
- 기본 설계와 설계의 무결성에 대한 책임
- 구현 단계에서의 리드
- 구현 일정 조율
- 스펙 문서 작성
- 소스코드 검토 및 조언
3. PE(Program Engineer)
각 단위 기능을 설계하고 구현하여 소프트웨어를 만드는 업무를 수행
- 상세 설계에 대한 책임
- 구현 일정 산정
- 요구사항 구현에 대한 책임
- 개발 표준 준수
4. QA(Quality Assurance)
문서, 절차, 산출물에 대한 중간 과정을 점검하고 사후 검사를 실시하여 제품의 품질을 보장하는 모든 활동 담당
- 테스트 계획 수립 및 테스트 케이스 작성 책임
- 테스트 실시 및 피드백
- 소프트웨어 버그 발견 책임
- 테스팅 기술, 소프트웨어 개발, 디버깅 지식
- 개발 프로세스 및 기반 시스템 시행
경력, 직급에 따른 분류
5. 주니어 개발자(Junior Developers)
1~3년의 개발 경험을 가진 초급 개발자
- 소프트웨어 설계 및 코딩의 모든 측면에서 개발 관리자를 지원
- 회사 개발 회의에 참석하고 기여
- 코딩기술 향상 및 버그 수정작업
- 내부 시스템의 기술적 성능 모니터링
- 보고서 작성 및 개발 테스트 수행
6. 미드 레벨 개발자(Mid-level Developers)
3~5년의 개발 경험을 가진 중급 개발자
- 전체 웹 개발 라이프 사이클을 설계
- 공동 개발자와 협업하고 프로젝트 관리자에게 현재 진행 상태 등을 보고
- 프로젝트 배포
7. 시니어 개발자(Senior Developers)
5년 이상의 실무 경험을 가진 고급 개발자
- 소프트웨어 개발 프로젝트 논의
- 코딩, 테스트, 디버깅 및 분석 작업들을 주니어 개발자에게 할당
- 고급 프로그래밍 코드 작성
- 프로젝트 일정 관리
- 개발 보고서 작성
- 새로운 소프트웨어 프로그램에 대한 기술 문서 작성
8. 리드 개발자(Lead Developer)
정보 관리, 분석, 계획, 설계 및 구성등을 종합하여 역할을 맡음
- 비즈니스 요구사항을 이해하고 개발팀의 기술 요구사항으로 변환하는데 도움
- 기능 또는 시스템 설계에 대한 기술 사양 계획 문서화
- 비즈니스 프로세스 및 애플리케이션 요구사항을 충족하는 애플리케이션 설계, 구축, 구성
- 응용프로그램 설계, 개발, 코딩, 테스트 및 디버깅을 개발팀에게 지시
- 효율적인 코드 작성 및 검토(확장성)
- 주니어 개발자를 멘토링
개발 팀 역할에 대한 명확한 정리 감사합니다! PM과 각 레벨 개발자의 책임 구분이 잘 설명되어 있네요.
30년 개발 경력을 돌아보면, 역할 구분도 중요하지만 "역할 간 소통과 가시성"이 더 핵심이었습니다. PM이 계획을 세우고 개발자가 실행하는 과정에서, 진행 상황을 실시간으로 공유하지 못하면 프로젝트가 쉽게 꼬입니다.
과거 Excel WBS로 일정 관리를 하면 PM만 전체 그림을 보고, 개발자는 자신의 작업만 보는 문제가 있었습니다. 이를 해결하기 위해 Plexo(https://plexo.work/ko)를 개발했습니다. WBS + 칸반보드 + 실시간 협업으로 PM과 개발자 모두가 같은 정보를 실시간으로 공유합니다.
개발 팀의 역할 분담 경험에 대해 더 궁금합니다!