애자일 방법론의 동향 및 ESA 지상국 소프트웨어 개발 분야의 도입사례 분석 An Analysis of Agile Methodologies' Trends and Introduction cases of the Methodologies at the ESA Ground Segment Software Development원문보기
애자일(Agile)은 논증 가능한 구체적인 목표(사람, 협조, 반응성, 작동하는 소프트웨어)를 위해서 창시된 소프트웨어 개발 방법론으로, 소프트웨어 엔지니어링뿐만 아니라 여러 전문 분야에 적용되고 있다. ESA (European Space Agency)의 경우 애자일의 대표적인 방법인 스크럼 (Scrum)을 중심으로 지상국 분야의 소프트웨어 개발에 애자일을 적용하였다. 본 논문에서는 애자일 기술의 동향을 살펴보고, 이를 도입한 ESA 지상국 소프트웨어 개발의 최근 사례를 분석한다.
애자일(Agile)은 논증 가능한 구체적인 목표(사람, 협조, 반응성, 작동하는 소프트웨어)를 위해서 창시된 소프트웨어 개발 방법론으로, 소프트웨어 엔지니어링뿐만 아니라 여러 전문 분야에 적용되고 있다. ESA (European Space Agency)의 경우 애자일의 대표적인 방법인 스크럼 (Scrum)을 중심으로 지상국 분야의 소프트웨어 개발에 애자일을 적용하였다. 본 논문에서는 애자일 기술의 동향을 살펴보고, 이를 도입한 ESA 지상국 소프트웨어 개발의 최근 사례를 분석한다.
Agile is a software development methodology which was established for four objectives; people, collaboration, responsiveness, and working software. Thus the Agile methodologies have been applied not only software development fields but also various special areas of technology. ESA (European Space Ag...
Agile is a software development methodology which was established for four objectives; people, collaboration, responsiveness, and working software. Thus the Agile methodologies have been applied not only software development fields but also various special areas of technology. ESA (European Space Agency) adopt several Agile methodologies, including Scrum as the key technique, for the software development of ground segment. This article analyzes trends of Agile methodologies and introduction cases of the methodologies for ESA's ground segment software development.
Agile is a software development methodology which was established for four objectives; people, collaboration, responsiveness, and working software. Thus the Agile methodologies have been applied not only software development fields but also various special areas of technology. ESA (European Space Agency) adopt several Agile methodologies, including Scrum as the key technique, for the software development of ground segment. This article analyzes trends of Agile methodologies and introduction cases of the methodologies for ESA's ground segment software development.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 기존 소프트웨어 개발 모델 및 현재 널리 사용되는 애자일 모델의 동향에 대해서 설명한 다음, ESA의 지상국 개발에 스크럼을 도입한 사례에 대한 분석 결과를 정리하였다. 기능과 복잡도가 증가하는 소프트웨어 개발에서 소프트웨어 개발 모델의 도입은, 코딩부터 시작하던 시기'에 비해서 많은 발전이 있었으나, 프로세스가 많아짐으로써 부차적인 문제를 초래하였다.
본 절에서는 ESOC에서 기존의 폭포수 모델에 애자일 모델을 적용함으로써 습득하였던 교훈에 대해서 정리한다.
문제 유발의 원인이 소프트웨어 제작일 수도 있지만, 불완전한 요구사항과 개발자와 사용자의 의사소통의 부재로 인하여 발생하는 경우가 많으며 이 문제에 대한 해결은 더욱 어렵다. 이러한 폭포수 모델의 단점은 다음의 두 모델 (반복 모델, 사시미 모델)에서 개선하고자 노력 하였다.
가설 설정
무엇을 할 계획이며, 3) 무엇이 작업을 방해하고 있는가.
제안 방법
그리고 스크럼의 스프린트 회의와 유사하게 한 주 단위로 소프트웨어 변경 요청서 (Software Change Request, SCR) 및 변경 결과에 대한 보고서 (Software Problem Report, SPR)를 검토하는 회의를 수행하였다. 결과적으로 의사소통과 가시성이 증대되었으며, 일정 내에 요구사항을 모두 만족시키는 소프트웨어 개발을 완료하였다.
첫 번째 단계에서는 사용자 요구사항을 추가로 수집하고 이에 따라 소프트웨어 구조 및 인터페이스 설계, 기능 검증에 집중하였다. 두 번째 단계에서는 본격적인 구현 및 검증을 수행하였다. 본 개발은 엄밀하게 애자일 모델을 적용한 것은 아니지만 애자일 모델의 주요 가치를 달성하기 위한 노력으로 개발 기간 내에 90% 요구사항을 달성하였으며, 높은 사용자 만족도를 얻을 수 있었다.
계속 발전하고 있다. 따라서 본 장에서는 소프트웨어 개발 모델의 근본이 되는 폭포수 모델에 대해서 설명하고, 이에 근간하여 발전한 두 가지 모델 (변형된 폭포수 모델, 애자일 모델) 에 대해서 정리한다.
애자일 모델을 도입하였다. 매 주 회의를 수행하고, 개발환경에 웹으로 접속하는 방법을 도입하였으며, (요구사항 수립 후 구현/검증을 수행하는 방식이 아닌) 점진적인 개발방법을 채택하였다. 계약의 형태는 FFP를 근간으로 하였으나 소프트웨어 개발을 총 2개의 단계로 구분하였다.
조합이 24%를 차지하고 있었다. 본 장에서는 대표적인 애자일 모델인 스크럼과 익스트림 프로그래밍에 대해서 설명하고, 스크럼과 익스트림 프로그래밍을 결합한 애자일 엔터프라이즈를 간단히 소개한다.
스크럼은 작업기술서 (Statement of Work, SoW)의 상세화를 위한 도구로 사용하기 시작하였다. 스크럼 도입은 소프트웨어 요구사항 및 상세설계 결과에서 제품 백로그를 생성하고, 4주 간격 (팀개편으로 인해서 2주로 간격이 변경된 적도 있었음)의 8개 스프린트를 구성하여 스크럼 마스터에 의해 수행되었다. 상세한 요구사항으로 부터 제품 백로그 생성 및 업데이트를 수행하였으며, 회의 수행 (스프린트 회의, 일일 스크럼 회의), 스프린트 별 업무할당, 제품 백로그 관리 등에 어려움이 있었으나 이를 극복하고 성공적으로 소프트웨어 개발을 완료하였다.
왜냐하면 스크럼에서는 소프트웨어 개발이 예상하기 힘들다는 것 (사용자 요구사항 및 소프트웨어 요구사항을 변경하는 것)을 기본적인 전제로 하기 때문이다. 스크럼은 스크럼 마스터를 주축으로 스프린트를 만들고, 일일 스크럼회의, 스프린트 검토회의, 배포 스프린트 회의 등을 통하여 소프트웨어를 개발한다. 스크럼에서는 소프트웨어의 기능, 특성, 기술을 나열하여 제품 백로그로 관리한다.
애자일 모델을 사용한 소프트웨어의 개발 경험을 위해서, ESOCe 위험도가 낮은 웹기반 시스템 (Web-Based System) 개발 (Project A) 에 처음으로 애자일 모델을 도입하였다. 매 주 회의를 수행하고, 개발환경에 웹으로 접속하는 방법을 도입하였으며, (요구사항 수립 후 구현/검증을 수행하는 방식이 아닌) 점진적인 개발방법을 채택하였다.
여기에서 방법론 (methodology) 은 모델 (model), 방법 (method), 실천법 (practice), 기술 (technique), 프레임워크 (framework) 등의 용어로 혼용하는데, 본 논문에서는 모델로 통일하여 기술한다.
원칙을 두고 있다. 이를 위해서 페어 프로그래밍, 테스트주도 개발, 지속적 통합을 핵심 실천사항으로 설정하였다.
(3장). 이후 최근 애자일 모델을 지상국 소프트웨어 개발에 도입한 ESA의 사례를 분석한다 (4장).
제품 백로그를 초기 사용자 소프트웨어 요구사항으로부터 도출하고, 스프린트 회의와 스프린트 데모 회의를 수행하였으며, 사용자 요구사항을 지속적으로 업데이트하며 명료한 제품 백로그를 생성하였다. 스크럼에 익숙하지 않은 개발자 및 사용자, 이들로 인하여 첫 번째 스프린트 미팅은 개발자만 참석하여 진행하는 등의 어려움이 있었지만, 스크럼을 이용하여 사용자 의견 (feedback) 을 수용하고 의미 있는 스프린트 데모회의를 수행하며 난관을 극복하였다.
계약의 형태는 FFP를 근간으로 하였으나 소프트웨어 개발을 총 2개의 단계로 구분하였다. 첫 번째 단계에서는 사용자 요구사항을 추가로 수집하고 이에 따라 소프트웨어 구조 및 인터페이스 설계, 기능 검증에 집중하였다. 두 번째 단계에서는 본격적인 구현 및 검증을 수행하였다.
성능/효과
ESA의 지상국 개발에 애자일 모델을 도입한 최근 사례를 분석한 결과, 애자일 모델의 부분적인 적용으로도 소기의 성과를 달성할 수 있음을 확인하였다. 엄밀하게는 ESA에서 적용한 방법은 애자일 모델 보다는 다단계의 폭포수 모델에 가까우나 回, 애자일 모델을 적용하고자 하는 노력이 보다 나은 소프트웨어 개발에 많은 도움이 되었다고 분석하였다.
ESOCe 지상국 소프트웨어 개발에 스크럼을 도입함으로써, 사용자 의견 반영으로 인한 소프트웨어 품질 향상‘ 및 '자주 수행되는 테스트로 인한 지속적인 소프트웨어 요구사항 업데이트'의 장점이 있다고 결론 내렸다.
스크럼에 익숙하지 않은 개발자 및 사용자, 이들로 인하여 첫 번째 스프린트 미팅은 개발자만 참석하여 진행하는 등의 어려움이 있었지만, 스크럼을 이용하여 사용자 의견 (feedback) 을 수용하고 의미 있는 스프린트 데모회의를 수행하며 난관을 극복하였다. GUI 소프트웨어 개발에 스크럼을 도입함으로써, 불충분한 사용자 요구사항을 명확하게 업데이트하고 모든 요구사항을 만족시킨 것을 큰 성과로 분석하였으며, 프로젝트의 기술과 관리에 대한 가시성이 증가되었음을 확인하였다.
그리고 스크럼의 스프린트 회의와 유사하게 한 주 단위로 소프트웨어 변경 요청서 (Software Change Request, SCR) 및 변경 결과에 대한 보고서 (Software Problem Report, SPR)를 검토하는 회의를 수행하였다. 결과적으로 의사소통과 가시성이 증대되었으며, 일정 내에 요구사항을 모두 만족시키는 소프트웨어 개발을 완료하였다.
두 번째 단계에서는 본격적인 구현 및 검증을 수행하였다. 본 개발은 엄밀하게 애자일 모델을 적용한 것은 아니지만 애자일 모델의 주요 가치를 달성하기 위한 노력으로 개발 기간 내에 90% 요구사항을 달성하였으며, 높은 사용자 만족도를 얻을 수 있었다.
스크럼 도입은 소프트웨어 요구사항 및 상세설계 결과에서 제품 백로그를 생성하고, 4주 간격 (팀개편으로 인해서 2주로 간격이 변경된 적도 있었음)의 8개 스프린트를 구성하여 스크럼 마스터에 의해 수행되었다. 상세한 요구사항으로 부터 제품 백로그 생성 및 업데이트를 수행하였으며, 회의 수행 (스프린트 회의, 일일 스크럼 회의), 스프린트 별 업무할당, 제품 백로그 관리 등에 어려움이 있었으나 이를 극복하고 성공적으로 소프트웨어 개발을 완료하였다. 프로젝트 성공의 주요인은 매 스프린트마다 가시적인 결과를 생성함으로써 개발자와 사용자 간의 신뢰가 쌓였기 때문으로 분석하였다.
참고문헌 (6)
임백준, 임백준의 소프트웨어 산책, 한빛 미디어, ISBN 89-7914-329-X, pp.120-122, 2005.
정태중/신승환 역, 고약한 문제 합당한 해결 (Wicked Problems, Righteous Solutions, by Peter DEGRAS), 인사이트, ISNB 978-89-91268-86-9, p.59 p.92 p.100 p.106 p.144 p.161 p.213 p.217 p.218, 2010.
김익환/전규현, 소프트웨어 개발의 모든 것, 페가수스, ISBN 978-89-96091-73-8, p.171 p.173, 2008.
심우곤외 역, 스크럼과 XP : 애자일 최전선에서 일군 성공 무용담 (Scrum and XP from the Trenches, by Henrik KNIBERG). 인사이트, ISBN 978-89-91268-60-9, p.xiv p.3 p.5, 2009.
박일/김기욱 역, 스크럼: 팀의 생산성을 극대화시키는 애자일 방법론 (Agile Software Development with Scrum, by Ken SCHWABER and Mike BEEDLE), 인사이트, ISBN 978-89- 91268-47-0, p.11 p.30, 2008.
Rui SANTOS, Felix FLENTGE, Mac-Elian BEGIN, and Vicente NAVARRO, Agile Technical Management of Industrial Contracts: Scrum Development of Ground Segment Software at the European Space Agency, Springer, XP2011 LNBIP77, pp.290-305, 2011.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.