- 신입 개발자를 효과적으로 온보딩한다면 직접 만든 어떤 코드보다 더 큰 효과를 낼 것이다.
레버리지를 효과성의 측정 기준으로 삼아라
- 레버리지란 투자한 시간당 생산한 가치, 또는 효과이다.
- 레버리지 = 생산한 효과 / 투자한 시간
- 레버리지는 투입한 노력에 대한
투자 자본 수익률(Return On Investment, ROI)
이다. - 이펙티브 엔지니어는 업무를 효율적으로 완수하고, 제한된 시간에 더 많은 가치를 생산한다.
- 레버리지가 매우 중요한 이유는
시간이 가장 제한적인 자원이기 때문
이다. - 신입 개발자를 최대한 빠르고 매끄럽게 양성하는 프로그램에 투자하는 건 우리가 할 수 있는 일 중에서 레버리지가 매우 높은 일이다.
레버리지를 늘리는 세 가지 방법
- 특정 활동을 완료하는 데 드는 시간 줄이기
- 특정 활동의 생산량 늘리기
- 레버리지가 높은 활동으로 전환하기
질문 세 가지
- 이 활동을 더 짧은 시간에 완료하려면 어떻게 해야 할까?
- 이 활동으로 생산되는 가치를 증가시키려면 어떻게 해야 할까?
- 이 시간을 투자해 더 큰 가치를 생산할 수 있는 다른 활동이 있을까?
- 개발자의 생산량은 출시한 제품이나 수정한 버그의 개수, 확보한 사용자, 채용한 개발자의 수뿐 아니라 랭킹 품질 개선, 수익 창출 등 다양한 기준으로 측정된다.
- 총 생산량은 개별 활동 생산량의 총합이다.
- 개별 활동에는 평일에 근무하면서 수행하는 회의 참석, 이메일 회신, 버그 조사, 오래된 코드 리팩터링, 새로운 기능 개발, 수정사항 리뷰, 지표 모니터링, 프로덕션 시스템 유지 보수, 신입 개발자 면접 등도 포함될 것이다.
회의의 레버리지 높이는 방법
- 똑같은 목표를 더 짧은 시간 내에 달성할 수 있게 회의 시간을 1시간에서 30분으로 줄이기
- 회의가 명확한 목표를 향해 더 생산적으로 진행되도록 사전에 회의 의제를 준비하고 목표를 설정하여 참석자에게 배포하기
- 꼭 직접 만나 의논할 필요가 없다면 회의를 이메일 논의로 대체하고, 회의 시간을 중요한 기능을 제작하는 데 사용하기
개발 시간의 레버리지 높이는 방법
- 수동으로 작업하던 개발/테스트 프로세스 중 일부를 자동화해서 개발 주기를 더 빠르게 반복하기
- 출시했을 때 중요한 정도에 따라 작업의 우선순위를 정해서 최종 배포할 제품의 가치를 최대한 높이기
- 고객지원 팀과 소통하면서 고객이 가장 불편해하는 부분을 파악하고, 이를 바탕으로 적은 노력으로 더 큰 가치를 창출할 수 있는 새로운 기능이 있을지 생각해보기
애플리케이션 속도를 빠르게 유지하기 위한 레버리지 포인트
- 프로파일링 도구를 효과적으로 사용하는 방법을 배워서 병목 지점을 파악하는 데 드는 시간 줄이기
- 각 웹 페이지의 성능과 방문 빈도를 축정하여 트래픽에 특히 영향을 미치는 병목을 먼저 해결하고, 더 큰 효과를 낼 수 있는 순서로 해결하기
- 제품 팀과 협력하여 애플리케이션 속도를 제품 개발 시 우선적으로 개발할 기능으로 두어 처음부터 성능이 우수한 소프트웨어로 설계하기. 이러면 추후 애플리케이션 속도가 수정해야 할 버그로 취급되지 않을 것이다.
쉬운 과제가 아닌, 레버리지 포인트에 에너지를 집중하라
핵심 요약
- 레버리지를 활용해서 자신의 엔지니어링 효과성을 측정하라. 투자한 시간에 비해 가장 높은 투자 자본 수익률을 내는 활동에 집중하라.
- 시간의 레버리지를 체계적으로 높여라. 활동을 더 빨리 마치거나, 영향력을 더 크게 키우거나, 더 높은 레버리지를 지닌 활동으로 바꿀 방법을 찾아라.
- 레버리지 포인트에 노력을 집중하라. 시간은 가장 제한적인 자산이다. 투자한 시간에 비해 월등히 더 큰 효과를 내는 습관이 무엇인지 알아내라.