19세기 산업혁명 이후로 제품 생산의 표준으로 자리 잡은 워터폴 방식의 공정은 자동차, 선박 등 기존 굴뚝 산업에 최적화된 생산 방법으로, 선형적인 작업 순서와 분업으로 시간과 비용의 효율성을 추구하는 것이 핵심이다. 고정된 요구 사항에 맞추기 위해 적절한 시간과 돈을 투입하여 프로젝트를 진행시킨다.
시작과 끝이 분명한 순수한 의미의 워터폴 모델에는 지속적인 변화 요소가 없다. 즉 순수한 의미의 워터폴 모델에는 요구 사항이나 시장 변화에 적응하는 메커니즘이 존재하지 않는다.
그러나 제품 품질을 시장 요구에 따라 지속적으로 개선하는 것이 생산 과정의 일부가 되어야 한다는 개념은 존재했다. 1970년에는 ‘종합품질관리’가, 1990년대에는 ‘식스시그마’가 산업계를 휩쓸었다. ISO 9001, CMMI-DEV, PMP라는 자격증까지 생겼다. 이런 규격들을 만족시키는 시스템을 갖춘 회사들은 고객이 원하는 제품을 원하는 시간에 만족스러운 품질로 만들 능력이 있다고 여겨졌다.
이와 같은 노력의 공통분모를 찾아보면 ‘지속적인 개선’Continuous Improvement이라는 말이 그 중심에 있는 것을 알 수 있다. 이 말 뒤에는 자주 ‘사이클’Cycle이라는 단어가 붙는다.
하지만 고품질 제품을 고객에게 인도했더라도, 기능을 바꾸거나 새로운 기능을 추가할 때마다 높은 품질을 유지하는 것은 쉬운 일이 아니어서 복잡한 승인 절차가 요구됐다. 시간이 지날수록 고객이 만족하는 제품을 얻기 위한 비용이 높아지는 경향을 보였다.
소프트웨어를 개발하는 스타트업들은 워터폴 방식으로 개발을 진행하기 힘들다. 우선 시간과 돈이 빠듯하고, 낮은 진입 장벽으로 인한 공급과잉으로 시장 변화가 너무 빠르다. 즉 시간과 돈에서 제한이 명확하다. 그래서 소프트웨어가 어느 정도 사용할 만하다 싶으면 빠르게 출시한 다음에 사용자들의 의견과 통계를 수집해서 이를 바탕으로 업데이트를 배포하는 과정을 반복하는 순환식 개발 방식인 애자일이 널리 정착하게 되었다. 애자일 모델은 워터폴 방식과 반대로 적은 돈과 시간에 맞추기 위해 요구 사항을 끊임없이 수정하는 방식이다.
애자일로 대표되는 점진적 개발법은 2001년에 와서야 「애자일 선언문Manifesto for Agile Software Development」이 발표되면서 제대로 모습을 갖추기 시작했다. 실제로 회사들에서 스크럼 같은 애자일 프로세스가 널리 쓰이기 시작한 것은, 개인적인 경험에 의하면 2005년 정도였던 것 같다. 칸반Kanban은 그러고도 몇 년 뒤에 생긴 것 같다.
워터폴에서 강조하는 프로세스와 문서에 관한 규정이 오히려 고객이 원하는 것을 시간 안에 이루어내는 프로젝트를 진행하는 데 방해가 될 수도 있다는 입장이다.
고객이 원하는 내용이 바뀔 때 계약을 재협상하여 변화에 대한 비용을 고객에게 떠넘기기보다 변화 그 자체를 프로젝트의 속성으로 받아들인다. 고객이 원하는 내용을 만들어주기로 한 약속을 표면적으로 지키는 것보다 고객이 만족하는 수준으로 동작하는 소프트웨어를 전달하는 것이 더 중요하다. 애자일을 사용하는 기업들은 이러한 가치를 만족시키기 위해 자주 점진적으로 동작하는 소프트웨어를 고객에게 전달하는 방법을 사용한다.
이러한 반복적, 점진적 제품 업데이트를 통해 애자일이 추구하는 가치를 더 쉽게 성취할 수 있다.
고객이 새 기능을 제공받기 위해 1년씩 기다려야 하는 프로세스라면 애자일의 반대편에 서 있을 확률이 크다. 요즘 애자일의 제품 업데이트 주기Delivery cycle는 1~2주이며, 매일 이루어지는 경우도 있다.
이와 같은 빠른 제품 업데이트 주기는 고객이 요청한 사항을 바로 다음 주에 만들어준다는 뜻이 아니다. 고객과 자주 대화하는 것은 사실이지만, 원하는 기능을 최종적으로 전달하는 데는 워터폴 모델보다 더 오래 걸릴 수도 있다.
그림에서처럼 최종 제품인 자동차를 만들기 위해 자동차 부품들을 차례대로 만들어 인도하고, 마지막에 조립해 완성품을 인도했다면 이는 애자일 프로세스가 아니다. 어쨌든 이렇게 만든 자동차를 ‘자동차 A’라고 하자. 스케이트보드는 자동차와 어찌 보면 무관하지만, 고객이 타고 이동할 수 있는 최소기능제품MVP: Minimum Viable Product이다. 최소기능제품인 스케이트보드에서 자전거, 모터사이클, 자동차로 점차 발전된 제품을 고객에게 제공하는 것이 애자일 프로세스에 가깝다. 이렇게 전달된 자동차를 ‘자동차B ’라고 하자. MVP의 전달이라는 면에서 자동차 A의 인도는 한 번에 이루어졌지만 자동차 B는 네 차례에 걸쳐 이루어졌다.
고객이 쓸 수 있는 최소한의 제품을 먼저 출시하고 나서 점차 발전시켜나간다는 점에서 애자일은 비효율적으로 보일 수 있다. 만약 고객이 구체적으로 원한 기능과 디자인만 만족시키는 자동차를 만드는 일이었다면, 스케이트보드와 자전거, 모터사이클을 제공한 회사보다 처음부터 자동차를 조립하기 시작한 회사가 먼저 제품을 인도했을 수 있기 때문이다.
그렇다면 왜 애자일 방법론이 좋다고 하는 것일까? 100년이 넘는 역사를 자랑하는 자동차의 경우, 정말 많은 시행착오를 거쳐 오늘날과 같은 모습을 가지게 되었다. 그런데 지구와 동떨어진 어떤 행성에서 고객이 아무도 본 적 없는 자동차를 요구했다고 하자. 이때껏 자동차를 써본 적이 없는 고객이 주문을 넣고 2년을 기다려 인도받아 처음 운전해본 뒤의 경험은 어떠할까? 반면 첫 납품으로 복잡하지 않은 스케이트보드를 사용해본 고객은 어떤 생각을 할까? 아마도 필요할 때 빠르게 정지하는 기능을 필수 기능으로 인지했을 것이다. 자전거를 사용해본 고객은 속도가 빨라질수록 조향 안정성이 중요하다는 점을 인지했을 것이다. 모터사이클을 사용해본 고객은 엔진의 신뢰도가 높고 관리가 편해야 한다는 점을 인지했을 것이다. 이런 과정을 통해 만들어진 자동차 B는 고객이 요구한 ‘A에서 B로 갈 수 있다’는 사항을 만족시키는 자동차 A에 비해 더 안전할 뿐 아니라 운전하기 즐겁고 운용 비용도 적게 들 가능성이 크다.
애자일 프로세스는 값싸고 빠른 프로세스가 아니다. 최종 제품만 비교한다면 오히려 비싸고 느린 프로세스가 될 수도 있다. 하지만 추가된 비용과 시간은 고객을 만족시키지 못할 가능성에 대한 리스크를 줄임으로써 얻는 가치에 비해 상대적으로 적은 지출일 수 있다.
앨리스는 고양이에게 다가가 물었다. “여기서 나가는 길을 알려주지 않을래?”
“네가 어디로 가고 싶은지에 달렸지.” 체셔 고양이가 대답했다.
-루이스 캐럴, 『이상한 나라의 앨리스』
워터폴과 애자일 프로세스는 각각 위계 조직과 역할 조직 중 어떤 조직 문화에 더 적합할까?
워터폴 모델이 적용되는 프로젝트를 보면, 요구 사항이 분명하기 때문에 이를 만족시키는 경쟁사 간 입찰을 통해 프로젝트 주관사가 결정된다. 이렇다 보니 요구 사항, 가격, 기한이 정해져 있기 마련이고 남은 변수는 품질이 된다.
요구 사항을 만족시키는 제품을 기한 내에 납품해야 하는데 비용을 더 들이지 않고 품질을 높이려면 체계적인 관리 기법이 필요하다. 조금이라도 예상에 어긋나는 일이 생길 때마다 그 손실을 보상하기 위한 추가적인 노력도 들여야 한다. 관리자는 각 직원이 중복 작업을 하지 않도록 효율적인 업무 배분을 하며, 필요한 만큼의 정보를 나누어주는 일을 해야 한다. 아무래도 이러한 프로세스를 수행하는 데는 체계적으로 일을 분배하고 관리하는 위계 조직이 적합할 것이다.
애자일 프로세스는 고객을 만족시키기 위해 필요한 것을 탐색하는 과정이 포함돼 있기 때문에 비용과 시간, 그리고 요구 사항이 묶여 있는 경우에 쓰기 어렵다. 비용과 시간이 묶여 있는 경우라도, 고객이 만족할 수 있는 MVP가 인도되도록 최선을 다한다는 데는 변함이 없다. 정해진 기한 내에 자동차 B를 만들어 인도하는 데 실패하더라도 고객은 이미 조향 성능이 훌륭하고 신뢰도가 높은 모터사이클 B를 만족스럽게 운용하고 있을 것이기 때문이다. 애자일 프로세스를 통해 프로젝트를 진행하는 팀은 고객 만족을 위한 가치를 만들어내기 위해 다양한 전문성을 가진 팀원들이 협업과 잦은 반복iteration을 통해 제품을 개발하고 있을 것이다. 명령 체계가 분명하지만 방향을 유연하게 바꾸기 어려운 위계 조직보다는, 각 팀원이 전체의 방향을 이해하고 자신이 해야 할 일에 대한 해결책을 끊임없이 모색하는 역할 조직이 적합하다.
애자일 방법론을 사용하기 위해서는 제품을 만들어 제공하는 회사뿐 아니라 고객사도 같이 참여하는 기업 문화가 우선되어야 한다. _Aiden(송창걸)
이 포스트는 『실리콘밸리를 그리다 : 일하는 사람이 행복한 회사는 뭐가 다를까』에서 발췌, 재정리한 것입니다.
실리콘밸리 기업에 취업하는 법 : 실리콘밸리의 인재 구인 방식 (0) | 2018.10.22 |
---|---|
데드라인 없이 좋은 소프트웨어 개발하는 법 : 애자일 프로젝트 스터디 (0) | 2018.10.16 |
어떻게 회의해야 일이 잘 될까? (0) | 2018.09.21 |
회사에 나를 맞추지 말고 나와 맞는 회사를 찾아야 하는 이유 (0) | 2018.09.17 |
그 회사에 줄서기, 사내 정치질이 없는 이유 (0) | 2018.09.17 |