본문 바로가기
중간 회고/책

<이펙티브 엔지니어> - 에드먼드 라우

by Chaedie 2022. 11. 7.
728x90

이펙티브 엔지니어

제목에서 알 수 있듯 "어떻게 하면 효율적으로, 효과적으로 일하는 엔지니어가 될것인가?"에 관한 책이다.

기억에 남는 이야기들

가장 기억에 남는 점은 학습에 집중하라는 이야기이다. 학습률에 투자하면 복리 효과처럼 학습속도가 평생에 걸쳐 누적되어 효과를 보게 되므로 학습률을 개선하는데 노력하는것이 가장 효과적인 활동이라는 이야기다.

네트워킹 모임에 꾸준히 참석한 이야기도 기억에 남는다. 저자는 네트워킹에 참석해 어색해 하던 사람에서 꾸준히 참석하고 노력하면서 네트워킹에 익숙해지고 덕분에 좋은 사람도 많이 만나는 사람으로 변하는 과정을 이야기한다. 나 또한 내 주변 친한 사람들을 제외하곤 잘 안만나는 사람이었다. 하지만 이 책을 읽고 나서 나름 최선을 다해 앞서나간 개발자분께 연락도 해보고 네트워킹 행사에 참여도 해보면서 노력중이다. 아직까진 새로운 사람을 만나기 전 굉장히 떨리기도 하고 걱정도 되지만 막상 만나서 이야기도 듣고 좋은 시간을 보내고 나면 역시 시도해보길 잘했다는 생각을 한다. 만약 그 시간이 정말 어렵고 무거워서 도움이 되는 이야기를 하나도 듣지 못한다 하더라도 그런 경험 자체가 나를 단단하게 만드는 것 같더라. 책 읽길 정말 잘했다.

사소한 반복 작업들을 자동화하고, 개발 툴 등에 익숙해지라는 이야기. 타이핑 연습을 하고 단축키 연습을 하고, 빌드 자동화 등을 통해 지속적으로 낭비되는 시간을 개선함으로 시간당 생산성을 높이는데 기여할 수 있다.

앞으로

요즘 시간 블럭 확보가 어렵고 컨텍스트 스위칭이 잦아지고 있다. 또한 해야 하는 일이 많다보니 머릿속이 복잡한 상황이다. 이를 개선하기 위해 시간 블럭을 꼭 확보하고, 매일 가장 중요한 태스크를 우선적으로 처리하는 연습을 해야겠다. 너무 많은 일을 머릿속에 담아두니 생산성이 안나오고 오히려 할 일만 쌓이는 것 같다.

책을 꼭 많이 읽어야겠다.


밑줄 친 내용 중 일부

옮긴이 서문 중

이 책의 저자에드먼드 라우는 투입한 시간 대비 생산한 가치를 나타내는 레버리지라는 개념을 빌어 이를 설명한다.
...
더 나쁜 소식은 그러는 사이 조금이라도 더 빨리 '비법'을 터득한 경쟁자들은 마치 복리 이자가 붙는 것처럼 점점 더 빠른 속도로 점점 더 좋은 커리어를 쌓아갈 것이라는 점이다.

베타 리뷰

말 그대로 '유능한 엔지니어'가 되기 위해서는 코드가 아닌 소프트웨어 엔지니어링에 대한 지식이 필요합니다. 이 책은 바로 그 '소프트웨어 엔지니어링'을 쉽게 설명해 줍니다.

'레버리지'란 개념을 통해 지금 당장 한 줄의 코드보다 더 효율적인 방법을 알려줍니다. 잦은 개발 주기의 반복이 왜 좋은지, 어떻게 검증해야 하는지에 대해 구체적으로 설명하고 있습니다. 이는 결국 더 나은 서비스 , 더 빠른 서비스를 가능하게 하고 우녕의 부담도 줄여주는 결과를 가져옵니다.

1장 레버리지가 높은 활동에 집중하라

레버리지를 효과성의 측정 기준으로 삼아라

... 즉 다양한 활동의 우선순위를 결정하는 열쇠는 각 업무의 레버리지를 측정하는 것이다. "레버리지 = 생산한 효과 / 투자한 시간" 다시 말해 레버리지는 투입한 노력에 대한 투자 자본 수익률(ROI: Return On Investment)이다. 이펙티브 엔지니어는 더 오랜 시간을 일해서 더 많은 일을 하려는 사람이 아니다. 이펙티브 엔지니어는 업무를 효율적으로 완수하고, 제한된 시간에 더 많은 가치를 생산한다. ... 레버리지가 매우 중요한 이유는 시간이 가장 제한적인 자원이기 때문이다.

레버리지를 늘리는 세 가지 방법

인텔의 전 CEO 앤드루 그로브는 전체 레버리지, 즉 단위 시간당 생산하는 가치의 양을 증가시키려면 다음 세 가지 방법밖에 없다고 설명했다.

  1. 특정 활동을 완료하는 데 드는 시간 줄이기
  2. 특정 활동의 생산량 늘리기
  3. 레버리지가 높은 활동으로 전환하기
  4. 이 활동을 더 짧은 시간에 완료하려면 어떻게 해야 할까?
  5. 이 활동으로 생산되는 가치를 증가시리켜면 어떻게 해야 할까?
  6. 이 시간을 투자해 더 큰 가치를 생산할 수 있는 다른 활동이 있을까?

쉬운 과제가 아닌, 레버리지 포인트에 에너지를 집중하라

이 책을 읽으면서 '레버리지가 높은 활동에 집중하라' 라는 교훈을 끊임없이 마음에 새겨라. 이것이 내가 일하며 배운 가장 가치 있는 교훈이다.
하지만 레버리지가 높은 활동을 쉬운 과제와 혼동하지 마라. 레버리지가 높은 활동이 큰 효과를 내려면 오랜 시간 꾸준히 노력해야 한다.

2장 학습을 위해 최적화하라

내가 구글을 떠난 건, 구글이 더 이상 내가 학습하기에 최적의 장소가 아니라는 걸 깨달았기 때문이었다. 구글에서 2년이 지나자 내 학습 곡선은 정체기에 접어들었고, 다른 곳으로 가야 더 많은 것을 배울 수 있음을 깨달았다. 읽어야 할 교육 자료와 설계 문서는 거의 다 보았고 새로운 기능을 처음부터 끝까지 진행해 출시하는, 신나는 5개월 타임라인은 어쩌다 있는 예외였다. 구글에서 1년을 더 지내며 무엇을 성취할지 그려보니 만족스럽지 않았다. 다음 모험을 떠날 때가 왔다는 것을 직감했다.

... 이직할 때마다 학습을 목표로 최적화한 덕분에 직업적으로나 개인적으로나 크게 성장했다.

... 나는 지금까지 학습을 목표로 최적화한다는 우너칙을 기준으로 많은 결정을 내려왔고, 그렇게 내린 결정을 후회한 적은 한 번도 없다.

성장 마인드셋을 갖춰라

... 하지만 사교 행사를 피하면 새로운 사람을 만나는 데 도움이 되지 않는다는 당연한 사실과 가만히 있으면 상황이 저절로 좋아지지 않는다는 사실을 깨달았다.
그래서 1년간 영화 예스맨의 짐 캐리처럼 초대받거나 접하는 모든 사교 모임에 "네, 참석합니다."라고 대답하기로 했다. 아는 사람이 한 명도 없는 파티나 모임에 나가고, 온라인으로 연락이 온 사람들과 함께 커피를 마셨다. 처음에는 어색한 침묵과 억지로 해야 하는 잡담이 대화 중간에 간간이 끼어들었다. 네트워크 행사에서 몇 시간을 서성이다가 의미 있는 인맥을 만들지 못하고 자리를 떴다. 그래도 계속했다. 한 번 대화를 망치면 더 재치 있는 대답을 생각해서 다음에는 조금 더 나아지려고 노력했다. 더 나은 이야기를 위해 연습했다. 매력적인 화술은 배울 수 있는 기술이고, 시간이 지나면 익숙해지고 편해질 거라고 믿었다. 그 1년간 많은 것을 배웠다. 다른 방법으로는 만나지 못했을 많은 이를 좋은 친구 또는 인맥으로 만들었을 뿐 아니라 내 안전지대의 범위도 넓혔다.

... 이야기가 엔지니어링과 별 관련 없어 보일 수 있다. 그러나 이 이야기는 올바른 마인드셋이 우리가 지닌 기술에 어떠한 영향을 미치는지를 보여 준다.

자신의 학습률에 투자하라

복리 계산 덕분에 학습률이 조금만 높아져도 장기적으로 큰 차이가 난다.

우리는 작은 변화가 성장률에 미치는 영향을 지나치게 과소평가하는 경향이 있다. 하지만 근무 시간에 도적적이지 않은 업무를 하는 것은 단순히 지루한 시간을 보내거나 학습 기회를 놓치는 것뿐만 아니라, 성장과 학습 측면에서 막대한 기회비용을 지불하는 것이다.

링크드인의 공동 창업자 리드 호프먼은 스스로를 스타트업으로 여기라고 말한다. 스타트업은 성공 확률을 높이기 위해 처음에는 수익성보다 학습을 우선시한다. ... 마찬가지로 장기적인 성공을 꿈꾼다면 자신에게 매일 투자하고, 개발 주기를 반복해야 하는, 현재 진행형 스타트업이나 제품의 베타 버전이라고 생각해야 한다.

학습에 도움이 되는 근무 환경을 찾아라

  1. 빠른 성장 : "로켓에 탈 기회가 생긴다면 어떤 자리인지 묻지 말고 일단 타라."
  2. 교육
  3. 개방성
  4. 속도 : 개발 주기를 빠르게 반복하는 근무 환경에서는 피드백 주기도 빠르고, 학습 속도도 더 빨라진다. 너무 긴 배포 주기, 공식화된 제품 승인 절차, 우유부단한 리더십은 개발 주기가 늘어지는 원인이 된다. 자동화 도구, 가벼운 승인 절차, 실험을 장려하는 분위기는 진행 속도를 높이는 데 도움이 된다. ... 공격적으로 위험을 부담하고 오래 일하는 스타트업의 분위기는 학습률을 높이는 데 기여한다. 단, 탈진하지 않고 버틸 수 있어야 한다. 최선을 다하되 장기적으로 지속 가능한 속도를 찾아야 한다.
  5. 사람 : 경력 성장과 업무 만족도 면에서 볼 때 어떤 사람과 일하느냐가 무슨 일을 하느냐보다 더 중요할 수 있다. ... 새로운 자리에 가기 전에 팀원이 될 사람들과 만나보라. 자신이 실력 있는 팀에 배정될지, 평균 이하 팀에 배정될지를 운에 맡기지 마라.
  6. 자율성

근무 시간을 활용해서 새로운 기술을 발전시켜라

자신의 성장에 투자하려면 스스로 20%의 시간을 개척해야 한다. 매주 하루를 통째로 내는 것보다 매일 1~2시간 정도를 내는 것이 더 효과적이다. 그래야 기술을 발전시키는 습관을 기를 수 있기 때문이다.

항상 배워라

새로운 프로그래밍 언어오 프레임워크를 배워라.
수요가 많은 기술에 투자하라.
책을 읽어라.
토론 그룹에 참여하라.
강연, 컨퍼런스, 모임에 참여하라.
강력한 인맥 네트워크를 구축하고 유지하라.
엔지니어링 정보를 공유하는 블로그를 팔로우하라.
블로그를 개설해 설명하고 가르쳐라
사이드 프로젝트를 하라.

3장 우선순위를 정기적으로 점검하라

정기적으로 우선순위를 설정하는 일은 레버리지가 높은 활동이다. 우선순위를 통해 나머지 시간의 레버리지가 결정되기 때문이다.
우선순위를 잘 정하지 못할 때도 있겠지만, 반성하는 한 꾸준히 발전할 것이다.

TODO LIST

효과적으로 우선순위를 정하는 첫 번째 단계는 해야 할 모든 업무를 목록으로 정리하는 것이다.

직접적으로 가치를 생산하는 일에 집중하라

가치를 측정하는 기준은 근무 시간, 완료한 업무, 작성한 코드 양, 회의 참석 횟수가 아니라 출시한 제품, 확보한 사용자, 사업 지표 변동, 매출액이다.
중요한 일을 제대로 처리하면 작은 일은 때로 별 문제가 되지 않는다.
가장 적은 노력으로 가장 큰 가치를 생산하는 업무를 우선시하라.
거절하는 법을 배워라. 요청받은 모든 일을 의무라고 생각하지 마라.

중요하지만 급하지 않은 일에 집중하라.

중요하지만 급하지 않은 일 : 직업적 목표 계획ㅎ기, 강력한 인맥 구축하기, 전문성 향상을 위해 책과 기사 읽기, 생산성과 효율성을 높이는 새로운 습관 기르기, 작업 흐름을 개선할 도구 만들기, 유용한 추상화에 투자하기, 인프라 꾸준히 확장하기, 새로운 프로그래밍 언어 배우기, 콘퍼런스에서 발표하기, 팀원들의 생산성 증진을 위해 멘토링하기 등이다.

생산자의 일정을 보호호라

개발자는 다른 직종에 비해 더 길고 연속적인 시간 블록이 확보되어야 생산성이 높아진다.

동시에 진행할 작업의 양을 제한하라


댓글