작은 일부터 시작하기: 팀에 빠르게 기여하는 방법
회사에 처음 입사하고 사수가 있다면 너무 좋겠지만, 사수가 없는 경우도 분명 있을 것 입니다. 또한 제가 생각하는 개발자는 '자기주도적'이라는 성향이 장착되어있어야한다고 생각을 하는데, 어떤 시스템을 구현하기 위해서는 다양한 문서를 찾고, 시도해보며 시스템에 어떻게 녹여낼지가 중요한 것 같습니다. 그런 의미에서 개발자가 갖춰야할 몇가지 덕목들을 정리해보았습니다
1. 관찰하기 ( 회사에 입사했는데, 아무도 일을 알려주지 않는다면? )
- 조직과 코드를 살피며 누구와 대화해야 할지 찾기
- 콘웨이의 법칙: “프로그램의 구조는 조직의 구조를 반영한다”
조직의 특징과 흐름을 이해하자 - 주어진 일을 하는 개발자는 경쟁력이 없다 생각합니다. 스스로 파악하고 조직의 흐름을 살피는 것은 매우 중요하겠죠
2. 질문하기 ( 모르는 것은 꼭 질문하자)
- 관찰하기에서 살펴본 내용하고 상충될 수 있지만, 혼자 끙끙되면서 한가지 일을 몇일이나 시간을 들이는 것보다는 빠르게 질문해서 해결 방안을 논의해보는 것이 좋겠죠
- 과거의 결정에 대해 비판하지 말고, 당시의 맥락을 이해하려고 노력하기
- 제품이나 코드에 대해 질문하면서 개선 가능성을 탐색하기.
3. 기여하기 ( 개발자의 가장 중요한 덕목 )
- 작은 일 혹은 누구나 할 수 있는 일, 하지만 아무도 하지 않는 문제를 해결하기
- 직접 해결하고, 자주 공유하기
- 작은 작업을 통해 코드에 대한 이해도를 점차 높이기 (개인 프로젝트 수준의 코드를 보다가 회사 코드를 마주하게되면, 너무 혼란스럽고 이해하기 힘들수 있습니다. 큰 일을 잘게 쪼개서 문제를 처리하는 것은 너무 중요합니다)
4. 본질적인 질문 던지기
- 타겟 유저는 누구인가?
- 어떤 반응을 얻고자 하는가?
- 필요한 기능은 무엇이며, 가장 효과적인 기능은 무엇인가?
5. 답을 공유하기
- 제품에 대해 이야기하고, 공유하며 피드백 받기.
- 글을 작성하며 사고를 정리하기.
- 요구사항을 효과적으로 전달.
- 긴 문장은 짧게 나눠 가독성을 높이기.
- 상대방은 내가 하는 일에 대해 잘 모를 수 있음을 고려하기.
6. 정리하며 일하기
- 정리의 습관: 코드, 문서, 시간 모든 것을 제자리에 두기.
- 체계적인 정리는 클린 코드와 리팩토링의 기초.
- 코드와 자신을 분리하고, 감정을 배제한 피드백을 수용하기.
7. 완성에 집중하기
- 제한된 시간 안에서 코드의 퀄리티와 완성의 균형 찾기.
- 완벽보다 완성을 목표로 설정하기.
8. 코드 리뷰 요청 시
- 내가 작업 중인 브랜치의 목적이 명확한가?
- 동료가 쉽게 이해할 수 있는 작업을 했는가?
- 리뷰 요청 시점이 적절한가?
9. 제품 개발 시
- 핵심 사용자 경험을 정의하기.
- 지금 포기할 수 있는 부분과 우선적으로 만들어야 할 부분을 구분하기
10. 팀워크와 큰 그림 보기
- 커피챗, 랜덤 런치 등을 통해 팀원들과 관계 형성하기.
- 작은 일에도 서로를 인정하고 칭찬하기.