이펙티브 엔지니어 내용 정리 및 생각해보기

개발자 생존기·2022년 11월 18일
0

실력

목록 보기
2/2

우선순위를 주기적으로 점검하라

1. 쉽게 접근할 수 있는 하나의 목록으로 할 일을 추적하라

  • 효과적으로 우선 순위를 정하는 첫 번째 단계는 해야 할 모든 업무를 목록으로 정리하는 것이다. 인간의 뇌는 저장이 아니라 처리에 최적화되어 있다.
  • 할 일 목록이 갖춰야 할 주요 속성은 두 가지이다.
    • 자신의 업무를 정식으로 대표하는 목록이며, 쉽게 접근할 수 있어야 한다.
      -> 노션을 고려하였으나 일정 관리는 Microsoft ToDo, 내용 정리는 Velog로 결정 (둘 다 단순하고, 사내, 모바일에서 접근성이 좋다.
  • 수많은 할 일 목록들을 어떻게 정렬할 것인가는 무엇이 레버리지(투자한 시간 대비 결실)
    -> 레버리지를 어떻게 측정할 것인가는 무척 중요하고 어려운 일이다. 이건 스스로 찾아가는 수밖에 없다.

2. 생산자 일정을 보호하라

  • 개발자의 몰입할 수 있는 일정을 시간 블록을 최대한으로 길게 유지해야 한다.
  • 회의, 메일 확인 등은 특정 시간에 몰아서 처리
  • 힘들겠지만 아침 일찍 출근해서 몰입할 시간을 확보하자.

3. 동시 진행할 작업의 수를 제한하라.

  • 업무가 선형적으로 증가할 때 실패 확률은 기하급수적으로 증가한다.

4. 미루는 습관을 물리처라-> 미션과 보상을 같이

5. 우선 순위를 정하는 자신만의 루틴을 만들어라

  • 매일 아침 칸반보드를 확인하고 해야 할 일과 우선 순위를 검토한다.
  • Focus todo에 옮겨서 실행 계획을 세우고 실행한다.

반복 속도에 투자하라

  1. 변경 사항을 더 작은 단위로 더 자주 반영하라. 더 많은 것을 만들고 더 많은 아이디어를 시도할 수 있다. 빠르고 작은 규모로 실패하라.
  2. 시간 절약 도구에 투자하라
  • Python + Jupyter 방식으로 프로토타입을 빠르게 개발, 실행, 테스트
  1. 디버깅과 검증 과정을 단축하라
  • 테스트케이스는 핵심 문제에 집중할 수 있는 가장 간단한 것부터 시작
  • 방대한 단위 테스트케이스를 구축하고 자동화 --> 검증 과정 단축
  1. 프로그래밍 환경을 마스터하라
  • 단축키를 마스터하라!
  1. 병목 지점을 미리 확인하고 시간을 확보하라
  • SR작업을 먼저 하라 ㅎ

개선하려는 사항을 측정하라

  1. 지표를 잘 선택하면 다양한 문제가 해결된다.
  • 올바른 대상에 집중할 수 있다. (근본적인 원인 분석, 올바른 목표 측정, 활동의 효율성 측정 등)
  • 정답은 없고 스스로 찾아야 한다. 엔진의 경우 무엇을 성과지표로 삼아야 할까?
  1. 측정하지 않아야 할 지표도 있다.
  2. 좋은 대시보드는 의사 결정에 효율적인 도구이다.
  • 오바마케어의 시스템 실패를 어떻게 극복하였는가? 시스템 주요 부분을 계측하고 사용자 수와 응답 시간, 그리고 트래픽 흐름을 보여줄 수 있는 대시보드를 만들었다.
  1. 지표는 초기에는 많은 비용이 들지만, 장기적으로 큰 성과를 준다.
  2. 해석을 잘해야 한다. 인과 관계와 상관 관계를 구분할 줄 알아야 한다.

아이디어는 일찍 그리고 자주 검증하자

  1. 고객의 피드백에 따라 개발 주기를 반복
    MVP(Minimum Viable Product 최소 기능 제품)
  • 최소한의 노력으로 고객의 피드백을 얻어야 한다.
    ex) Toss, DropBox : 기능 구현 전에 동영상으로 어떻게 작동할 지 보여줌
  1. 계측할 수 있는 지표가 필요하다. 더 많은 지표를 더 쉽게 더 자주 계측할 수 있어야 한다.

프로젝트 추정하기

  1. 일정을 낙관적으로 잡아서는 안된다. 미지의 변수(휴일, 병가, 예상하지 못한 추가 업무 등)를 고려하여 여유 있게 잡아야 한다.
  2. 측정할 수 있는 마일스톤을 정의하라
  3. 위험한 작업을 먼저 하라.
  4. 종단 테스트를 가급적 빨리 하고, 전체적인 흐름을 먼저 구축하라.
  5. 초과 근무는 프로젝트를 제 시간에 마칠 수 있다고 확신하는 경우에만 하라.

장기적 가치를 구축하라

  1. 코드 리뷰 문화 확립
  2. 추상화에 투자하여 어려운 문제를 단순화--> 유지 보수와 생산성에 큰 영향을 준다.
  3. 테스트 자동화로 안정적으로 수정
  4. 기술 부채 관리 --> 가장 큰 이자를 발생시키는 부채가 무엇인지 파악하기

운영 부담을 최소화하라

  1. 간단한 것부터 하라

  2. 실패를 빨리 확인할 수 있는 환경을 만들어라--> 빨리 자주 실패하라
  3. 단순 작업을 자동화하라
  4. 멱등성과 재진입성을 추구하라
  5. 복구 시나리오를 항상 구축하라

성장에 투자하라

집단 지성 구축 --> 1인팀 피하기, 리뷰 문화 구축 및 코드 표준화

profile
NP-Hard 문제를 풀어봅니다.

0개의 댓글