애자일(Agile) 개발 프로세스애자일(Agile) 개발 프로세스
Posted at 2012. 8. 13. 19:16 | Posted in Study/SW Quality수년전부터 많이 들어봤던 용어이다.
하지만 실제적으로 큰 조직에서는 Agile 방법론으로 개발을 진행하진 못하였다.
자세한 사항은 아래의 출처를 통해서 가져왔음을 밝힌다.
출처 : http://blog.daum.net/dbdb/478
--------------------------------------------------------------------------
작년부터 심심치 않게 애자일(Agile) 개발 프로세스에 대한 이야기를 듣고 있는데요.
애자일(Agile) 개발 프로세스에 대해 궁금 하신 분들과 회사내에 적용을 검토 중인 분들을 위해 간단하게 소개해 보겠습니다.
그림출처 : http://dude_boon.blog.me/40135472617
애자일 개발 프로세스의 탄생 배경은 사용자의 요구사항이 지속적으로 변경되는 현실에서 요구분석설계 단계에서 모든 요구사항을 완벽하게 구현하려는 전통적 개발 방식인 폭포수 개발 방식의 단점을 보완 할 수 있다는 장점 때문에 등장하게 되었습니다. 1990년대 중반부터 활성화 되었고 최근 들어 급속한 기술 변화 및 비즈니스 환경 변화에 따라 단기 프로젝트가 많아지면서 그 관심이 점차 높아지고 있습니다. 기본적으로 애자일 개발 프로세스는 사용자, 개발자, 테스터가 하나의 조로 이뤄 단기적으로 한정된 시간 안에 전체 프로젝트를 수행하는 방식으로 예전에는 단기간에 이뤄지는 소규모 프로젝트에 적용 되었지만, 최근에는 적용 범위가 점차적으로 늘어나고 있는 추세입니다.
‣ 애자일 개발 프로세스란 ? 애자일 개발 프로세스는 어느 특정 개발 방법론을 가리키는 말은 아니고 "애자일(Agile=기민한, 좋은것을 빠르고 낭비없게 만드는 것) 개발을 가능하게 해 주는 다양한 방법론 전체를 일컫는 말이다. 예전에는 애자일 개발 프로세스는 "경량(Lightweight)" 프로세스로 불렸다. 익스트림 프로그래밍 (XP:eXtreme Programming)이 애자일 개발 프로세스의 대표적인 방법이라 볼 수 있다. (출처 : 위키백과) ‣ 애자일 개발 프로세스와 전통적인 개발 프로세스와의 차이 <그림출처 : 디지털타임스 2010-05-17 [알아봅시다] 애자일 개발 방식 > 전통적인 개발 프로세스들은 폭포수 모델과 계획 기반 개발을 따르는 반면, 애자일 개발 프로세스는 그에 반한다는 점에서 가장 큰 차이를 가진다. 폭포수 모델과 계획 기반 개발 기법들은, 일련의 차례와 탄탄한 계획을 기반으로 하여 개발을 진행시킨다. 이것은, 이해하기도 쉽고 사용하기도 쉬운 바람직한 기법이기도 하지만, 이로 인해서 많은 부작용이 생길 수 있다. 가장 큰 부작용이 발생할 때는, 계획대로 진행되지 않을 경우이다. 이럴 경우에는 다음과 같은 부작용이 발생하게 된다.
‧ 납기일 전 철야 ‧ 철야에도 불구하고 납기일 지연 ‧ 지연에 따른 비난과 스트레스가 개발자에게 향하여 에너지 소진 ‧ 결국 납품된 솔루션은 고객의 요구를 충족하지 못함 이런 부작용은 근본적인 개발 프로세스 접근법의 차이에서 나타난다. 전통적인 개발 프로세스들은 공업에서 사용하는 정형적 프로세스 제어 모델을 따르고 있다. 정형적 프로세스 제어모델은, 동일한 입력에 대해서 동일한 결과가 기대 될 경우에 적합하다. 하지만, 소프트웨어를 포함한 IT의 개발은 경험적 프로세스 제어 모델로 접근할 필요가 있다. 경험적 프로세스 제어 모델은 항상 불확실성을 수반하고 포용하고 있다. 애자일 개발 프로세스는 경험적 프로세스 제어모델로 개발을 관리한다. (출처 : 위키백과) <표 출처: IT인의 공통관심사 공유 카페(네이버)> ‣ 애자일 개발 프로세스로 불리는 개발 방법론 종류 1. 익스트림 프로그래밍(Extreme Programing, XP) - 애자일 개발 프로세스의 대표자로 애자일 개발 프로세스의 보급에 큰 역할을 하였다. 이 방법은 고객과 함께 2주 정도의 반복개발을 하고, 테스트와 우선 개발을 특징으로 하는 명시적인 기술과 방법을 가지고 있다. 2. 스크럼 - 30일마다 동작 가능한 제품을 제공하는 스플린트를 중심으로 하고 있다. 매일 정해진 시간에 정해진 장소에서 짧은시간의 개발을 하는 팀을 위한, 프로젝트 관리 중심의 방법론이다. 3. 크리스털 패밀리 - 이 방식은 프로젝트의 규모와 영향의 크기에 따라서 여러종류의 방법론을 제공한다. 그중에서 가장 소규모 팀에 적용하는 크리스털 클리어는 익스트림 프로그래밍 만큼 엄격하지도 않고 효율도 높지 않지만, 프로젝트에 적용하기 쉬운 방법론이다. 4. Feature-Driven Development - feature마다 2주정도의 반복 개발을 실시한다. Peter Coad가 제창하는 방법론으로써, UML을 이용한 설계 기법과도 밀접한 관련을 가진다. 5. Adaptive Software Development, ASD - 소프트웨어 개발을 혼란 자체로 규정하고, 혼란을 대전제로 그에 적응할 수 있는 소프트웨어 방법을 제시하기 위해 만들어진 방법론이다. 내용적으로는 다른 방법론들과 유사하지만, 합동 애플리케이션 개발(Joint Application Development, 사용자나 고객이 설계에 참가하는 개발 방법론)을 사용하고 있는것이 조금 다르다. 6. 익스트림 모델링 - 익스트림 모델링은 UML을 이용한 모델링 중심 방법론이다. 다만, 여타 모델링 방법들과는 달리, 언제나 실행할 수 있고 검증할 수 있는 모델을 작성하는 공정을 반복해서, 최종적으로는 모델로부터 자동적으로 제품을 생성하게 한다.(출처 : 위키백과) ‣ 대형 IT서비스 3사의 애자일 개발방식 적용 사례 및 특징 <표 출처 : 디지털타임즈 2010-10-19 'IT프로젝트 애자일 개발방식 확산'> 최근 들어서는 애자일 개발 프로세스의 생산성 증대효과, 품질향상, 고객만족 등의 효용성이 입증되면서 최근 PMP(Project Management Professional) 자격증을 주관하는 美 PMI(Project Management Institute)에서 Agile 자격증인 PMI-ACP(Agile Certified Practitioner) 자격증도 새롭게 도입 하면서 신규 자격증에 대한 관심 또한 높아지고 있습니다. 관심 있으신 분들은 신청해 보신다면 좋은 기회를 만드는 도전이 되지 않을까요?^^ “프로젝트 매니저는 전반적인 직무 능력의 일환으로 애자일 기술을 보유해야 합니다. 애자일 기술이 모든 프로젝트에 적용되지는 않지만, 변경이 일상화된 환경에서 프로젝트 성과를 효율적으로 내기 위해 필수적인 방법이 되었습니다.” “이 자격증은 애자일 방식의 도입을 망설였던 기업에 애자일 사용을 합리화시키는데 도움이 될 것입니다.” - PMI 애자일 커뮤니티의 자문위원회인 리딩애자일(LeadingAgile)의 코치이자 애자일 자격증 운영위원회의 회원인 마이크 캇메이어(Mike Cottmeyer, PMP)- PMI Agile Certified Practitioner (PMI-ACP) 자세히 보기 http://www.pmi.org/Home/Certification/New-PMI-Agile-Certification.aspx 인적자원개발실 선임연구원 장상진(jsj@kdb.or.kr)