Effective & Impactive 엔지니어
Goal
- Effective & Impactive 방법론들을 정리
- 비즈니스(도메인) 관점에서 최선의 효과내야 한다.
- 이펙티브한 방법론, 방향성, 태도, 시스템 모두 정리한다.
- 5년 후, 10년 후 커리어 관리를 포함해야 한다.
참고서적
커리어 및 소프트 스킬에 도움이 많이 될 수 있는 책 목록이다.
- 커리어 스킬 : 완벽한 개발자 인생 로드맵 https://m.yes24.com/Goods/Detail/71829578
- 소프트 스킬 : https://m.yes24.com/Goods/Detail/111096733
- 이펙티브 엔지니어 https://m.yes24.com/Goods/Detail/110243880
- 스태프 엔지니어 : 관리 트랙을 넘어선 기술 리더십 : https://m.yes24.com/Goods/Detail/112904809
- 구글 엔지니어는 이렇게 일한다 : https://product.kyobobook.co.kr/detail/S000061352347
- 소프트웨어 장인 : 프로페셔널리즘, 실용주의, 자부심 https://m.yes24.com/Goods/Detail/20461940
1.커뮤니케이션 스킬
커리어 성장을 위한 커뮤니케이션
적극적으로 조언 구해야 한다. 멘토로 삼아야 된다.
- 다른 사람들이 가만히 있는 사람에게 갑자기 피드백을 주기 어렵다.
- 1.건설적인 피드백을 달라고 많이 얘기를 해야 한다.
- 2.그리고 내가 정한 커리어 Path에 대해서 물어봐야 한다.
- 예를들어 매니징을 잘하는 프론트 개발자가 되려면 주니어 Level에서 어떻게 해야 하는가 ?
진짜 문제는 아무도 혼내지 않는다는 것이다.
- 혼나는것도 이제 돈을 내야 한다. 컨설팅 혹은 멘토링 등으로
- 그래서 상급자를 대하는 태도가 정말중요하다.
- 많이 배우려는 태도, 많이 생산해 내려는 태도, 효과적으로 아이디어를 내는 태도, 롤모델으로부터 배우려는 태도
솔선수범
회의에서 되도록 의견을 최소 1개 이상 내려고 해라.
- 비즈니스 관점에서 더 나은 제안
- Next Step에 대해서 의견을 제시
- 리스크 관리 측면에서 의견을 제시하기
주도적으로 프로젝트 리딩
- 규모가 있는 프로젝트라면 스스로 기술에 대한 검증 PoC를 진행하고 공유 및 리뷰 받는다.
- 기획이나 설계 단계에서 자신의 프로젝트 설계나 내용에 대해서 당사자들과 공유하고 토론할 수 있도록 이끈다.
- 프로젝트에 대해서 퀄리티를 높일 수 있는 방법에 대해서 고민하기
- 프로젝트 이후 문서화나 모니터링 시스템에 대해서 적절한 가이드라인 혹은 장애가 났을때 대응하는 방법
2.비즈니스 이해(도메인 이해)
벤치마크
3.커리어 관리
스스로 나중에 어떤 삶을 살지 계속 나와의 대화를 해야 한다.
큰 그림에서 조직/인가 관계 생각해 보기
조직 및 팀에는 여러 사람들이 있다.
- 회사 입장에서 모두 월급을 줘야 하는 비용이다.
- 사람들이 어떠한 생각과 목적을 가지고 있는지 고민해보기
- 비용대비 높은 생산성을 가지고 있는 사람
- 월급 루팡하는 사람, 일 적게 하려고 하는 사람,
- 승진에 욕심있는 사람, 솔루션을 많이 가지고 있는 사람
- 능력이 부족한 사람 등
4.기술적 성장
기술적 성장 싸이클
기술적으로 성장하는것은 개인의 몫이 되버린 환경이다.
- 그냥 스터디만 하고, 그냥 강의듣고 정리하는것으론 부족하다.
- 실제 비즈니스 임팩트를 내야 한다.
가장 이상적인 기술적 성장 싸이클
1.회사에서 KPI, OKR이 내려온다.
- OKR를 달성하기 위한 하위 기획들이 만들어 진다. 하위 기획에 대해서 철저하게 이해 해야 한다.
- 이러한 비즈니스 이해를 바탕으로 기술을 배워야지 비즈니스 임팩트를 가져갈 수 있다.
- 내가 담당하게 될 프로젝트에 대해서 인지 혹은 미래를 위해 준비 한다.
2.리서치를 진행한다.
- 사내 시스템을 이해한다. (기존의 비즈니스, 기존의 기술 스펙을 이해 한다.)
- 테크니컬 Best Pratices 사례를 수집한다.(기술적 완성도 높이기 위함)
- 다른 회사에서는 어떠한 기능들이 있는지 밴치마크를 하며 조사한다.(비즈니스 조사, 더 좋은 아이디어를 내기 위함)
3.학습을 진행한다.
- 책이나 youtube를 보고 학습을 한다.
- 가능 하면 토이 프로젝트를 만들어 본다.
4.업계에 적용을 해본다.
- 이론과 실습의 완벽한 조화
- 잘 성장하는 주니어는 이 싸이클을 잘 활용 한다.
- 팀 기술 > 업계 메인 기술 > 주변, 최신 기술로 확장 하자.
5.how to be a 10x Software Engineer
도구를 충분하게 조사하고 익숙해지자.
나무를 자르는데 8시간이 있다면 7시간은 도끼를 가는 데 쓰겠다.
- 하급 엔지니어는 무딘 도끼로 자르는데 8시간 소비한다. 엄청 힘들고 결과도 좋지 않다.
- 선임 엔지니어는 우선 마트로 간다. 전기톱을 고른다. 나무를 자르는 방법을 배운다. 연습한다. 그리고 돌아와서 5분동안 나무를 자른다.
하지 말것
- 바로 코딩에 뛰어 드는 것
- 도구에 대해서 익숙하지 않은 상태로 꾸역꾸역 해 나가는 것이 좋지 않다.
해야 할 것
- 랜딩페이지를 구축하기 코딩은 집어 던지고, 노션과 + 우피와 같은 서비스를 사용 한다.
- 평소에 React, AWS 등 도구들을 배우는데 시간을 할애할 것 - 도구들이 hot stand by
- 제품의 요구사항을 어떻게 개발할지 고민을 많이 할 것 ( 도구를 닦는것은 미리미리 )
도움을 요청할 것
시니어일 수 록 많은 질문과 도움을 요청한다.
- 팀원에게 5분만 질문하면 즉시 해결되었을 문제를, 코드베이스를 살펴보면서 코드를 살핀다.
비즈니스 가치 제공 중심으로 생각 할 것
10x 엔지니어는 무엇보다도 투자자 이다.
- 투자 대비 보상을 항상 생각해야 한다. 기회비용을 이해해야 한다.
하지 말것
- 정말 멋진 신기술이 나왔다. 이것을 프로젝트에 적용하는데 5일이 걸렸다. (제품과 전혀 무관한 작업)
- 다음 스프린트에 리팩토링에 시간을 투자, 코드가 구조화 되는 방식이 마음에 들지 않는다. ( 기회 비용, 기능을 구축하는게 더 돈이 된다. )
- 이 플랫폼은 너무 레거시 이므로 새 플랫폼으로 마이그레이션 합시다. ( 마이그레이션으로 고객경험이 개선되는가? 아니면 그냥 점직적 개선인가? )
해야 할 것
- 시간 대비 아웃풋이 어떻게 나오는지 체크해 볼 것
ref
- how to be a 10x Software Engineer : https://dev.to/_michaellin/how-to-be-a-10x-software-engineer-3bo4