개발자의 생산성 팁 🛠️ - 무엇이 개발자를 생산적이게 만드는가

Sheryl Yun·2023년 9월 17일
0

생각거리

목록 보기
1/2

커리어리에서 발견한 카카오 개발자 황민호 님의 글

몇 가지 항목이 공감되어서 원본 글을 그대로 가져왔다. 몇 군데 메모를 추가하고 굵은 글씨로 표시한 부분이 있다.

황민호 개발자님 원본 글: https://careerly.co.kr/comments/89037?from=trends&order=5

1. 무엇을 만들 것인가를 알아야 합니다 🎯

  • 잘못된 것을 빨리 만드는 것은 생산적인 일이 아닙니다.
  • 고객의 니즈와 법적으로 허용되지 않는 정보를 공유가능한지 등의 제약을 이해합니다.
  • 프로토타입(MVP?)은 실패하더라도 중요한 교훈을 얻을 수 있습니다.
  • 어떤 아이디어가 노력을 할 가치가 있는 아이디어인지 판별하는 것이 중요합니다.

2. 더 적은 일을 하기 🔄

  • 시간에 쫓기는 "바쁜 작업"은 지양하고, 불필요한 작업을 줄이기 위해 프로세스를 간소화합니다.
  • 일을 빨리 완료하는 것은 좋지만 아예 하지 않아도 되는 것이 더 좋습니다.
  • "불을 계속 켜놓기(Keep the lights on, KTLO)" 위해 어느 정도의 노력은 필요할 수 있습니다.

"불을 계속 켜놓기" 에 대해 조사한 내용

  • 서비스 확장을 위한 기능(피쳐) 개발을 제외하고 진행하는 작업들
  • 예: 인프라 관리, 로직 유지보수, 버그 수정, 업데이트, 고객 요청 등
  • 서비스를 운영하기 위해선 필수적이지만, 전체 IT 예산에서 KTLO 비중이 너무 높다면 혁신적인 업무를 하는데 시간을 투자하기 힘들어지게 된다.
  • 이런 업무들은 여러 지표(티켓 완료 수, 커밋 머지 수)로는 생산적으로 보일 수 있지만, 회사를 더 나은곳으로 이끌지는 못합니다.

3. 빠르고 효율적인 도구 ⏱️

  • 개발자는 에디터, git, 빌드 시스템 등 빠르고 효율적인 도구가 필요합니다.
  • 이런 도구들에서 지연이 발생하면 비용뿐만 아니라 개발자 집중을 깨뜨리고 스트레스를 증가시킬 수 있습니다.

4. 지식은 힘이다 🧠

  • 관련 지식이 많은 개발자가 더 생산적인 개발자입니다.
  • 안정된 팀 구조를 목표로 하고, 해당 시스템에 경험이 많은 팀원들과 작업하고 배우게 하는 것이 좋습니다.
  • 시스템 간의 깔끔한 경계를 정의해야 합니다.
  • 모든 개발자가 광범위한 작업을 수행하도록 요구하는 것은 비생산적입니다.

5. 문서화, 문서화, 문서화! 📄

  • 좋은 문서는 이틀 걸리는 작업을 한 시간 안에 할 수 있게 만들 수 있습니다.
  • 전문화를 장려합니다. 모든 사람이 만능일 필요는 없습니다.

6. 튼튼한 인프라 🏗️

  • 인프라는 작업을 돕기 위한 것이어야 하며 장애물이 되어서는 안 됩니다.
  • 수행해야 하는 모든 작업에 합리적으로 밀접하게 얼라인되어야 합니다.
  • 인프라의 모든 부분들은 특정 유스케이스를 염두에 두고 설계되지만, 프로젝트에서는 가끔 이런 유스케이스를 벗어나는 경우가 있습니다.

7. 기술 부채 줄이기 💳 ☆☆

  • 기존 코드는 언제나 당신이 하려는 작업에 완벽하게 적합하지 않습니다.
  • 리팩토링을 미루고 중간 해결책을 선택하는 것을 가급적 피합니다.
    • 나중에 가면 '절대' 안 함 (feat. 경력 개발자)
  • 기술 부채가 많아지면 기능을 조금만 변경해도 시스템을 더 크게 변경해야 합니다.
  • 시스템을 유연하고 이해하기 쉽게 만드는 것을 목표로 합니다.

8. 실패율 낮추기 ✅

  • 도구 실행 실패, 빌드 실패, 배포 실패 등 시스템 실패를 최소화합니다.
  • 이런 실패 확률을 낮추면 생산성이 향상됩니다.
  • 실패율을 낮추면 개발자뿐만 아니라 지원 팀의 시간도 절약하는 효과가 있습니다.

9. 생산적인 관행 채택 🌱

  • 특정 문제를 해결하는 방법을 배우는 가장 좋은 방법은 프로토타입을 작성하는 것입니다.
  • 프로토타이핑을 장려하고 사용자 친화적인 모니터링 도구를 사용합니다.
  • 코드 리뷰 및 배포를 더 안전하고 쉽게 만들도록 노력합니다.

10. 집중이 핵심 🔍

  • 개발자의 시간과 정신적 공간을 보호하여, 집중할 수 있는 환경을 제공합니다.
  • 불필요한 중단과 회의를 최소화 합니다.
  • 느린 도구와 정의되지 않은 작업은 방해가 될 수 있습니다.

11. 작업 완료 🏁

  • 50%를 구축하는 것은 50%의 생산성이 아니라 0%의 생산성입니다.
  • 버려지는 일만큼 생산적이지 못한 것은 없습니다.
  • 하지만 중간에 프로젝트를 포기하는 것이 올바른 결정인 경우가 있기도 합니다.
  • 지속적으로 우선순위를 바꾸는 것을 피합니다.

💡 마지막 생각:

모든 요소를 측정하는 것이 항상 중요한 것은 아니지만 생산성을 저해하는 것을 인식하고 대처하는 것이 중요합니다.
때로는 간단한 문서를 작성하는데 몇 시간을 들이면, 회사 차원에서는 수천 시간을 절약할 수 있습니다. (문서화의 중요성)
작업에 몰두하기 전에: 먼저 톱을 날카롭게 하세요! ⚙️🌟

원본 링크 한번 더 (위와 동일): https://careerly.co.kr/comments/89037?from=trends&order=5

profile
데이터 분석가 준비 중입니다 (티스토리에 기록: https://cherylog.tistory.com/)

0개의 댓글