커리어리에서 발견한 카카오 개발자 황민호 님의 글
몇 가지 항목이 공감되어서 원본 글을 그대로 가져왔다. 몇 군데 메모를 추가하고 굵은 글씨로 표시한 부분이 있다.
1. 무엇을 만들 것인가를 알아야 합니다 🎯
- 잘못된 것을 빨리 만드는 것은 생산적인 일이 아닙니다.
- 고객의 니즈와 법적으로 허용되지 않는 정보를 공유가능한지 등의 제약을 이해합니다.
- 프로토타입(MVP?)은 실패하더라도 중요한 교훈을 얻을 수 있습니다.
- 어떤 아이디어가 노력을 할 가치가 있는 아이디어인지 판별하는 것이 중요합니다.
2. 더 적은 일을 하기 🔄
- 시간에 쫓기는 "바쁜 작업"은 지양하고, 불필요한 작업을 줄이기 위해 프로세스를 간소화합니다.
- 일을 빨리 완료하는 것은 좋지만 아예 하지 않아도 되는 것이 더 좋습니다.
- "불을 계속 켜놓기(Keep the lights on, KTLO)" 위해 어느 정도의 노력은 필요할 수 있습니다.
"불을 계속 켜놓기" 에 대해 조사한 내용
- 서비스 확장을 위한 기능(피쳐) 개발을 제외하고 진행하는 작업들
- 예: 인프라 관리, 로직 유지보수, 버그 수정, 업데이트, 고객 요청 등
- 서비스를 운영하기 위해선 필수적이지만, 전체 IT 예산에서 KTLO 비중이 너무 높다면 혁신적인 업무를 하는데 시간을 투자하기 힘들어지게 된다.
- 이런 업무들은 여러 지표(티켓 완료 수, 커밋 머지 수)로는 생산적으로 보일 수 있지만, 회사를 더 나은곳으로 이끌지는 못합니다.
3. 빠르고 효율적인 도구 ⏱️
- 개발자는 에디터, git, 빌드 시스템 등 빠르고 효율적인 도구가 필요합니다.
- 이런 도구들에서 지연이 발생하면 비용뿐만 아니라 개발자 집중을 깨뜨리고 스트레스를 증가시킬 수 있습니다.
4. 지식은 힘이다 🧠
- 관련 지식이 많은 개발자가 더 생산적인 개발자입니다.
- 안정된 팀 구조를 목표로 하고, 해당 시스템에 경험이 많은 팀원들과 작업하고 배우게 하는 것이 좋습니다.
- 시스템 간의 깔끔한 경계를 정의해야 합니다.
- 모든 개발자가 광범위한 작업을 수행하도록 요구하는 것은 비생산적입니다.
5. 문서화, 문서화, 문서화! 📄
- 좋은 문서는 이틀 걸리는 작업을 한 시간 안에 할 수 있게 만들 수 있습니다.
- 전문화를 장려합니다. 모든 사람이 만능일 필요는 없습니다.
6. 튼튼한 인프라 🏗️
- 인프라는 작업을 돕기 위한 것이어야 하며 장애물이 되어서는 안 됩니다.
- 수행해야 하는 모든 작업에 합리적으로 밀접하게 얼라인되어야 합니다.
- 인프라의 모든 부분들은 특정 유스케이스를 염두에 두고 설계되지만, 프로젝트에서는 가끔 이런 유스케이스를 벗어나는 경우가 있습니다.
7. 기술 부채 줄이기 💳 ☆☆
- 기존 코드는 언제나 당신이 하려는 작업에 완벽하게 적합하지 않습니다.
- 리팩토링을 미루고 중간 해결책을 선택하는 것을 가급적 피합니다.
- 나중에 가면 '절대' 안 함 (feat. 경력 개발자)
- 기술 부채가 많아지면 기능을 조금만 변경해도 시스템을 더 크게 변경해야 합니다.
- 시스템을 유연하고 이해하기 쉽게 만드는 것을 목표로 합니다.
8. 실패율 낮추기 ✅
- 도구 실행 실패, 빌드 실패, 배포 실패 등 시스템 실패를 최소화합니다.
- 이런 실패 확률을 낮추면 생산성이 향상됩니다.
- 실패율을 낮추면 개발자뿐만 아니라 지원 팀의 시간도 절약하는 효과가 있습니다.
9. 생산적인 관행 채택 🌱
- 특정 문제를 해결하는 방법을 배우는 가장 좋은 방법은 프로토타입을 작성하는 것입니다.
- 프로토타이핑을 장려하고 사용자 친화적인 모니터링 도구를 사용합니다.
- 코드 리뷰 및 배포를 더 안전하고 쉽게 만들도록 노력합니다.
10. 집중이 핵심 🔍
- 개발자의 시간과 정신적 공간을 보호하여, 집중할 수 있는 환경을 제공합니다.
- 불필요한 중단과 회의를 최소화 합니다.
- 느린 도구와 정의되지 않은 작업은 방해가 될 수 있습니다.
11. 작업 완료 🏁
- 50%를 구축하는 것은 50%의 생산성이 아니라 0%의 생산성입니다.
- 버려지는 일만큼 생산적이지 못한 것은 없습니다.
- 하지만 중간에 프로젝트를 포기하는 것이 올바른 결정인 경우가 있기도 합니다.
- 지속적으로 우선순위를 바꾸는 것을 피합니다.
💡 마지막 생각:
모든 요소를 측정하는 것이 항상 중요한 것은 아니지만 생산성을 저해하는 것을 인식하고 대처하는 것이 중요합니다.
때로는 간단한 문서를 작성하는데 몇 시간을 들이면, 회사 차원에서는 수천 시간을 절약할 수 있습니다. (문서화의 중요성)
작업에 몰두하기 전에: 먼저 톱을 날카롭게 하세요! ⚙️🌟