시니어 개발자의 역량과 역할에 대한 고민
시니어 개발자는 어떤 역량과 역할을 해야 하는 것일까?
내가 일하고 있는 모습은 어떤가?
시니어 개발자의 역할은 무엇인가?
한번도 정리해보지 못한 바 “시니어란?”물음에 대답하기 어려웠다.
따라 다른 사람들의 생각을 보고 정리해보기로 했다.
소프트웨어 장인
장인은 한 가지 이상의 중요 소프트웨어 프로젝트를 주도했던 프로그래머들이다.
그들은 전형적으로 10년 이상의 경력을 가지고 여러 다른 시스템, 언어 및 운영 시스템 작업을 해왔다.
복수의 팀들을 주도하고 조정하는 법을 알며, 능숙한 디자이너와 건축가들이며, 힘들이지 않고 다른 모든 이들을 위해 코드를 처리할 수 있다.
경영직 제안을 받고도 이를 거절하거나, 자신들의 주된 기술적 역할과 통합시켰다. 또한 판독, 연구, 실행, 및 가르치기를 통해 그런 기술적 역할을 유지한다.
개발자의 레벨
- 주니어
- 일반적인 간단한 작업
- 영향이 적은 작업
- 중니어
- 일반적인 작업
- 감독이 적은 업무
- 시니어
- 솔루션 디자인
- 모든 것에서 뛰어나지는 않으나 훨씬 더 능숙
- 코딩 기술 그 이상은 차이점이 정확
- 자체적으로 완전한 애플리케이션을 개발
- 주니어 교육 및 테크 리딩
- 개발 부채 파악 및 개선
- 채용 프로세스 참여
- 개발 문화에 대한 개선 의견 피력
- 업무 단위 스케쥴링
- 60분 -> 30분 -> 15분 -> 10분 단위로 일을 쪼개서 하게 됨
- 회사 정책 참여
- 동료를 잘하게 함
- 특정 도메인에 대한 경험과 지식, 아키텍처에 대한 설계
주니어 -> 중니어
- 전체 개발 과정을 최소한 두 번 반복하는 것이 중요
- 간단하게 코딩을 작성하는 방법을 배움
- 디버깅
- 아키텍처, 성능, 보안
중니어 -> 시니어
- 아무것도 모르는 작업을 수행할 준비가 되어 있어야 함
- 작업을 수행하는 방법 이상의 것을 알아야 함
- 인터넷 서핑, 주식 등 너무 빠지지 않기
- 스케줄 뻥튀기하지 않기
- 기획에 YES
시니어는 배운다는 자세보다는 현재 가진 스킬로 회사의 어떤 부분을 개선 혹은 리딩 할 수 있어야 한다.
시니어 개발자의 지식수준
- 더 많은 지식 보유
- 디자인 패턴
- 아키텍처
- 테스트 자동화
- 성능
- 보안
- 소프트웨어 개발을 하는 방법을 아는 것이 중요
시니어 개발자의 코딩
- 사람이 읽을 수 있는 수준의 코드 레벨
- 새 팀이 새로운 기능이나 버그 수정 작업이 가능한 수준
- 많은 실수를 경험하고 동료에게 공유
주니어 개발자의 특징
- 멋진 수준의 코드 작성
- 기발한 코드 한 줄
- 복잡한 추상화
- 비용을 희생시키면서 까지 코드에 집중
시니어 개발자는 주니어 개발자들에게 코드를 잘 작성할 수 있는지 알려줄 수 있어야 한다.
시니어 개발자의 역할
- KISS 원칙(Keep it simple, stupid)
- 유지보수와 확장성을 염두한 코드 작성
- 코드를 다뤄야 하는 누군가에 대한 배려를 생각
- 올바른 질문을 하는 방법과 질문을 처리하는 방법을 알고 있음
- 로드맵에 대한 명확함
- 일을 찾아서 하며 끌고 감
- 최소 한 가지의 도메인을 자기 주도적으로 끌고 감
- 프로젝트가 주어졌을 때 크리티컬 패스 및 우선순위 별 세부 업무를 도출
- 비즈니스에 대한 생각
- 전체 시스템 안에서 다양한 부분을 다룸
- 데이터 파이프라인을 효율적으로 바꿈
- 기존의 서비스 아키텍처를 더 나은 방향으로 변경
- 다방면으로 판단 가능한 의사결정
시니어리티
주니어, 중니어 개발자들도 훌륭한 개발자가 많다. 시니어 개발자는 동료들의 신뢰도 매우 중요한데, 믿음을 줄 수 있는 방법을 조사해 높은 순위부터 정렬
- 팀 개발 이슈를 빠르게 캐치하고 해결
- 개발 방향을 제시
- 개발 실력이 뛰어남
- 도메인에 대한 풍부한 경험
- 잘 모르는 부분을 친절히 알려줌
- 최신 기술 트렌드의 이해도가 깊음
- 고충 해결
결론
- 개발팀 동료를 모두 성장하게 하여 “팀”을 만드는 것
- 타 팀의 프로젝트(서버, 웹 등)까지 파악/고려하여 “제품”의 유연성과 확장성을 겸비한 설계/문제 해결력
이렇게 일단 정리하고 자야겠다. 앞으로도 계속 고민해야 할 과제이다.
출처
주니어, 미드레벨과 시니어 개발자의 차이점
우아한형제들 기술 블로그 - 우리가 부르는 시니어 개발자는 누구인가?
댓글남기기