[본 개발기는 2015년 6월 29일 작성된 개발기입니다. 팀 하이에나의 블로그에서 옮겨왔습니다.]  
안녕하세요.
 
팀 하이에나의 오세용 입니다.
 
팀 하이에나는 주로 B2B 시장에서 활동하며, 내부 서비스로 SWIKI 를 운영하고 있습니다. SWIKI 는 매일 아침 IT Trend 를 정리하여 유저들에게 푸시로 발송해주는 서비스인데요. SWIKI 를 기획/개발 하면서 생기는 일들을 공유하고자 합니다.
 
SWIKI 개발기의 대상은 다음과 같습니다.
 

1. 아이디어를 현실화 하고자 하는 사람.

2. 개발자 베이스로 앱 기획을 하고자 하는 사람.

3. 앱 개발 베이스로 Server-side 를 배우고자 하는 사람.

4. 애자일 방법론을 경험해보고자 하는 사람.

5. 삽질을 덜 하고 싶은 사람.

 
이밖에도 IT 에 관심 있는 비전공자들도 쉽게 읽을 수 있도록 글을 써볼까 합니다. SWIKI 를 만들면서 겪는 여러가지 어려움이 이 글을 읽는 독자분들에게 도움이 되길 바랍니다.
 
이 칼럼에서는 팀 하이에나의 SWIKI 프로젝트가 추구하는 “애자일 팀” 과 그 효과에 대해서 이야기 해보고자 합니다. 애자일 프로젝트를 해본적이 없는 개발자들이 애자일 팀을 어떻게 만들게 되었는지 알려드릴게요.
 

SWIKI 가 뭐에요?

 
SWIKI 는 팀 하이에나가 만드는 서비스로 매일 아침 IT Trend 를 푸시로 발송해주는 서비스입니다. 지난 2015년 1월부터 매일 아침 하이에나팀이 IT 기사를 읽고 핵심 기사를 추려 정리하고 있는데요. SWIKI 를 기획하게 된 동기는 다음과 같습니다.
 

1. IT 는 정보가 생명이다. 아는 만큼 보이는 법. 가장 이슈가 되는 정보들을 알 수 없을까?

2. 같은 기사를 보고도 다른 통찰을 할 수도 있다. 나와 다른 생각을 듣고 싶다.

위의 동기를 정리하면 “가장 이슈가 되는 IT 정보를 보고 난 뒤의 나의 통찰과 다른 이들의 통찰을 비교해보고 싶다.” 가 되겠습니다.. 우리는 이 문제를 해결하기 위해 “가장 이슈가 되는 IT 정보를 보는 것” 부터 만들기로 했습니다.
 
애자일 프로젝트를 진행하면서 저 문장은 상당히 중요하다는걸 깨달았는데요, 프로젝트가 민첩하게 진행되다보니 방향을 잃기가 굉장히 쉬웠습니다. 게다가 오직 “개발자들로 이루어진 팀” 이었기에, 기획과 디자인에 지식이 없어 계속해서 변화가 일어났습니다. 때문에 가장 중요한 핵심을 문장으로 만들어 계속해서 팀원들과 공유하는게 큰 도움이 되었습니다.
 
SWIKI 프로젝트를 진행하면서…
 
팀 하이에나는 Android 파트 4명과 iOS 파트 3명으로 구성되어 있습니다. 이 중 SWIKI 프로젝트는 4명의 개발자가 투입되었는데요, SWIKI 프로젝트가 팀 하이에나가 추구하는 목표는 다음과 같습니다.
 

1. 신입 팀원들에게 앱 개발 프로세스를 전수하자.

2. 기존 팀원들은 새로운 분야를 익히도록 하자.

올해 초 Android, iOS 파트 각 1명씩 신입 팀원이 들어왔는데요, Android A 팀원, iOS B 팀원입니다. 이들과 Android 파트의 저와 C 팀원까지 총 4명이 SWIKI 프로젝트를 시작하게 되었는데요. SWIKI 프로젝트의 포지션은 다음과 같습니다.
 

Android – A 팀원 (신입)

iOS – B 팀원 (신입)

iOS & Server & 디자인 – C 팀원 (Android 5년)

Server & 기획 – 오세용 (Android 3년 6개월)

 
이상 4명의 SWIKI 프로젝트 팀원은 애자일 방법론에 따라 개발을 시작했습니다. SWIKI 를 개발하면서 제가 선택한 애자일 방법론은 딱 한가지였습니다. “스플린트(2주)”
 
여러 세미나에서 애자일 방법론에 대한 경험을 듣기도 했고, 애자일 강의를 1주일 동안 다녀오기도 했습니다. 사이드 프로젝트를 통해 애자일 프로젝트를 경험하기도 하면서 제가 내린 결론은 “애자일 방법론이 최상의 프로덕트를 위한 답이 아닐 수도 있다” 였습니다.
 
처음 애자일 방법론을 듣고 저는 “그거 개발자를 좀 더 효율적으로 쪼기 위한거 아닌가요?” 라고 반문했는데요, 지난 3개월간 SWIKI 프로젝트를 애자일 방법론으로 진행하면서 느낀 것은 제 생각이 반쯤 맞다는 것입니다. 2주마다 빌드가 되는 앱을 만든다는 것은 개발자 입장에선 상당히 부담되고, 기획자 입장에선 상당히 기대되는 일이였습니다.
 
하지만 2주 스플린트를 강력하게 푸시하지 않았다면, 신입 팀원들이 아닌 경력이 비슷한 팀원들끼리 진행했다면, 스플린트는 실패했으리라 생각합니다. SWIKI 가 애자일 팀으로 변신하기까지는 신입 팀원들에 대한 강제성이 분명히 효과를 발휘했습니다. (SWIKI 프로젝트 초기에 상당히 고생을 한 A, B 팀원에게 위로의 메시지를… 쏴리. ㅋ)
 
어쨌든 우리는 2주 스플린트를 통해 앱을 업데이트하기로 결정했고, 처음 앱등록시 걸린 1달을 제외하고는 2주에 한 번씩 앱을 업데이트 하고 있습니다. 2015년 4월 16일에 Android 1.0.0 버전을 등록한 뒤, 벌써 6번이나 앱을 업데이트 했네요.
 
팀 하이에나는 신입 팀원 A, B 팀원에게 앱 개발을 모두 맡겼습니다. 보통 신입 팀원이 입사하면 보조 개발자로 프로젝트에 투입되곤 하는데요, 첫 프로젝트에서 앱 개발을 모두 맡기면서 이들의 집중력과 책임감은 엄청나게 늘어났습니다. 또한 익숙했던 Android 를 벗어나 리눅스에서 php 개발을 하고 DB를 접하며, 저와 C 팀원은 신입때의 좌절감을 다시 겪을 수 있었지요. (구글이 있어도 뭐라고 검색할 지 모르겠으니… 그 답답함이란…)
 
SWIKI 프로젝트를 3개월 동안 진행하면서 위의 두 가지 목표는 대만족입니다. SWIKI 프로젝트에 집중할 수 있었던 Android 김경빈 팀원은 현재 SWIKI 출시 후 버전 1.0.6 까지 업데이트하면서 앱 등록 프로세스를 경험할 수 있었고, 실제 유저들이 사용하는 서비스를 운영하면서 개발자로써 갖춰야 할 책임감을 느낄 수 있었다고 합니다.
 
SWIKI 프로젝트와 다른 프로젝트를 겸했던 iOS B 팀원은 아직 iOS 앱을 배포하지 못했지만 iOS 개발자라면 누구나 겪을 수 있는 “리젝” 을 당했습니다. 실제 프로젝트에서 리젝을 당했다면 굉장한 좌절감을 맛 보아겠지만, 내부 프로젝트에 한 번 경험해봤으니 실제 프로젝트에서는 좀 더 낫겠지요. 다른 프로젝트를 겸하면서 SWIKI 앱을 아직 배포하지 못했지만 이번 주에 리젝 사유를 해결하여 다시 iOS 앱을 등록 할 예정입니다.
 
Android 파트의 C 팀원는 php 와 mysql 로 SWIKI 백단을 개발하며 깊은 좌절감을 맛보았는데요, 앱 개발자로만 구성된 팀 하이에나에서는 그 누구도 조언을 해줄 수 없었기에 혼자서 끙끙 앓곤 했습니다. 어쨌든 SWIKI 의 기본 뼈대가 되는 백단의 틀을 홀로 잡았고, 이제 기본적인 통신 등은 문제 없게 되었습니다. 또, 틈틈히 GUI 도 고민하며 SWIKI 의 요소요소에 힘을 더했습니다. 아무것도 디자인 한게 없어보이지만… 개발자에겐 참 많은 고민이 필요했습니다.
 
마찬가지로 Android 파트인 저는 SWIKI 의 기획파트를 맡고, Server 구축을 했습니다. SWIKI 기획은 평소 생각하던 기능들로 큰 어려움 없이 기획했지만, Server 구축은 상당히 애먹었습니다. SWIKI 는 Confluence Wiki 를 기반으로 글을 쓰고 있는데요, 내부 DB 인 hsql 로 설치되었던 Confluence 는 DB 접근이 불가했기에 mysql 로 마이그레이션을 해야만 했습니다. 안타깝게도 Confluence 는 한글 문서가 거의 없어 Q&A 에 영문으로 대화를 하며 힘겹게 마이그레이션을 했는데요, 리눅스 기본 지식과 Apach Server 의 개념이 없어 간단한 서비스임에도 엄청난 삽질을 했습니다. 현재도 포트를 변경해야 하는 이슈가 있어 굉장한 삽질이 기다리고 있습니다. 하지만 서비스를 아이디어부터 개발 및 배포까지 전체적인 프로세스를 경험하면서 엄청난 경험을 할 수 있었습니다.
 
기존 팀원들이 새로운 파트를 경험하고 싶다면, 신입 팀원들에게 경험을 전수하고 싶다면. 팀 하이에나처럼 작은 프로젝트를 시작해보는걸 강력 추천 드립니다. 알아서 공부하란 식으로 개발자들을 내버려두는 것 보다 몇배 이상의 효과를 보실 수 있을겁니다.
 
애자일 팀. 하이에나
 
지난 3개월 동안 애자일 방법론으로 SWIKI 프로젝트를 진행하면서 오직 “스플린트” 만을 사용했는데요, 지난 주 애자일 방법론 중 “회고” 를 해보기로 했습니다.
 
외부 프로젝트에서 일하고 있는 iOS 파트의 ‘지지맘’ 을 제외하고 나머지 6명의 팀원이 모여 회고를 진행 했는데요, 우려와는 다르게 다들 의견을 내주었습니다.
 
오세용 – 현재 350명의 유저가 디바이스에 설치하고 있는 상태이며, 한번 이상 받은 유저는 430여명이다. 하루에 1회 이상 방문하는 유저는 100명이며, 주말에는 10명 정도이다. 아이폰이 오픈되면 총 유저수가 1000명 정도가 될 것으로 예상하며, 2주 스프린트로 지금처럼 만들어갔으면 좋겠다.
 
A 팀원 – 일정 측정이 많이 어려웠었는데, SWIKI 를 만들면서 좋은 경험이 된 것 같다. 하지만 기능을 새로 추가 할 경우 기존 소스를 다시 만들게 되는 등의 경험은 앞으로도 많이 필요 할 것 같다.
 
B 팀원 – 공통단을 이제 보기 시작했다. SWIKI 도 기능을 다시 보니 할 작업이 많은 것 같다.
 
C 팀원 – 사용자가 이정도로 늘어날지 몰랐다. 살짝 부담도 된다. DB 공부도 필요 할 것 같고… 그렇다.
 
D 팀원 – UI 기능이 좀 더 들어갔으면 좋겠다. 유저 입장에서 할 수 있는게 많이 없다. 재미있는 기능들을 많이 넣었으면 좋겠다.
 
E 팀원 – 서버 환경에 적응하느라 아직 소스를 전부 파악하지 못했다. 앞으로 함께 배워갔으면 좋겠다.
 
폭포수 모형으로 다수의 프로젝트를 진행했고, 스플린트로 SWIKI 프로젝트를 진행하면서 느낀 것 중 하나는 결국은 “팀워크” 라는 것입니다. 프로덕트를 만들기 위한 팀원들의 열정이 얼마나 집중되느냐가 프로젝트의 승패를 좌우합니다.
 
위 6명의 회고를 보면 모두 다른 관점에서 다른 이야기를 하고 있습니다. 애자일 방법론 책과 칼럼들을 보면 “유저의 피드백을 좀 더 많이 받고 보다 민첩하게 행동하는 것” 이라고 이야기하는데, 프로젝트를 진행하는 입장에서는 유저가 아닌 프로젝트 팀원들의 피드백을 좀 더 많이 받을 수 있다는게 고무적이였습니다.
 
프로젝트가 산으로 가는 가장 큰 이유는 “소통의 부재” 라고 생각하기 때문인데요, 문제를 만드는 개발자들이 다음주가 오픈인데 그제서야 자신의 이슈를 꺼내놓곤 합니다. 그게 프로젝트의 가장 큰 위험이였고, 야근의 이유였죠.
 
모든 프로젝트에 2주 스플린트를 적용 할 수는 없겠지만, 작은 프로젝트에서는 이 방법이 상당히 효과를 보여주는 것 같습니다. SWIKI 프로젝트를 통해 팀 하이에나가 애자일 팀으로 변신할 수 있다는 것을 발견하여 매우 기쁘네요.
 
SWIKI 개발기는 계속해서 연재됩니다.
 
아이디어를 실체화 하는 것은 참 매력적입니다. 제가 이 분야에서 일하게 된 결정적인 계기였는데요. 아쉽게도 이런 프로젝트 경험을 알리는 사람은 많지 않은 것 같습니다.
 
SWIKI 프로젝트는 앞으로도 계속됩니다. SWIKI 개발기는 Confluence 마이그레이션, 아파치 port, 리눅스 방화벽, iOS 앱 리젝 등 그동안 SWIKI 가 겪은 문제들과 애자일 방법론, 앱 마케팅, Google Analytics 등 다양한 툴에 대한 리뷰도 연재할까 합니다.
 
그러기 위해선 SWIKI 에 대한 여러분들의 많은 성원이 필요한데요, 지금 당장 아래 링크로 가서 SWIKI 를 다운받아 주세요. ㅋㅋㅋㅋ
 
SWIKI Android 다운 받기 -> https://goo.gl/brFV6S
 
긴 글 읽어주셔서 감사합니다. 앞으로도 여러분들에게 도움이 되는 이야기를 들려드리겠습니다.
 
감사합니다.