SI프로젝트는 과연 Agile의 적용이 가능한가?
난 항상 그럴 수 있다고 믿어왔다.
소프트웨어 개발은 Iteration을 통한 고객 검수와 지속적인 통합, 점진적 개선을 위한 테크니컬한 접근으로 나아가지 않으면 더이상의 미래가 없다라고 생각했다.
서양의 소프트웨어 개발 방법들이 점차 light weghted 영역으로 이동하고 있듯이
우리도 자연스럽게 그 유행을 따르리라 생각했다.
그동안 Agile의 적용이 어려웠던 이유는 척박한 한국의 IT환경과 IT에 대하여 무지한 고객, IT에 대한 좋지 않은 인식, 상대적으로 낮은 개발자들의 실력이라고 생각했다. 이들이 뒷받침되면, Agile이 보다 잘 적용될 수 있다고 생각하면서 동시에, Agile의 여러 실천 방법을 하면 이들을 이룰 수 있으리라 생각했다. 위, 아래에서 동시에 발전하는 소프트웨어 개발환경의 미래. 그것이 내가 생각하는 Agile 이었다.
더불어 중소기업의 게임 개발자들이 Agile을 적용하면서 이야기한 경험담들은, 단지 내가 있는 곳이 대기업이기때문에 위키노믹스에서 이야기하는 참여와 수용속에 발전할 수 있는 환경이 근본적으로 아니라 생각했다.
하지만, 내가 있는 프로젝트에서 1달 정도 Agile을 적용해보기위한 노력을 수행하면서, SI에는 내가 생각해왔던 배경 말고도 커다란 걸림돌들이 존재한다는 것을 알게되었다.
1. 개발자들이 항상 바뀌는 환경
=> SI프로젝트는 프로젝트별로 협력업체의 사람을 데려오고 개발기간이 끝나면 돌려보낸다. 보통 짧게는 6개월에서 1년 정도 프로젝트를 진행하는 것이 대부분인데, 개발자들은 자연스럽게, 나중보다는 프로젝트에 있는 기간동안만 필요한 Quantity와 Quality를 만들어내는 것에 관심을 갖게 된다. 이는 궁극적으로 미래를 위해 투자하는 Refactoring, TDD등의 적용에 대한 거부반응으로 나타난다.
2. 고객의 계층이 다양함
=> SI프로젝트 중 공공, 금융 프로젝트들의 경우 한 명 또는 두 명의 확실한 의사 결정권자를 지정하기 어렵다. 개발하는 시스템이 큰 만큼 다양한 이해관계자들이 존재한다. 다른 이해관계자가 결정한 사항을 크게 뒤집을 수도 있다.(실제로 많이 일어난다)
3. 실력있는 개발자들을 구하기 어려운 환경
=> 대형 IT업체에 인력을 협력업체에 요청할때 대상 인력의 실력을 검증 할 수 있는 방법은 오로지 스스로 작성한 이력서이다. 안그래도 없는 개발자들에 대해 한 두명 교체를 요청 할 수는 있지만, 실력을 검증할만한 시간적 여유, 여건 따위는 없는 경우가 대부분이다.
위의 이유들로 자연스레 품질위주가 아닌 성과위주의 프로젝트 진행이 이뤄진다.
보다 개선된 프로세스 및 개발 환경을 제공하겠다는 말을 신뢰하고 선뜻 나서는 개발자는 매우 매사에 적극적이지 않고서는 도전 자체를 시도하지 않는다.
이때문에 현재 내가 있는 프로젝트에서 Agile Planning외에 새로운 시도들은 번번히 개발자들의 저항에 막혀 포기하게 된다.
그렇다면, SI에서 Agile의 Advanced한 기술 적용을 가능하게 하려면 무엇이 필요할까?
그것은,
1년 이상의 프로젝트 기간, 프로젝트 초기부터 Agile을 강력하게 주장하는 관리자와, 스스로 발전하고 싶어하고 평소에도 Agile에 관심이 많은 개발자, 그리고 항상 프로젝트에 관심을 갖고 있는 고객이다.
이런 것이 가능은 한 일인가?
난 항상 그럴 수 있다고 믿어왔다.
소프트웨어 개발은 Iteration을 통한 고객 검수와 지속적인 통합, 점진적 개선을 위한 테크니컬한 접근으로 나아가지 않으면 더이상의 미래가 없다라고 생각했다.
서양의 소프트웨어 개발 방법들이 점차 light weghted 영역으로 이동하고 있듯이
우리도 자연스럽게 그 유행을 따르리라 생각했다.
그동안 Agile의 적용이 어려웠던 이유는 척박한 한국의 IT환경과 IT에 대하여 무지한 고객, IT에 대한 좋지 않은 인식, 상대적으로 낮은 개발자들의 실력이라고 생각했다. 이들이 뒷받침되면, Agile이 보다 잘 적용될 수 있다고 생각하면서 동시에, Agile의 여러 실천 방법을 하면 이들을 이룰 수 있으리라 생각했다. 위, 아래에서 동시에 발전하는 소프트웨어 개발환경의 미래. 그것이 내가 생각하는 Agile 이었다.
더불어 중소기업의 게임 개발자들이 Agile을 적용하면서 이야기한 경험담들은, 단지 내가 있는 곳이 대기업이기때문에 위키노믹스에서 이야기하는 참여와 수용속에 발전할 수 있는 환경이 근본적으로 아니라 생각했다.
하지만, 내가 있는 프로젝트에서 1달 정도 Agile을 적용해보기위한 노력을 수행하면서, SI에는 내가 생각해왔던 배경 말고도 커다란 걸림돌들이 존재한다는 것을 알게되었다.
1. 개발자들이 항상 바뀌는 환경
=> SI프로젝트는 프로젝트별로 협력업체의 사람을 데려오고 개발기간이 끝나면 돌려보낸다. 보통 짧게는 6개월에서 1년 정도 프로젝트를 진행하는 것이 대부분인데, 개발자들은 자연스럽게, 나중보다는 프로젝트에 있는 기간동안만 필요한 Quantity와 Quality를 만들어내는 것에 관심을 갖게 된다. 이는 궁극적으로 미래를 위해 투자하는 Refactoring, TDD등의 적용에 대한 거부반응으로 나타난다.
2. 고객의 계층이 다양함
=> SI프로젝트 중 공공, 금융 프로젝트들의 경우 한 명 또는 두 명의 확실한 의사 결정권자를 지정하기 어렵다. 개발하는 시스템이 큰 만큼 다양한 이해관계자들이 존재한다. 다른 이해관계자가 결정한 사항을 크게 뒤집을 수도 있다.(실제로 많이 일어난다)
3. 실력있는 개발자들을 구하기 어려운 환경
=> 대형 IT업체에 인력을 협력업체에 요청할때 대상 인력의 실력을 검증 할 수 있는 방법은 오로지 스스로 작성한 이력서이다. 안그래도 없는 개발자들에 대해 한 두명 교체를 요청 할 수는 있지만, 실력을 검증할만한 시간적 여유, 여건 따위는 없는 경우가 대부분이다.
위의 이유들로 자연스레 품질위주가 아닌 성과위주의 프로젝트 진행이 이뤄진다.
보다 개선된 프로세스 및 개발 환경을 제공하겠다는 말을 신뢰하고 선뜻 나서는 개발자는 매우 매사에 적극적이지 않고서는 도전 자체를 시도하지 않는다.
이때문에 현재 내가 있는 프로젝트에서 Agile Planning외에 새로운 시도들은 번번히 개발자들의 저항에 막혀 포기하게 된다.
그렇다면, SI에서 Agile의 Advanced한 기술 적용을 가능하게 하려면 무엇이 필요할까?
그것은,
1년 이상의 프로젝트 기간, 프로젝트 초기부터 Agile을 강력하게 주장하는 관리자와, 스스로 발전하고 싶어하고 평소에도 Agile에 관심이 많은 개발자, 그리고 항상 프로젝트에 관심을 갖고 있는 고객이다.
이런 것이 가능은 한 일인가?




덧글
정상혁 2008/06/19 10:25 # 답글
뭐.. 난 agile이 뭔지 아직도 잘 모르겠지만.. (이건 애자일이다.. 아니다.. 가릴 수 있는 기준이 있는건가?;)몇가지 드는 생각을 덧붙이면
1. TDD까지도 아니더라도 테스트케이스 작성하는 것은 미래를 위한 투자가 아닌 바로 생산성에 도움이 된다고 생각함. 디버깅할 때 훨씬 편해지니까.. 프로젝트 기간내에서도 충분히 본전이 뽑힌다고 생각하고 있음. (나도 하고 있고, 몇에 팀도 하고 있고..)
2. 애자일은 실력있는 개발자만이 할 수 있는 거라면.. 글쎄.. 실력있는 개발자라면 어떤 방법론이든지 상관없지 않을까? 프로젝트는 어떻게 하느냐보다 누가 하느냐에 달려있다.. (피플웨어에 있는 말이던가..)는 말도 있으니.
암튼 테스트케이스 같은 것은 하고 싶은 사람만 하도록 안내해주면, 한 사람이 얻은 이득이랄까.. 그런게 눈에 보이기 시작하면 퍼질 수도 있을 것 같음.
몽둥발이 2008/06/19 11:30 #
음.. 내가 느낀건 실력있는 개발자가 한다기 보다는, 환경이 실력을 키우고 싶어하는 사람들을 제약하는것 같아. 힘들고 실력이 느는것과 편한것 사이를 저울질 하다 결국 힘든게 너무 크니까 자체를 포기하게 되는게 아닌가 싶어. 실력이 느는 것이 지속적으로 비슷한 프로젝트를 하게되서 도움되는 편이 가장 좋은 것 같은데.. 같은 도메인에 오래 있는 경우도 드물고..아뭏든 좋은 포인트야. 한 사람이 얻는 이득! 나도 그걸 퍼트리고자 해보고 있는데, 이것또한 쉽지 않아. 주변 정치또한 무시할 수 없는 상황인데.. 어젠 굉장히 적극적이고 열심히하는 분에게 부탁했어. 일주일간 당신의 커리어에도 도움될 작업을 같이 해보자라고... 근데, 관리자가 묻더라. 그게 BP가 되는 일이냐고.
갑자기 개선 사항을 적용할 때 얼마나 나아졌는지를 측정하지 않으면, 할 필요가 없는 일이 되어버린거지.
해보고자 했던 일은 일할때 변경될 소스와 테이블 상관도를 자동으로 추출해내는 작업을 해보자고 한건데, 이런 상황에서.. 진행해야 할 지 아닌건지 판단하지 어렵네
아름프로 2008/06/19 13:46 # 삭제 답글
RUP를 현업에 적용시키기에는 사이즈 문제가 발생하였고, 1990년말 Agile의 효시가되는 XP와 Scrum가 선전하였지만, 업계의 문화를 뒤엎기에는 어려움이 있었습니다. 그러한 취지에서 RUP을 덩치를 줄이고 Agile한 개발 환경을 접목시키는 시도의 결과로 등장한 것이 OpenUP와 같은 것들입니다.참고 : http://www.ibm.com/developerworks/rational/library/sep07/kroll/
참고 : http://www.eclipse.org/epf
기존의 Agile 방법론이 원칙론과 변화에만 지나치게 강조되었다면, 최근의 Agile의 추세는 기업 문화의 변화를 강조하면서도 기존 관리자들에게 그 결과를 보여줄 수 있는 다양한 레포팅을 통해 투명성과 가시성, 효율성을 극대화하는 쪽으로 진행중이고, 많은 도구들도 이를 지원하고 있습니다.
제가 일하고 있는 IBM의 경우도 Collaborative ALM라는 개념으로 Agile 을 핵심내용으로 담고 있는 플랫폼인 Jazz와 그 제품으로 RTC라는 것을 내놓기에 이르고 있습니다.
참고 : http://www.jazz.net
참고 : http://www.jazzlab.net
한달전에 미국 올랜도에 행사 방문하여 Scott Ambler를 만나 이야기들 들어보니 북미지역은 70% 수준까지 Agile을 적용하고 있는 단계에 이르렀다고 합니다.
어쨌든,
기존의 Agile이 추상적인 것만을 가지고 고객과 윗분들게 어필해야했다면,
이제는 이를 지원하는 다양한 도구들을 통해서 기업의 개선을 눈에 보일 수 있는 수단과 방법들까지
좀 더 깊이 있게 다가가고 있다는 점입니다. 올해 하반기를 기점으로 내년도에는 SI업게에도 이러한
변화가 눈에 띄에 반영되리라 보여집니다. Agile에 대한 공부와 관심 계속해서 가지셔도 좋을 듯 싶습니다.
건승하세요. ^^
몽둥발이 2008/06/20 12:37 #
좋은 자료, 글 의견 감사합니다. 저도 어떤 개념에 대해originality와 reality는 별개로 생각해야 한다는 말씀에 동의합니다. 책으로 본 내용들을 실제 적용해 볼 때, 책과 같지 않기때문에 괴로워 한다면 reality에 적응하는 판단 기준이 흐려질 수도 있다고 생각합니다. 실망은 했지만, 보다 나은 환경은 끊임없는 노력과 의지에서 올 수 있다고 믿습니다. 좀 더 여러가지를 시도해 볼 생각입니다. 결과가 나오는 대로 업데이트 하겠습니다.
lepffm 2008/06/19 17:15 # 삭제 답글
SI는 다양한 요소들이 인간다운 삶을 어렵게 하는거 같네요.지적한 걸림돌 외에도 고질적인 저가수주, 고객의 프로젝트(PM)에 대한 불신... 뭐 종류도 많죠.
하지만 기계적으로 방법론과 도구에 맹신만 하지 않는다면,
현재 프로젝트 상황에 맞는 작은 개선을 이루어낼수 있지 않을까 싶습니다.
(agile에 몇프로 도달했는지가 중요한게 아니라 프로젝트가 성공하고, 프로젝트에 참여했던 사람들이
더 나아지는 것에 목표를 둔다면 어떨까요?)
그리고 한가지..
발달이론을 믿는다면, 당장 실력이 부족한 사람들이지만 변화할 가능성을 믿어보는게 어떨까 합니다.
몽둥발이 2008/06/20 12:39 #
프로젝트에 그런 기대를 걸고 있던 분이 있습니다. 변화할 가능성에 대해서요. 하지만 프로젝트 기간이 다 되도록 변화할 가능성이 없고 비효율적인 작업 방식이 반복된다면, 포기하는 것도 방법이라고 생각합니다. 어쨌든 우리의 목표는 프로젝트 성공이니까요. 부가적으로, 개발자들의 능력 함양, 즐거운 분위기 등이 온다면 그게 가장 best 겠지만.. 30이 넘어가면서 최선보다 차선이라는 말이 점점 매력적으로 들립니다. ^^;
ParkPD 2008/06/19 18:41 # 삭제 답글
아프리카에서 에이즈가 줄어들지 않는 이유 중의 하나가,어짜피 에이즈 걸려도 40-50 살 정도에나 죽는데,
그 곳의 평균 연령이 그보다 낮아서라고 하더군요.
대신 (평균 수명이 높을 것으로 예상되는) 아프리카 부자들은 에이즈에 각별한 신경을 쓰고요.
SI 에서도 비슷한 일이 벌어지고 있네요. 멋진 통찰입니다.
몽둥발이 2008/06/20 12:41 #
아..!! 정말 여러가지를 생각하게 하는 비유입니다. 정말 그 비유가 제가 느끼는 것과 비슷하다는 것에 비애를 느낍니다. ^^;
박현준 2009/06/21 08:11 # 삭제 답글
몽둥발이님 글을 보고 내가 과연 '스스로 발전하고 싶어하고 평소에도 Agile에 관심이 많은 개발자'인가?다시한번 돌아보고 있습니다.^^;;