Karen
15k
2016-02-18 13:40:10
3
5019

정개발의 "no more agile" - 6. 애자일 개발의 불편한 진실



정개발의 "no more agile"

애자일 개발의 불편한 진실




  요즘 들어 신문 1면을 자주 차지하는 각종 보안 관련 문제들의 원인 중 상당 부분이, 하청 중심의 소프트웨어 제작 관행에 있다는 것이 밝혀짐에 따라, 많은 기업들이 사내 개발을 검토/강화 하는 추세이다. 외주 개발을 사내 개발로 전환하는 데 있어서 큰 어려움 중 한 가지는 개발 프로세스를 확립하는 것인데, 개발 프로세스는 구성원들의 성향에 기반한 기업 문화와 밀접한 관련이 있다. 때문에 아무리 좋은 옷이라도 몸에 맞지 않으면 소용이 없는 것처럼, 사내 구성원들간의 이해 관계문화적인 배경 등을 제대로 고려하지 않는다면 제대로 뿌리 내리기 힘들다.


  개발 프로세스 도입에 대한 컨설팅을 하다 보면 많은 고객들이 애자일 개발에 대해 관심을 가지고 문의를 해 오는데, 잘못된 관점으로 애자일 개발을 인식하고 있는 경우가 많다. 이는 각자의 위치에서 편한 쪽으로 애자일 개발을 해석하려는 경향이 있기 때문이다.



  동일한 대상이라도 바라보는 관점에 따라 여러가지 오해를 낳는다



  오늘은 애자일 개발에 대한 올바른 접근방식을 이해하기 위해 애자일 도입 시에 흔히 볼 수 있는 오해들에 대해 살펴보고자 한다.




애자일 개발은 쉽다

  애자일 개발을 실패로 이끄는 가장 흔하면서 심각한 오해이다. 애자일 개발은 고도의 소프트웨어 공학에 대한 지식을 기반으로 하는 개발 방법론이다. 필자의 경험상 애자일 개발을 제대로 소화해내기 위해서는, 반복형 개발의 요소들을 완전히 마스터 해야만 한다. 프로세스 자체는 간단해 보이지만, 요건 정의, 모델링, 설계 ,구현, 테스트의 모든 과정에서 상당히 높은 수준의 소프트웨어 공학 지식이 종합적으로 요구된다.


  컨설팅을 진행하면서 흔히 보는 풍경은, 의욕 가득한 젊은 개발자와 매니저가 책 몇 권을 읽고 애자일 팀을 꾸려나가다 좌절하는 것이다. 애자일 개발은 절대 쉽지 않다. 애자일 개발팀에는 고도의 모델링에 대한 지식을 기반으로 자동화 테스트, 이슈트랙킹, 지속적 통합, 형상관리와 같은 최신 개발 환경의 효율적인 운용이 필수로 요구된다.


  처음 도입하는 팀에서 이러한 부분들을 모두 자체적으로 해결하기는 쉽지 않으므로, 전문가의 컨설팅을 받거나 최소한 경험자를 정기적으로 초빙함으로서 시행 착오를 최소화 해야 한다.



(출처)


애자일 개발은 상향식이다

  애자일 개발 도입에 대한 컨설팅을 진행하다보면, 2~3년차의 개발자가 중심이 되어 애자일 개발팀을 꾸려 나가는 경우를 흔히 본다. 2~3년차라면 사실상 이제 막 초보 개발자를 졸업하는 시기로, 아직 개발 역량 뿐만 아니라 정치적 역량도 부족하다. 애자일 개발을 원활히 진행하기 위해서는 프로젝트를 둘러싼 여러 이해관계자와의 긴밀한 의견 조정이 필수인데, 이 부분은 윗선의 지원이 없이는 사실상 불가능하다.


  애자일 개발도입의 성공을 위해서는 일선 개발자들의 주도적이고 자발적 참여 만큼이나 경영진으로부터 시작되는 하향식 서포트도 중요하며, 도입 또한 대규모 프로젝트의 경우 하향식 도입이 더 효과적인 경우도 많다


  무엇보다 윗선의 이해를 제대로 구하지 못한 상태에서 개발자들 주도로만 진행하게 될 경우, 개발 과정에서 발생하는 크고 작은 문제에 대해서 '거 봐라. 그러길래 하던 대로 하지...' 라는 비아냥과 함께 최악의 경우, 프로젝트 자체가 기존 개발 방식으로 돌아가 버리는 경우도 발생하기 쉽다.



애자일 개발을 도입하면 일의 양이 적어진다

  어떤 이는 불필요한 문서화 작업을 줄일 수 있어 작업량이 줄어든다고, 애자일 개발에 대해 설명한다. 하지만 애자일 개발의 도입한다고 해서 일의 양이 적어지진 않는다. 오히려 반복형 개발의 경우, 폭포수형 개발에 비해 이터레이션 내에서 설계, 구현, 테스트, 배포가 매번 실행되야 하기 때문에 일의 양이 엄청나게 많아진다. 그렇기 때문에 테스트, 빌드, 배포와 같은 기계적인 작업을 자동화하여, 최대한 사람의 일을 줄이지 않으면 안되는 것이다. 바꿔 말하자면, 이러한 자동화 툴의 도움 없이 진행하는 애자일 개발은 반드시 실패하게 될 것이다.



애자일 개발은 프로젝트 성공률을 올려준다

  여러 조사에 의하면 애자일 개발이 성공률을 획기적으로 올려주지는 않는다. 대신 만들어지는 소프트웨어의 가치를 높여준다. 애자일 개발과 같은 반복형 개발이 지니는 가장 큰 장점은 기간이나 예산면에서 실패를 하더라도, 핵심 요구조건조차 전혀 움직이지 않는 최악의 상황은 면할 수 있다는 점이다. 따라서 애자일 개발의 장점을 부각시키고자 한다면, 성공률을 올려준다기보다는 실패할 확률을 줄여줄 수 있다고 설명하는 것이 더 적절할 것이다.



애자일 개발에는 계획이 필요 없다

  폭포수형 개발과 비교해 계획의 형식이 달라질 뿐, 계획 자체는 애자일 개발이라 하더라도 반드시 필요하다. 프로젝트 실행의 기본 사이클인 PDCA(Plan, Do, Check, Action)는 애자일에서도 유효하며, 특히나 추정과 결과에 대한 피드백은 정확하고 빠르게 이루어져야 한다.





애자일 개발은 고객의 부담을 덜어준다

  고객의 적극적 참여는 애자일 개발의 핵심 요소이다. 애자일 개발에서는 고객이 원하는 가치를 만들어내기 위해, 보다 많은 고객의 참여를 필요로 한다. 비단 애자일 개발 뿐만 아니라, 고객의 참여가 없는 모든 개발은 등대 없이 밤바다를 항해하는 것과 같아서 절대 목적지에 다다를 수 없을 것이다.



애자일 개발은 개발기간을 단축시켜준다

  애자일 개발은 이터레이션을 통해 빠른 피드백을 가능하게 해 주지만, 전체 개발 기간이라는 면에서는 기존의 폭포수형 개발에 비해 절대 빠르다 할 수 없다. 오히려 현실적인 추정이 가능해지기 때문에 예상 개발 기간은 폭포수형 개발에 비해 늘어나는 경우도 있다. 하지만 이것을 생각해보자. 계획한 기간 내에 끝나는 폭포수형 개발이 과연 얼마나 될까? 게다가 개발 기간이 예상보다 늘어나는 경우, 필연적으로 품질 저하가 따라온다.



애자일 개발은 테스터가 필요 없다

  매 이터레이션마다 테스트가 동반되는 반복형 개발에서, 테스터의 필요성은 폭포수형 개발보다 높을 수 밖에 없다. 이상적인 테스터는 요건을 가장 정확히 이해하고 있는 고객이므로 여기서 또한 고객의 참여가 절실히 필요해지는 부분이다.



애자일 개발에는 설계가 필요 없다

  설계 없이 개발을 하겠다는 것은 지도 없이 세계 일주를 하겠다는 것과 같다. 애자일 선언서의 "포괄적인 문서보다 작동하는 소프트웨어를"이란 문구가 의미하는 것은, 문서 작성 자체가 필요없다는 뜻이 아니라 꼭 필요한 문서만 만들라는 의미이다.


  애자일 개발에서 설계는 두꺼운 서류뭉치가 아닌. 그때 그때 이해 당사자들 간의 커뮤니케이션을 보조해 줄 도구로서의 역할을 해 줄 수 있는 것이면 무엇이든 충분하다.


  애자일 개발이 정착된 팀에서의 문서 작성은, UML모델을 적극적으로 사용하며, 특히 임시 문서의 경우 화이트보드에 그린 내용을 사진 찍는 것으로 대체하는 경우가 많다. 애자일 개발의 설계/문서화에 대한 내용은 "애자일 시대의 모델링:애자일 팀의 확장에 따른 문서화에 대한 조언"을 살펴보기 바란다.




칼럼 출처

http://www.moreagile.net/2014/03/misunderstandsofagiledevelopment.html



♣에디터 : 오늘 칼럼을 보았을 때, 많은 사람들이 애자일은

  • 계획과 테스터, 설계가 필요 없고, 
  • 일의 양이 적고, 쉽고, 개발 기간이 단축되는 데다가
  • 상향식이고 고객의 부담을 덜어주며 프로젝트 성공률까지 올려주는

만능템 (가제트만능팔,절대반지,,인피니티 건틀릿 등등) 같은 것으로 생각하고 있는가 보아요..ㄷㄷ 


8
3
  • 댓글 3

  • 초오찌
    5k
    2016-02-18 17:01:25

    아 왜 추천은 한번밖에 안되는것인가 ㅜㅜ 

    진짜 강춥니다.

    애자일에 대해 오해하는 분들 많이 줄었음하네요

    1
  • 블랙홀
    220
    2016-02-23 10:26:15

    컬럼 잘 보고 있습니다. 애자일을 적용해본지 벌써 4년차가 되어갑니다. 팀원 모두가 목표를 바라보고 같이 달려가는것은 무척이나 어렵고 힘듭니다. 또한 이론적으로 알고는 있지만 실천하기도 힘들구요.

    Karen 님의 컬럼으로 애자일에 대한 오해가 이해로 변화되길 기대해봅니다. 

    1
  • Karen
    15k
    2016-02-23 10:34:41

    블랙홀 // 블랙홀님 안녕하세요^^ 현재 팀원분들과 애자일을 적용중이시라니, 경험담도 많이 나눠주시고 또 이 칼럼이 도움이 되면 좋겠네요~

    저는 에디터로, 정개발님의 블로그에서 허락 받고 글을 가져오고 있답니다. 도움 되실 만한 글이 매우 많으니, 블로그에도 꼭 방문해 보시면 좋겠습니다! 감사합니다. ;)

    (정개발님 블로그 : http://www.moreagile.net)

    0
  • 로그인을 하시면 댓글을 등록할 수 있습니다.