Agile과 Discipline by 황순삼

한국SW기술진흥협회장과 카이스트 교수이신 이단형 교수님께서 『소프트웨어기술 글로벌 전략포럼』SSPL그룹 토론에서 요구사항이 불명확한 SW 개발에서 애자일 적용에 대하여  답변을 주신 내용입니다.

"Agile은 잘 쓰면 좋지만 잘못 적용하면 위험스럽다는 것이 개인적인 의견입니다. 요구사항이 불확실한 이유는 잘 몰라서일 수도 개발 환경이 변하고 있어 정할 수 없는 상태이기 때문일 수도 있겠지만, 타 분야 (예: 항공, 기계, 토목, 등)의 경우에서 보면 엔지니어링이 애자일한 경우는 희박하다고 봅니다. 엔지니어링에는 (심지어 운동선수도) disciplined된 바탕이 필요합니다. Agile을 하려면 CMMI Level 4, 5수준의 조직은 해도 좋지만 그렇지 않은 조직에서 Agile을 임의 적용하는 것은 위험부담이 큽니다. Discipline 을 일정 수준 갖춘 후에 Agile 을 활용하는 것이 필요하다고 판단되며, Agile도 진화해 나가므로 Agile과 discipline을 어떻게 조합해 나갈 것인가에 대한 연구(예, Berry Boem)도 지켜봐야겠습니다."

유연하고 민첩한 애자일은 훈련과 경험이 충분하게 갖춰진 경우에만 적용할 수 있다는 답변입니다. 예들 들자면, 무술에서도 철저한 규칙과 연습을 통해 고수가 된 이후에나 유연하고 자유로운 훈련이 가능하다는 것이지요. Boehm도 "Balancing Agility and Discipline: A Guide for the Perplexed"를 통하여 인력의 성숙도 수준이 낮은 경우 애자일이 부적합다는 것을 제시한 봐 있습니다. [ Boehm은 제 블로그의 "무거운 프로세스와 가벼운 프로세스"를 참조하세요.] 

애자일을 원칙이 부족하고, 공학적적이지 못하다는 점에  다른 생각을 가지고 있습니다만 
깊게 다루지는 않으려고 합니다. 스크럼을 만든 Schwaber는 소프트웨어 개발은 정형적 프로세스(동일한 입력이 동일한 결과를 생성)를 따를 수 없고 불확실성으로 인하여 경험적 프로세스를 따라야 한다고 제시하였습니다. 즉, 소프트웨어 개발 과정은 현실적으로 복확실성과 잡음이 많아 예측과 정형화된 순서에 따라 개발하기 보다는 해보면서 자주 고쳐나가는 것이 적합하다는 것이죠. 이에 따르면 애자일을 적용하면 프로젝트가 막판에 가서 뒤집히는 위험은 줄어들고 문제에 유연하고 민첩하게 대응하여 프로젝트 목표에 효율적인 접근이 가능해 집니다.  


애자일이 경험적 프로세스를 따르기 때문에 체계적이지 못하고 그냥 가볍고 쉬운 개발 방법으로 인식되는 경우도 종종 보게 됩니다. 그러나 주변에서 애자일을 잘 적용하는 경우를 찾아보기는 쉽지 않습니다. 애자일이 좋다고 하니 프로세스를 무작정 따라 해보면서 개발을 탄탄하게 만들어 주는 프랙티스에는 관심이 없는 경우도 있고, 한번 적용해보고 결과나 반응이 획기적이지 못하니 별다른 것 없다고 치부해 버리기도 합니다. 애자일을 적용하고 팀내 분위기가 변한 것이 없다면 애자일이 잘못 적용된 것입니다.

애자일을 잘 수행하는 프로젝트라면, 참여자에게 개발 과정이 투명해지고 일정 예측이 쉬워지고 코드에 결함이 줄어 언제든지 릴리즈할 수 있는 제품이 준비되어야 합니다. 이는 CMMI과 같은 개선 모델에서도 추구하는 목표이기도 합니다. 애자일과 CMMI는 모델도, 적용 대상도, 접근 방법도 다르지만 추구하는 목표에 동일한 점이 있습니다. 애자일에서도 품질을 높은 소프트웨어를 개발하기 위해서는 수준 높은 소프트웨어 공학 지식이 요구됩니다. 소프트웨어 공학적 지식뿐만 아니라 효과적인 협업을 위한 사회과학 및 경영학적 지식까지도 필요하기 때문에 애자일은 참 어려운 방법인지도 모르겠습니다. 그렇다고 겁을 먹을 필요는 없을 것 같습니다. 애자일은 개발 방법이면서도 지속적 학습을 통하여 성장하는 배움의 과정이기도 하니까요.


덧글

  • loopiou 2015/01/26 19:00 # 삭제 답글

    유연하고 민첩한 애자일은 훈련과 경험이 충분하게 갖춰진 경우에만 적용할 수 있다는 답변입니다. 예들 들자면, 무술에서도 철저한 규칙과 연습을 통해 고수가 된 이후에나 유연하고 자유로운 훈련이 가능하다는.
    coursework help
    http://www.courseworkhelp.org/
댓글 입력 영역