어떤 분야라도 쌉 가능!
소프트웨어가 부드러운 제품이라고 소개했는데, 그 소프트웨어를 잘 만들어 보자고 만든 방법론 중 애자일을 기민하게 해야 하는 이유에 대해서 이야기해보려 한다. 소프트웨어 개발 방법론이지만 소프트웨어와 전혀 무관한 분야에도 심지어 개인적인 일정관리에도 아주 요긴하게 사용할 수 있는 방법론이니까 꼭 한 번쯤은 알아보고 적절하게 사용해 보길 바라는 마음으로 소개해 볼까 한다.
내가 애자일 방법론을 처음 접했을 때 가장 신선했던 부분은 애자일 선언문이다. 보통 방법론이니 프로세스니 하는 것들은 라이선스가 있는 경우도 많고, 특정 기관에서 권위를 갖고(때로는 스스로) 자격증도 만들어서 자격을 검증하기도 하며, 상당히 비싼 수업료를 지불하고 나서야 배울 수 있는 경우가 많았다. 하지만 애자일 방법론은 애자일 선언문으로 대표되는 핵심적인 가치를 중심에 두고 온라인에 올라와있는 무료 자료들 만으로도 충분히 적용하고 활용할 수 있다.
선언문을 보면 알겠지만 정말 사람 냄새가 나는 실용적인 방법론이라는 것을 느낄 수 있다. 또한 권위와 위계를 앞세워서 자격증을 만들고 잘잘못을 따져가며 일을 진행하는 것이 아니라 함께 더 잘해보자는 마음으로 만들어진 것이라는 점이 감동적이기까지 하다.
애자일 방법론은 소프트웨어 개발 방법에 있어서 아무런 계획이 없는 개발 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 하는 방법론이다. 계획이 없는 방법론의 경우, 앞으로의 일을 예측하기 힘들고 효율적이지 못하다는 점에서 취약점을 가지고 있으며, 계획에 너무 의존하는 경우는 그 형식적인 절차를 따르는데 필요한 시간과 비용을 무시할 수 없으며, 전체적인 개발의 흐름 자체를 느리게 하는 단점을 가지고 있다. - 위키백과
선언문 아래 보면 61년생 Kent Beck아저씨부터 17명이 서명한 것을 볼 수 있는데, 소프트웨어 바닥에서 고인물들의 경험을 고스란히 녹여내서, 이렇게 하는 게 낫겠다는 공통 의견에 도달한 내용이라고 보면 된다. 더 높은 가치를 둔다는 오른쪽에 것들만을 모아보면, 개인과 상호작용을 통해 작동하는 소프트웨어로 고객과 협력하며 변화에 대응하는 개발 방법론이라는 것을 알 수 있다.
애자일은 '민첩한', '기민한'이라는 뜻의 단어이며, 애자일 프로세스 이전에 위에서부터 차근차근 단계별로 프로세스를 진행하는 폭포수 모델에 반해 작은 단계를 여러 번에 걸쳐서 진행하는 개발 방법론이다.
책으로 치면 어떤 내용이 들어가면 좋을지 1달 정도 기획서를 작성하고, 6개월 동안 원고를 작성하고, 3개월 정도 퇴고를 통해서 내용을 가다듬는 것이 기존의 폭포수 모델이라고 할 수 있다. 차례차례 순차적으로 다음 단계로 진행되는 것이 폭포와 비슷하기 때문이다.
반면, 에자일 방법론을 사용한다면, 1주일 정도 내용을 생각해 보고, 짧게 1개월 정도 원고를 작성해서 2~3주 정도 퇴고를 통해 내용을 가다듬은 다음 다시 처음부터 기획을 하고 원고를 작성하는 과정을 반복하면서 책을 완성하는 방법이라고 할 수 있다. 처음부터 작은 단위로 일을 나눠서 반복하기 때문에 중간중간 기민하게 상황 대처가 가능한 것이 특징이다.
소프트웨어에서는 애자일 개발 방법론이 이미 대세가 되었다. 그 이유는 지난번 글, '부드러운 제품 소프트웨어'에서 설명한 소프트웨어의 특성과도 깊게 연관되어 있다. 소프트웨어는 애초에 변경이 비교적 자유롭기에, 제품 개발과정에서도 변경 요청을 굉장히 많이 받는다. 그것은 반도체에 들어가는 소프트웨어나 웹 사이트를 구성하고 있는 소프트웨어나 동일하게 겪는 고통이며, 특징이다.
소프트웨어의 사용자나 시스템의 요구사항이 바뀜에 따라 변경이 필요하기도 하고, 미처 생각하지 못했던 문제가 발생하는 경우에도 소프트웨어를 수정해서 문제를 대응하기도 하고, 뒤늦게 기능을 추가하고 싶을 때도 소프트웨어를 수정해서 기능을 추가한다. 부드럽다는 이유로 온갖 요청은 다 받아내야 하는 숙명을 지니고 있는 것이다. 욕받이 아니고 변경 요청 받이 정도랄까?ㅠ
소프트웨어 개발하는 사람들이라면 누구나 가슴속에 한 맺힌 사연 수 십 개씩은 가지고 있다.
'이렇게 해달라더니 원래대로 바꿔달라네요.'
'원래대로 바꿔달라더니 다시 두 개를 섞어 달래요.'
'힘들게 만들었더니 결국 원래대로 출시하게 되었습니다.'
'소비자 반응이 안 좋아서 다시 급하게 새 개를 섞어서 업데이트하기로...'
그렇다. 애초에 소프트웨어는 계획한 대로 만들어지기 어렵다. 일단 소프트웨어 자체가 개념적인 제품이기에 생각한 것이 최종 제품이 되는 경우는 매우 드물다. 그리고 앞서 말한 대로 소프트웨어의 특성상 주변 환경의 변화를 모두 끌어안고 책임져야 하는 경우가 많기 때문이다. 그렇기 때문에 최대한 시행착오를 줄이기 위해 애자일 프로세스는 짧은 주기를 반복하면서 기민하게 변경 상황에 대응하는 것이다.
폭포수 방법론과 애자일 방법론, 둘은 장단점을 나눠가지고 있지만 주어진 환경과 최종 목표가 불분명할 때 애자일 방법론이 좀 더 유연하게 대응할 수 있는 것은 분명하고, 그렇기 때문에 소프트웨어 개발 방법론으로는 당연하듯 애자일이 널리 사용되고 있다. 당근 애자일!
두 방법의 비교는 마치 MBTI J와 P의 차이와 흡사한 경향도 있어서, 사람마다 선호하는 방법론이 다른 경우도 있다. 꼼꼼하게 계획하는 것은 선호하는 사람들은 무턱대고 일단 동작하는 코드를 만들고 보자는 극단적 애자일 옹호자와 마찰을 겪기도 한다. 뭔가 체계적인 마스터플랜이 없으면 마음이 불안해서 일이 잘 안 된다는 동료도 있었는데, 애자일 별로 안 좋아했다.
하지만 애자일이 아무런 계획 없이 일단 저지르고 보는 것이 아니고, 문서 작업도 하나도 안 하는 것도 아니고, 아무런 계약 없이 업무가 진행되는 것은 더더욱 아니다. 선언문에도 나와있듯이 왼쪽에 있는 것들도 가치가 있지만, 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것을 잊지 않았으면 좋겠다. 기존처럼 설계도 하고, 계획도 세우고 문서 작업도 한다.
균형이 잘 맞춰진 애자일 방법론은 소프트웨어뿐만 아니라 다양한 산업에서 환영받고 있다. 마케팅, 광고, 건설, 교육, 금융 등 다양한 분야에서 적극적으로 사용되고 있는데, 최근에는 제조 분야에서도 제조 혁신을 위해서 애자일이 사용된다고 한다. 대충 검색해 보니, 이마트를 운영하고 있는 대표 유통기업 신세계에서도, LG 계열 종합광고회사 HS애드에서도, 반도체 제조기업 하이닉스에서도 애자일을 사용한다는 기사가 줄줄 나온다.
애자일이 이토록 다양한 분야에서 환영받고 있는 이유는, 산업 구조와 기술 그리고 트렌드의 변화 속도가 빨라졌기 때문이다. 애자일 방법론이 주창되었을 때, 소프트웨어는 애초부터 변화에 대응이 필요했기에 애자일을 만들었지만, 다른 산업은 사실 안정적이고, 계획적으로 정해진 프로세스에 따라 업무가 진행되는 것이 더 적절했을지 모른다. 하지만 이제는 모든 것의 변화 속도가 빨라진 상황이라 기존의 프로세스를 혁신해서 빠르게 대처해야 하는 환경이 된 것이다.
단편적으로, 광고를 하나 만들어서 공개하고 후속 광고가 나가는데 필요한 시간이 얼마나 짧아졌는지 생각해 보면 이해가 빠를 것이다. '완전 럭키비키잖아!' 라는 유행어가 회자되고 광고에서 사용되고 사라지는 데 걸리는 시간과 예전에 광고 회사에서 카피를 만들고 광고를 만들어 공개했던 시간을 비교해 보면 좋을 것 같다. 모든 게 단편적이고 짧게만 진행된다는 뜻이 아니라, 급변하는 환경에 빠르게 반영할 수 있는 프로세스를 갖추고 있어야 한다는 것이다.
애자일은 개인적으로도 응용하기 좋다. 한 해 계획을 너무 꼼꼼하고 딱딱하게 세우는 것이 아니라 단계적으로 변경시켜 나가는 방식이다. 어차피 상황에 따라 변경될 것이 뻔하니까 콘크리트 같은 계획 세워놓고 가슴앓이 하는 것보다 근본이 되는 큰 목표를 세워두고 작은 목표를 세우고 중간중간 상황에 맞게 작은 목표와 시행 방법을 조금씩 바꾸는 것이다. 내비게이션 길 안내가 중간에 바뀌는 것과 비슷하다. 막상 쉽게 생각하면 별거 없다고 느낄 수도 있는데, 중요한 것은 지속적으로 상황을 파악하고 유연하게 변경할 수 있는 방법을 갖추고 있는 것이다.
때마침 시스템에 개인 연간 목표를 입력하는 기간이 되었다. 목표 수립 이야기가 나왔으니, 다음에는 애자일과 찰떡궁합을 자랑하는 목표설정 방식 OKR에 대해서 이야기해야겠다.
급변하는 환경에 빠르게 대응할 수 있는 프로세스라니 어느 관리자가 싫어하겠는가. 다들 적용하고 싶고, 팀원들에게 해보라고 하고 싶겠지만 개발팀이나 디자인팀에 국한해서 적용할 수 있는 것이 아니라 전체 프로세스를 모두 바꿔야 하기 때문에 기존 프로세스를 가지고 있던 큰 조직에 적용하는 것은 쉽지 않을 수도 있고, 무엇보다 빠르게 대응하려면 전체가 함께 빠르게 움직여야 하기 때문에 팀워크가 중요하다.
업종과 무관하게 민첩하게 조직을 운영해서 빠르게 시장 반응을 살펴보기 원하는 조직이라면 꼭 한 번 고려해 볼 것을 추천한다. 앞에서 소개한 대로 개인적으로 활용해 보는 것도 권장하고, 공무원이나 교직에서도 새로운 프로젝트나 시범 운영과 같은 업무에 적용해 보는 것도 좋을 것 같다.
글을 쓰면서 일반적인 관점에서 애자일을 생각해 보니, 어떻게 보면 애자일은 상대방 말을 잘 들어주고, 공감해 주고, 변덕스러운 요청도 너그러이 받아줄 수 있는 그런 방법론이라는 생각이 들기도 한다. 짧은 글에 애자일을 다 설명할 수는 없고, 한 번쯤 검색해 보고픈 호기심을 만들었다면 그것으로 성공이다.
Agile vs. Waterfall: Which Development Methodology Works Best for Game Design?
[박창현 담당의 리테일 테크] 마트에서 애자일 해보기 – 애자일이 뭔데?
애자일 조직·데이터 전문가…HS애드 `디지털DNA` 심는다
SK하이닉스와 애자일(Agile)의 만남, 일방혁이 일방혁을 이끈다.