성장하는 스타트업은 어떻게 일하고 있을까?

P2P금융 스타트업, 어니스트펀드 제품개발팀이 일하는 방법

어니스트펀드(HonestFund) / 18. 02. 14. 오전 12:09

어니스트펀드 제품개발팀은 P2P금융을 고객이 직접 경험해볼 수 있도록 서비스를 만들고 꾸준히 발전시켜 나가는 일을 합니다. 


제품개발팀은 고객의 니즈를 파악해 전체적인 서비스 구조와 화면을 설계하는 기획자, 고객과의 접점이 되는 화면과 인터랙션을 디자인하는 디자이너, 기획/디자인된 결과물이 실제로 동작할 수 있도록  제품에 생명력을 불어넣는 프런트/서버 엔지니어, 그리고 다양한 데이터를 수집하고 분석함으로써 더 나은 서비스를 가능케 하는 데이터 엔지니어까지 다양한 직군의 전문가들로 이루어져 있습니다.


이들이 어떤 프로세스 체계를 갖추고 어떻게 커뮤니케이션하며 업무를 진행하느냐에 따라 서비스 품질뿐만 아니라 업무 효율성에도 많은 차이가 나게 되는데, 어니스트펀드 제품개발팀이 일하는 방법을 소개함으로써 도움이 될만한 부분을 공유하고자 합니다.


매일 오전 스크럼 미팅으로 하루를 시작합니다.

agora에서 매일 오전 스크럼 미팅


제품개발팀은 매일 오전 agora에서 스크럼 미팅을 진행합니다. 스크럼 미팅은 팀 멤버별로 어제 있었던 이슈와 오늘의 할 일을 간단히 공유하고, 새로 추가되거나 변경된 업무와 관련된 맥락을 공유하는 시간입니다. 


이 시간을 통하여 멤버 모두 팀 내의 최신 상황을 업데이트하고 서로의 업무에 자유롭게 의견을 교환함으로써, 업무적으로 혹시나 놓칠 수 있는 부분을 최소화하고 각자의 일정을 다시 한번 체크합니다. 짧게는 15분에서 논의가 길어질 때는 1시간 넘게까지 진행되는 등 특별한 제약 없이 얘기 나누는 이 시간은 하루 업무를 시작하는 일상처럼 되었습니다.


커뮤니케이션을 효율적으로 합니다.

사내 협업도구로 무엇을 사용하고 있나요? 조직이 성장하고 인원이 많아지게 되면 작은 조직일 때와는 다르게 커뮤니케이션이 원활히 되지 않을 수 있습니다. 따라서 적절한 협업도구의 도입과 멤버 모두의 적극적인 사용은 매우 중요합니다.


'슬랙'에서 점심 메뉴를 재빠르게 취합하고 있는 팀원들


어니스트펀드에서는 여러 도구를 같이 사용하면서 커뮤니케이션을 효율화하고 있습니다. 어떤 주제든 쉽게 얘기할 수 있는 슬랙(Slack)을 기본으로, 업무를 정리해 공유하는 컨플루언스(Confluence), 이슈의 진행 단계를 추적하고 이슈별 논의를 하는 지라(Jira), 소스 관리를 위한 용도로 GIT을 기본적으로 사용 중입니다. 한편으로는 더 나은 도구의 도입을 위한 시도를 계속하고 있고 최근에는 아지트(Agit), 트렐로(Trello) 등도 부분적으로 도입해보고 있습니다.


척추를 곧게 유지합니다.

"척추 펴기는 잘 되어가고 있나요?", "네 열심히 펴고 있습니다." 혹은 "다른 일정으로 조금 지체되고 있어요." 제품개발팀 미팅에서 이런 대화가 오가면, 갓 합류한 직원들은 "척추 펴기가 뭐예요?"라는 질문을 합니다.


소프트웨어를 개발하는 회사라면 정도의 차이는 있지만 대부분 기술부채를 가지고 있습니다. 기술 부채란 기술적 이슈 해결을 나중으로 미루고 당장 필요한 시간을 버는 대신, 추후에 시간과 노력을 이자로 지불하는 것을 의미합니다. 


당장 필요한 시간을 버는 대신 이 부채가 점점 쌓이게 되면 장기적으로 작업 효율이 떨어지며, 서비스 품질에도 영향을 미칠 수 있어 꾸준한 관리와 청산이 중요한데, 어니스트펀드에서는 보통 기술부채라 불리는 이것들을 척추에 비유합니다. 사람이 바로 서는데 척추가 제일 중요한 것처럼, 중요도를 높여 기술부채를 관리함으로써 개발의 효율을 높이고 시스템을 최적화시켜 나갑니다.

물론 척추 펴는 기간을 별도로 할당하고 집중해서 펴는것도 가능하지만, 보통 현실에서는 이런 상황을 기대하기는 힘들고 다른 업무와 병행해서 틈틈히 진행해야 하는 경우가 대부분입니다. 이때 전략을 잘 세우는 것이 중요한데, 척추를 완전히 편 후 한꺼번에 서비스에 적용하는 것보다는 일단 척추를 펼 자리를 잘 마련해놓은 후에(즉, 전체적인 틀을 먼저 잡아 놓은 후에), 한 부분을 작업한 후 서비스에 적용하고 또 다른 부분을 작업한 후 서비스에 적용하고 하는 사이클을 반복해 나가는 것이 좋습니다.


척추펴는 작업은 언제든 다른 일정으로 인해 중단될 수 있는데, 서비스 적용까지의 사이클을 최대한 짧게 가져감으로써 일부분씩 펴나가는 것이 중요합니다. 어니스트펀드 제품개발팀에서는 이렇게 꾸준히 척추펴는 작업을 진행함으로써 점진적으로 시스템을 개선해 나가고 있습니다. 


앞으로도 P2P금융업계는 빠르게 성장하는 만큼 많은 변화가 예상되는데, 시간이 지나면서 펴진 척추가 언제든 다시 굽어질 수 있습니다. 따라서 상황에 따라 굽어지는 것을 받아들이되 이것을 자각하고, 꾸준히 펴 나가려는 계획과 행동이 매우 중요합니다.


정기적으로 깊이 있는 업무/기술 공유의 시간을 갖습니다.

제품개발팀에서는 정기적으로 각자 주제를 정해 깊이 있게 공유하는 세션을 가집니다. 현재 시스템의 구조에 대한 것부터, 담당하고 있는 모듈의 앞으로의 개선방향, 또는 그동안 개선한 부분, 공유하고 싶은 기술 등 업무와 관련된 부분이 주가 됩니다. 한 주제에 대해 깊이 있게 공유하면서, 팀원 모두 시스템 전반에 대한 이해를 높일 수 있고, 기술적으로도 발전할 수 있는 좋은 기회가 됩니다.



첫 세션을 진행한 후 한번 듣고 버리기엔 아까운 내용이라는 생각에, 두 번째 세션부터는 간단히 스마트폰으로 녹화를 진행하고 파일을 위키에 정리해 왔는데, 최근에 새로 합류한 팀원이 이 녹화된 파일을 인터넷 강의 시청하듯 참고하여 많은 도움이 되었다는 얘기를 들었습니다. 글로 정리하는 것과는 분명 다른 현장의 분위기나 디테일을 그대로 느낄 수 있었을 것입니다. 발표자가 부담을 느끼지 않는 범위에서, 사내 세션도 이렇게 녹화해 언제든 꺼내 볼 수 있게 하는 것도 좋은 방법인 것 같아 고려해보면 좋은 방법 같습니다.


페어프로그래밍으로 대화를 많이 하고, 품질을 향상시킵니다.

제품개발팀의 서버파트는 두 명씩 페어를 구성하고 있습니다. 페어는 각자 업무를 진행하면서 의논할 일이 있으면 첫 번째로 대화할 상대이며, 위에서 언급한 주번 활동을 같이 하기도 합니다. 또한 자율적으로 페어프로그래밍을 진행하기도 합니다. 


페어프로그래밍이란 말 그대로 두 명이 짝을 지어 코딩과 리뷰를 동시에 진행하는 것으로, 하나의 모니터를 같이 보며 한 명은 코드를 작성하고 한 명은 작성 중인 코드를 리뷰하는 방식입니다. 이 방식의 장점은 둘이 머리를 맞댐으로써 더 좋은 품질을 기대할 수 있고, 리뷰를 동시에 진행함으로 버그가 감소하며, 지식 공유를 더 활발하게 할 수 있습니다. 


최근에 한 페어가 적극적으로 페어프로그래밍을 진행하고 있고, 매일 결과를 위키에 업데이트하고 있는데, 재미있는 부분이 많아서 일부 화면을 캡처해봅니다. 두 분 응원합니다.

페어프로그래밍을 진행하고 있는 제품개발팀 druwa와 sinclair


테스트 케이스가 없다면 아직 완료가 아닙니다.

테스트는 아무리 강조해도 지나치지 않습니다. 여기서 테스트는 QA조직이 진행하는 테스트가 아닌, 개발팀 내에서의 테스트 케이스 작성이며, 유닛 테스트부터 통합 테스트까지 모두 포함합니다.


견고한 테스트 케이스 작성은 신규 서비스를 개발할 때뿐만 아니라, 척추 펴기나 구조개선을 할 때 변경된 로직을 검증하는 데 있어 반드시 필요합니다. 또한, 다양한 시나리오를 상상하며 테스트 케이스를 작성하게 되는데 기능을 구현할 때와는 또 다른 방향에서 접근하게 되면서, 업무 로직에 대한 이해를 더욱 높일 수도 있습니다. 


그리고, 어니스트펀드는 서비스의 특성상 외부 서비스(신용평가업체, 벤더업체 등)와 연동하는 부분이 많습니다. 따라서, 완전한 테스트를 위해서는 이를 위한 mock 서버 구현과, 테스트를 용이하게 하기 위한 패턴 적용 등도 개발 시 꼭 고려해야 합니다. 


번갈아가며 주번 활동을 합니다.

운영팀(allen)의 요청에 따른 제품개발팀(money, turbo)의 대응


서비스를 운영하다 보면 일상적이지만, 사람 손을 꼭 필요로 하는 부분이 있습니다. 예를 들면, 운영팀으로 인입된 고객 문의 중 제품개발팀의 확인이 필요한 것에 대한 지원, 다른 팀으로부터의 단발성 요청에 대한 처리, 또는 일상적인 서버 배포 등의 업무가 있습니다. 


담당자가 명확하지 않은 상태에서는 자칫하면 이런 업무가 특정 팀원에게 집중되거나, 책임이 불명확해 처리가 지연될 수도 있습니다. 제품개발팀에서는 주번 제도를 도입해서 이런 이슈를 처리하고 있습니다. 주번 제도는 개발팀 멤버 두 명씩 페어가 되어 2주 간격으로 로테이션하면서 진행됩니다. 다른 팀에서 위와 같은 이슈로 개발팀의 손길이 필요한 경우에는 언제든지 슬랙에서 주번을 소환하면 주번은 책임지고 업무를 처리합니다.


주번 활동이 중요도가 떨어지는 귀찮은 작업처럼 보일 수 있지만, 운영 전반에 대한 이슈를 개발팀 모두 경험하면서 개선할 부분에 대한 공감대를 형성하기도 하고, 자기가 담당한 모듈이 아닌 다른 부분을 처리함으로써 전체적인 이해도를 높이는데 많은 도움이 됩니다. 또한, 주번이 아닌 동안에는 부가적인 업무 요청 없이 자기 업무에 집중할 수 있어 방해받지 않고 업무에 집중할 수 있습니다.


누구보다 먼저 예외/장애 상황을 인지합니다. 

혹시나 발생할지 모르는 서비스의 예외/장애 상황을 즉각적으로 인지할 수 있는 수단이 있나요? 고객에게 서비스를 제공하고 운영하는 팀이라면 누구보다 먼저 장애나 예외 상황을 인지할 수 있어야 합니다.


어니스트펀드에서는 문제 상황이 발생할 경우 슬랙이나 SMS를 통해 실시간으로 정보를 받을 수 있게끔 구성되어 있고, 문제의 경중에 따라 천천히 처리하기도 하고 즉각적으로 해결하기도 합니다. 완성도 있는 서비스 제공을 위해서 이런 알림 채널을 갖추는 것과 적절한 알림을 보내기 위한 고도화는 꼭 필요한 부분입니다.

 

마치며.

개개인이 아무리 뛰어나더라도 팀으로써 유기적으로 일하지 못한다면 좋은 결과물을 기대하기는 힘듭니다. 유기적으로 일을 하기 위해서는 체계적인 업무 프로세스와 효율적인 커뮤니케이션의 중요성은 두말할 나위가 없습니다. 특히 P2P금융업계처럼 급격히 성장하고, 서비스 모델이 빠르게 변화하는 시장에서는 더더욱 중요할 것이며, 이를 위한 어니스트펀드 제품개발팀의 노력은 계속될 것입니다. 



#어니스트펀드 #스타트업 #개발자 #CTO #스타트업일상 #인사이트

기업문화 엿볼 때, 더팀스

로그인

/