오랜 기간 정신없이 준비해오던 대규모의 프로젝트가 IMF시절에 버금 혹은 그 이상 간다는 경기불황 속에서 결국 무한 연기가 되버리고, 졸지에 별로 할 일이 없는 신세가 되어버렸다. 원래 시간이 많이 남아돌면 이런 저런 추억에 잠기기 쉽상인지라 나도 4년전 초기에 썼던 블로그들을 뒤적이게 되었다. 하루 방문자+구독자가 10명도 안되던 시절이었다. 별로 읽는 사람을 의식하지 않아서 그런지 그때 쓴 글은 왠지 내 진심이 잘 드러난 듯 해서 읽으면 괜히 기분이 좋다. 그 중에서 Ron Jeffries의 인터뷰를 보고 난 내 느낌을 적은 "Work hard, be thoughtful about what happens"를 읽고 요즘 내 주변에서 많이 얘기가 오고가는 애자일에 대해서 다시 생각해보게 되었다. 그 글은 물개가 인용한 "Ron Jeffries의 인터뷰" 내용을 읽고 감명을 받아 쓴 것이다.

 

위의 글에 나오는 사람은 Ron Jeffries라고 애자일의 대표주자인 XP(Extreme Programming)의 기원이 되는 세사람(Ron, Kent Beck, Ward Cunningham) 중의 하나이다. 개인적으로 약간 신비로운(신비주의?) Kent나 Ward에 비해서 Ron은 매우 친근감 있다. 이 분이 운영하는 XProgramming.com이라는 사이트가 있다. 한동안 그쪽엔 관심이 뜸해져서 별로 방문하지 않았다가 오늘 오랜만에 다시 찾게 되었다.

 

그리고 그가 최근에 쓴 "Agile: Is, Is Not, May Be"이라는 글을 만났다. 그 글을 읽고 나니 이제는 너무 느슨해지고, 별로 매력도 없게 들리던 애자일이라는 말이 갑자기 다시 새롭게 보이는 느낌이다. 그리고 좀 답답했던 가슴 한쪽이 뻥 뚤리는 시원한 느낌이랄까. 살짝 찔리기도 하고.

 

영회가 어제 KSUG운영팀 미팅이 끝나고 새벽까지 끄적여서 쓴 애자일선언에 관한 글을 아침(아침에 마무리한건지, 전략적인 노출타이밍을 위한 예약 등록인지는 잘 모르겠지만)에 올렸다. 애자일 선언은 사실 그 원리(Principles behind the Agile Manifesto : 번역은 여기서)와 함께 이해되어져야지 그 선언만 가지고는 오해하기 쉽다고 생각된다.

 

Ron Jeffries는 처음 애자일 선언이 만들어지던 때를 회상하면서 그 참가자들이 얼마나 깊이 논의했고(심지어 싸우기도 하면서) , 정말 어떤 것을 말하고자 했는지 극 핵심을 간단히 요약해놨다.

 

    • Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
    • Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
    • Working software is the primary measure of progress.

 

결국 애자일 선언과 그 원칙은 모두 "Working Software"에 관한 것이라는 것이다.

요약하면.

Agile Software Development has as its highest priority the early and continuous production of working software. This is Agile’s primary measure of progress.

 

사람들은 애자일이라는 매력적인 표현을 나름 자신들이 하는 일을 치장하는 buzzword로 만들어버렸다. 이젠 너무 지겹고 듣기도 싫은, 아무데나 써먹는 "Web2.0"처럼 말이다. 물론 그들이 의도하는 것은 영어의 형용사 Agile이라는 단어의 일반적인 뜻이 아니라 바로 그 "Agile Software Development"의 그 Agile일 것이다. 그 유명세의 덕을 좀 보자는 그런 의도일테다. 폼 나니까. 그래서 적당한 변명과 함께 자신들의 상황(context)과 전문분야(specialty)에 적당히 애자일을 버무려 써먹으려고 한다. Ron은 그들의 의도와 생각과 마음을 이해한다고 말한다. 그들이 왜 그러는지 잘 알고 있다.

 

하지만 No라고 말할 수 밖에 없다고.

Sorry, No

When we wrote the manifesto, we really meant what it said. We had argued and fought and reasoned to get those four values and dozen principles settled. In particular, we really meant that to do what we were talking about, you have to deliver software all the time, beginning to end, day in and day out.

 

갑자기 "사실 나는 애자일을 잘 모른다"라는 말은 참 치사하고 옹졸한 변명이라고 생각된다. 그러면서 어물쩍 자기가 입맛대로 느슨하게 정의한 애자일을 슬그머니 끌고 들어오기 때문이다. (그러고 보니 나도 그랬다 -_-; ). 꼼꼼하게 애자일이 뭔지 체크하기는 귀찮고 매력적인 말은 계속 써먹고 싶은 의도가 아닐까. 차라리 좀 치열하게 애자일이란 이런 것이다 하고 싸우는 것이 더 유익할지도 모르겠다.

 

Agile Software Development는 두리뭉실한 이론이 아니다. 기존의 학자들의 책상에서 나온 고리타분하고 쓸모없고 이해하기도 힘든 이론들과 맞서는 가장 현실적이고 명확한 주장이 아닐까라고 생각된다. 애자일을 잘 모르겠다면 지금 부터라도 그 선언과 원칙을 잘 읽고 무엇을 그들이 의도했는지 이해해보려고 노력해할 것이다.

Let’s not water down the meaning of a nice crisp idea like Agile Software Development.

 

애자일과 관련된 좋은 책과 많은 문서들이 인터넷에 널려있다. 적어도 저 선언에 참여한 사람들이 소개하는 Agile이란 무엇인가에 대해서 찾아보는 것이 좋은 시작이라고 본다. 내가 최근에 발견한 이해하기 쉬운 좋은 소개로는 애자일 선언에 참여한 Robert C. Martin이 운영하는 ObjectMentor의 애자일 소개글이 있다. Agile과 XP의 비교글도 깔끔하게 잘 정리되어있다.

 

애자일의 홍수 속에서 Ron의 이 주장은 한편으로는 매우 고지식하고 깐깐한 원리주의자로 보일수도 있지만, 그보다는 애자일의 기준을 바로 잡아주고 그 가치를 제대로 살려나가게 해주는 좋은 계기가 될 것이라고 생각된다.

 

Working Software라… 흠. 잊지 말아야겠다.

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha