책을 처음 받으시면 묵직하다는 느낌을 받게 됩니다.
책의 구성, 편집, 가시성등도 매우 좋고 무엇보다 게르겔리 오로스 저자님과 이민석 교수님의 번역서적이여서
아주 개발자 입장 및 현실감 있는 구문으로 책이 잘 구성되어 있을거라는 기대감이 들게 합니다.
책의 제목처럼 소프트웨어의 연차와 무관하게 다양한 엔지니어 연차에 대해서 가이드북이 될것이라는 기대를 가지고
책을 살펴보았습니다.
책의 구성은 총 6부, 26장으로 구성되어 있습니다.
1부 : 개발자 커리어의 기본 사항
2부 : 유능한 소프트웨어 개발자
3부 : 다재다능한 시니어 엔지니어
4부 : 실용주의 테크리드
5부 : 롤모델로서의 스태프 및 수석 엔지니어
6부 : 결론
책의 구성 처럼 다 연차와 경력에 필요한 시점의 엔지니어 가이드를 받을수 있는 범위로 되어 있습니다.
■ 1부. 개발자 캐리어의 기본 사항
· 캐리어 패스에 대해서 상세히 알수 있습니다.
경험이 많은 개발자 또는 경력이 있으신 분들은 조금더 그룹핑을 통해서 머리속으로 알고 계신 사항을 정리할수 있고,
경험이 적은 분들은 조금 더 구체적으로 기업 유형 및 커리어패스 (엔지니어즉 개발 직군, 매니저 직군)에 대한 정리를 하실수 있습니다.
우리는 이러한 캐리어 경력을 통해서, 승진도 하고 보상을 받기를 원합니다. 매니저 입장에서는 이러한 사항을 공정하고 현실적으로
판단하기를 추구합니다. 이러한 부분에 가이드 라인을 제공하기에 각자의 입장에서 상대방의 관점으로 어떻게 접근 해야 하는지 알수 있습니다.
성과 평가와 승진에 대해서는 구체적으로 언급된 사항들이 매우 구체적으로 기술하며, 내가 부족한 부분을 바로 확인하고 이해하기 쉽게
기술되어 있습니다. 많은 부분 공감이 됩니다.
· 이직에 대해서 조언이 현실적입니다. 이책은 소프트웨어 엔지니어 입장으로 기술되어 있기 때문에 그 특수성이 있습니다.
적극적/소극적으로 이직을 알아볼때, 승인하거나 이직할때 고려해야 하는 사항, 연차가 높을때의 이직시 고려해야 하는 사항,
면접에 준비하는 과정, 이직후 온보딩의 다양한 케이스 등이 설명되어져 있습니다.
온보딩의 경우 소규모 기업, 큰 기업, 시니어급 이상의 온보딩, 스태프 이상의 온보딩등 각각의 기업에서 기대하는 부분과
접근해야 하는 관점이 많은 공감을 가지게 합니다.
■ 2부. 유능한 소프트웨어 개발자
우리는 대부분 소프트웨어 개발자로 시작을 하였기 때문에, 해당 세션에 대해서 가장 관심을 많이 가지게 됩니다.
· 업무를 완수하기 위해서는 어떻게 접근해야 하는지 설명합니다.
여러 이해관계자가 있는 업무에서 우리는 어떻게 접근해야지 효율적인 업무를 통해서 회사 및 관련 부서에 효과적인 업무 진행이 가능한지
다양한 케이스 및 선택할수 있는 조언들이 포함되어 있습니다.
- 가장 중요한 업무에 집중하기
- 막힌 부분 기술적으로 해결하기
- 작은 단위로 작업 쪼개기
- 작업 시간 추정 방법 등 매우 현실적인 내용입니다.
원서의 저자분이 미국 기준 및 관점으로 설명이 되어 있으면 하는 생각도 들었지만,
언급된 내용을은 모두 국내에서도 적용하고, 사용되어지는 관점 및 특별하게 다른다고 생각되어 지는 부분은 없었습니다.
· 코딩관련, 개발능력 향상
어떻게 하면 실력이 향상되는지 방향성을 제시해줍니다.
무슨 방법으로 하면 업무도 하면서, 실력을 늘릴수 있을까요? 회사에서 조직문화가 책에 언급된 문화가 정책되어 있다면 좋겠지만
인력의 구성 및 문화가 다르면 바로 적용해볼수는 없지만, 지속적으로 강조하고 작은 단위로도 적용을 해보야 한다.
- 코드 리뷰, 더 많은 코딩을 해볼수 있는 방법, 가독성을 높일수 있는 코드 작성 방법, 품질 높은 코드를 작성하는 방법
- 다른 언어를 언제 배울까, 깊게 갈까? vs 넓게 갈까? 디버깅, 리팩토링에 대해서 어디까지 적용하고 효율적으로 접근하기 위한 가이드를 제시합니다.
- 로컬 환경 구성 및 디버깅, Git형상관리 등에 대해서 왜 필요하고, 주요 관점으로 바로 학습이 필요한 부분도 제시합니다.
이러한 내용을 살펴볼때, 내가 지금 필요한 부분이 무엇인지 각자 독자분들이 느끼점 점이 분명 다르게 다가오는 것을 느낄수 있습니다.
전반적으로 개념적으로 작게 적용하는 부분도 있고, 평소에 필요한 부분이 각자 다르기 때문입니다.
관련 사항은 모두 지금 필요한 부분으로 지금 바로 진행하는 것을 추천합니다.
■ 3부. 다재다능한 시니어 엔지니어
엄무를 완수하는 것이 제일 중요한 시점입니다.
· 필수로 챙겨야 하는 이해관계자들과의 관계 및 접근법 내용이 있습니다.
프로젝트 관리 방법이라고 볼수도 있고, 소프트웨에 공학의 내용이라고 생각이 들수도 있습니다.
전체적인 부분은 아니고, 필요한 핵심적인 내용으로 있습니다.
- 인식과 현실은 다를수 있다.
- 업무 내용에 대한 소통
- 조금 약속하고 많이 일하고, 소통 많이 하기
- 장애가 되는 요소를 조기에 알리고 절충안을 제시하자
- 나만의 시간 확보하기 (인바운드 요청 효율적으로 처리하기 등),
: 우선순위를 정할때 많이 사용하게 되는 중요도/긴급성 판단하는 매트릭표
· 현업 및 팀워크를 잘하기 위한 방법
코드 리뷰 및 멘토링, 경험이 부족할때 사용하는 방법 및 관련 부분을 어떠한 순서로 접근해야 할지 관련 내용이 공감대를 가지게 됩니다.
· 소프트웨어 엔지니어링 관련 부분
최신 현재의 기술 및 언어 기준으로 내용 설명이 됩니다.
- 언어, 플랫폼, 도메인 및 디버깅, 기술부채, 문서화, 테스트 (UI테스트, 성능, 부하 등) 우리가 각자 엔지니에 입장에서
접근해야 하는 기준을 알수 있습니다.
소프트웨어 아키텍처를 도입하려고 한다면 어떻게 해야 할까요?
조금 막연하시죠 예전에 나온 아키텍처도 있고, 요즘 많이 사용하는 아키텍처도 있고 무분별하게 도입하는것은 실패하게 되어 있습니다.
이러한 부분을 적용하려면 고려해야 하는 부분과 순차적으로 접근해야 하는 사항들도 잘 설명되어져 있고
도메인 주도 설계를 예시로 들어서 접근합니다.
■ 4장. 실용주의 테크리드
- 16장. 프로젝트 관리
- 17장. 프로덕션 출시
- 18장. 이해관계자 관리
- 19장. 팀 구조
- 20장. 팀내 역학
내용을 살펴보면, 회사 차원으로 크게 프로젝트, 프로덕션등을 다루고 있습니다.
개인의 관점이 아닌 조금 더 큰 개념으로 소프트웨어 엔지니어 입장으로 해당 직책을 가지고 있는 분들이
접근해야 하는지 설명합니다.
역활에 대해서 고민이 있는 부분은 이렇게 명확히 포지션 정리 표는 현재 회사에서 부족하거나 조금 다른 부분에서
해야할 역활을 다시 정리가능합니다.
프로젝트에 대해서 기존 회사에서 물론 진행된 케이스가 있습니다.
회사에서 관습대로 진행된 부분에 대해서 효율적으로 진행하기 위한 놓치고 있는 부분을 살펴볼수 있어서
좋았습니다.
- 프로젝트 타임라인이 변경되는 경우
- 프로젝트에 참여할 인원이 적은 경우
- 프로젝트에 참여하는 사람이 바뀌었을때 등
다앙한 경우에 대한 케이스가 있습니다.
우리가 주로 사용하는 프로젝트 관리 방식의 내용도 정의해주고 있어서 좋습니다.
특별히 알아보지 않고, 관습적으로 사용하는 경우도 많이 있습니다.
<다양한 프로세스들의 비교표>
테스트시 카리나아 테스트 방법등에 대한 소개등 전체적인 배포 프로세스도 잘 나와 있습니다.
■ 5부. 롤모델로서의 스태프 및 수석 엔지니어
스태프 엔지니어 대한 역활 및 정의, 북극성, KPI, OKR에 대한 지표 및 측정대상에 대해서 설명합니다.
매년 회사에서 목표설정을 할때 등록하는 세부 항목에 대해서 부족한 부분과 더 필요한 개념에 대해서
잘못 알고 있는 것을 수정할수 있을것 같습니다.
- 고객입장에서 제품을 바라보기
- 타 팀과 함께 협업하는 방법
- 협업에 대한 다양한 부분 (사내 정치, 다른 사람에게 좋은 영향력 미치기, 인적 네트워크 향상 등)
: 이러한 부분이 소프트웨어 기반으로 설명되어지고, 소프트웨어 관점으로 설명되어 지기 때문에 많은 공감이 들고
이해가 되는 부분이 많았습니다.
- 신뢰성 있는 소프트웨어를 위해서 취해야 하는 다양한 방법들, 복원등에 대한 부분도 세심히 살펴봐야 합니다.
글이 1줄~2줄이여도 매우 시시하는 바가 다르고, 중요성에 공감하는 경우가 매우 많았습니다.
책에서 제시하는 가이드를 모두 다 바로 적용할 수는 없지만,
분명 어렵고 혼돈이 되는 부분은 이 책이 좋은 가이드 북이 되어 줄것이라고 생각되었습니다.