2016년 5월 2일
아래 "이런 IT 회사에서 일하지 말자"라는 글을 쓰고 스타트업하시는 분에게 질문을 받고 보니 좀 오해의 소지가 있겠다 싶어서 -
"꼭 저거 다 해야 하는가?"
난 실용주의자다. IT 쪽에서 "고수라면 이 정도는 하겠지", "이것도 안하면 수준이 낮은 거지" 이런 식의 사고방식이 흔한 거 안다. 하지만 우리 간단하게 생각해보자. 코드 리뷰, 자동 디플로이 등이 "이 정도는 해야 하이 테크 회사고 수준 있으니까" 하는 건가?
아뇨. 돈 되니까 하는 겁니다. 안 해서 보는 손해가 해서 드는 시간 투자보다 크니까 하는 거고요. 개발팀 운영하면서 프로덕트 내놓고 그거 뒷감당하다 보니까 흔히 접하는 문제가 있고, 그것 때문에 __돈 버는 데에 지장이 가니까__ 그 문제를 해결해보려 하다 보니 이런저런 솔루션이 나온 거죠.
코드 리뷰.
이걸 실력 향상의 도구로 보는 이도 있고 지적질로 보는 사람도 있는데 근본적으로 코드 리뷰의 정신은 "야 나 이거 했는데 혹시 오탈자 있나, 실수 한 거 있나 네가 좀 봐봐" 이다. 직접 쓴 사람에게는 안 보이는 것이 다른 사람 눈에는 확 띌 수 있으니 하는 거다. 그걸 자주 하다 보면 실력이 느는 건 맞는데, 실력 느는 것이 제 1순위는 아니라는 말이다. "HTML 코드도 다 리뷰해야 합니까?" 질문하셨는데 - 체크해야 하는 거면 하고, 아니면 안 하시면 되죠. 혹은 코드 리뷰를 생활화해야 하는 분위기라면 뭐 무조건 코드 리뷰 하도록 팀 내 문화를 만들어두는 의미에서 해야 할 수 있고요.
자동 테스팅.
릴리즈가 엄청 잦은 곳에서 사람 테스터들 시켜 매번 똑같은 테스트 하려니 비싸기도 하고 균일하지도 못해서 릴리즈 다음에 삑사리 나고 결론적으로 __돈 버는 데에 지장이 가니까__ 제발 좀 릴리즈 할 때마다 자동 테스트 안 되냐 해서 만든 거지, 우리 회사는 수준 높은 회사니까 자동 테스팅 하자...는 아니다. 필요 없으면 당연히 안 해도 된다.
그런데 왜 그런 거 없는 회사에서 일하지 말래?
초보한테 해당하는 말이다. 이미 풀어놓은 문제가 있는데 답안지 없이 혼자 풀어보겠다고 끙끙대는 시간 낭비가 클 수 있으니 이왕이면 최신 방식으로 일하는 곳에서 몇 년 보내두면 다음 회사에 가서 비슷한 상황일 때 크게 고민 없이 문제 해결이 가능해서다. 레스토랑에서 체계적인 재료 정리해 본 친구는 다른 작은 회사에서 재료 준비하는 데에 시간이 너무 오래 걸린다면 '다른 데에서는 재료 정리 이렇게 하던데요' 제안할 수 있는 뭐 그런.
새로운 프로덕트 런칭하는 스타트업이라면?
최대한 빨리 만들어서 내는 것이 1위다. 하지만 그렇게 급한 상황이라도 꼭 처음부터 있어야 하는 시스템이라면 설치하는 것이 맞고 아니라면 없어도 된다(아니 이런 당연한 말을). 게임 회사라면 결제 시스템은 당연히 있어야 하고 게임 데이터 파이프라인은 있어야 하겠지만, 커뮤니티 사이트라면 자동화 빌드/테스트/엄청 디테일한 문서화는 시간 낭비일 수 있다. 그래도 '알아도 필요 없으니 안 하기'와 '아예 몰라서 안 하기'는 다르다.
IT 개발팀 내에 좋은 프로세스에 관해서는 자세한 문서 많이 있으니 스킵하고.
그 좋은 프로세스 리스트 우리 팀에서도 다 해야 하나라는 질문이 들면 -
이것을 함으로써 시간이 절약되는가? 운영에 더 도움이 되는가? 협업에 플러스 요인인가? 돈을 더 벌 수 있는가? 를 고려하면 될 것이고, 초보라면 그냥 프로세스 잘 되어 있는 곳으로 가서 배운 다음에 나중에 케바케로 취사선택합시다.