팀 프로젝트가 나에게 남긴 것
레벨1, 레벨2 그리고 레벨3
우아한테크코스가 시작하고 어느덧 세 번째 레벨이 되었다. 레벨3는 레벨1, 레벨2와는 진행방식이 조금 다르다. 이전 레벨들에서는 해결해야 할 미션과 미션마다 정해진 요구사항들이 있었고, 우리는 정해진 요구사항에 맞춰 미션을 완성하기만 하면 됐다. 하지만, 레벨3는 해결해야 할 미션도, 정해진 요구사항들도 없다. 어떤 미션을 할지 어떤 요구사항들을 만들지 전부 하나하나 정해야 한다.
새로운 사람들과 프로젝트를 시작하는 과정은 항상 힘들다. 프로젝트의 주제가 결정된 후부터 본격적으로 기능구현에 들어가기 전까지 끝없는 회의를 했다. 기획뿐 아니라 스프린트별 일정, 팀 문화, git 컨벤션, API 설계 등 정해야 할 것이 너무 많았다. 힘들더라도 이 기간동안 회의를 많이 해두어야 앞으로 남은 기간동안 불필요한 회의를 줄일 수 있다. 프로젝트를 시작하고 첫 주는 코드 한 줄 치지 않고 진이 다 빠졌다.
이렇게 우리가 직접 설계한 기능들을 하나하나 구현해나가면서 마주하는 문제들은 이전에 겪어보지 못한 새로운 문제들뿐이었다. 이전 레벨들에서는 모든 크루들이 같은 미션을 구현하기 때문에 쉽게 힌트를 얻을 수 있었지만, 이번에는 그럴 수 없었다. 처음 써보는 라이브러리, 처음 적용해보는 툴들이 많았고 덕분에 구글링 실력은 확실히 늘었다. 무엇보다 이제는 충돌로 인해 테스트와 코드에 빨간 줄이 좍좍 그어져도 당황하지 않는 침착함이 생겼다.
혼자 가면 빨리 가고 함께 가면 멀리 간다
프로젝트를 많이 해본 것은 아니지만 우테코 크루들과의 프로젝트는 이제까지 한 프로젝트들과 확실히 달랐다. 일단 모든 팀원이 열정과 의욕이 넘친다. 말로는 워라밸을 지켜주자고 하지만, 주말과 새벽에도 끊임없이 슬랙 알림이 울린다. 이슈를 분배할 때도 하고 싶은 사람이 이슈를 가져가도록 했는데, 한 번도 문제가 된 적이 없다. 분배된 이슈가 PR로 올라오기까지는 웬만하면 이틀이 걸리지 않는다. 이렇게 열정 넘치는 사람들과 같이 프로젝트를 할 수 있는 것은 정말 행운이다.
생각해보면 과거의 나는 혼자 빨리 가는 것을 좋아하는 사람이었다. 빨리 가야 멀리 갈 수 있다고 생각했다. 그런 나의 생각을 우아한테크코스가 완전히 뒤집어 놓았다. 이미 이전에 페어 프로그래밍을 통해 같이 개발하는 것의 장점을 한 번 느꼈다. 페어로 기능을 구현하면 문제가 발생해도 둘 중 한 명이 겪어본 이슈일 확률이 높고, 같이 문제를 해결해나가는 뿌듯함도 배가 된다. 혼자 가야 빨리 갈 수 있는 줄 알았더니 함께 가는 것이 훨씬 더 빨리 가는 방법이었던 것이다.
팀원들 모두 이전 레벨에서 페어 프로그래밍에 대해 긍정적으로 생각했는지 프로젝트에서도 페어 프로그래밍을 적용하기로 했다. 페어로 기능을 개발하면 코드리뷰가 강제되기 때문에 배포된 코드에 내가 모르는 코드가 생길 일이 없다. 뿐만 아니라, 구현해야 할 API에 대해서 각자 구현할 때보다 리팩터링 후 병합하는 과정에 소요하는 시간을 줄일 수 있었다. 이제는 혼자 일하는 것과 같이 일하는 것 중 선택을 하라고 하면 망설임 없이 같이 일하는 것을 선택할 것이다.