소프트웨어 위기란 컴퓨터 하드웨어의 급속한 발전과 컴퓨터의 대중화로 인한 급격한 소프트웨어의 수요에도 불구하고 소프트웨어의 생산성과 생산 기술은 그에 미치지 못함으로써 나타난 현상으로 해석된다. 이에 이를 극복하기 위한 소프트웨어 공학 분야의 한 현상으로 애자일 소프트웨어 개발 방법론이 전 세계 ...
소프트웨어 위기란 컴퓨터 하드웨어의 급속한 발전과 컴퓨터의 대중화로 인한 급격한 소프트웨어의 수요에도 불구하고 소프트웨어의 생산성과 생산 기술은 그에 미치지 못함으로써 나타난 현상으로 해석된다. 이에 이를 극복하기 위한 소프트웨어 공학 분야의 한 현상으로 애자일 소프트웨어 개발 방법론이 전 세계 IT 업계에 빠르게 확산되고 있다. 애자일 방법론은 전통적인 계획 중심 방법론의 한계를 극복하고자 하는 업계의 노력의 산물로, 각자의 용어와 다양한 프랙티스로 구성된 여러 방법론이 애자일 철학 아래 모여있는 형상이다. 따라서 일반 업체가 이를 현업에 적용함에 있어 각자의 프로젝트 상황에 적합한 프랙티스를 결정하고 최적화하는 절차가 수반되어야 한다. 또한 이와 같이 수행된 애자일 프로젝트를 체계적으로 평가하여 그 도입 효과를 객관화할 필요가 있다.
이에 본 연구에서는 소프트웨어 프로젝트를 위한 애자일 프레임워크 (Agile Framework for Software Projects: AFSP)를 제안하였다. AFSP는 기존의 다양한 적용 사례 및 관련 최신 연구에 근거하여 선정된 다양한 애자일 프랙티스 및 평가기법을 기반으로 구축된 오픈 프레임워크이다. AFSP는 기본적으로 조직모델, 프로세스 및 프랙티스 풀로 구성된다. 첫째, AFSP 조직 모델은 핵심 스크럼을 중심으로 조직 내 커뮤니케이션 및 의사결정 체계를 최적화 한다. 둘째, AFSP 프로세스는 스크럼을 기반으로 전통적인 계획 중심 기법의 장점을 선택적으로 수용하였으며, 개발팀이 프로젝트 개발 주기에 따라 애자일 프랙티스를 효과적으로 적용할 수 있도록 지원한다. 셋째, AFSP가 제공하는 애자일 프랙티스 풀은 개발팀이 프로젝트 요구사항 및 개발환경에 따라 적합한 프랙티스를 결정할 수 있도록 다음과 같이 구성되었다. - 1) 최근 가장 널리 이용되고 있는 애자일 방법론인 스크럼, XP, FDD, DSDM, 크리스탈 클리어의 각 프랙티스 가운데 민첩도가 높은 것을 그 대상으로 하였다. 2) 6대 애자일 프로젝트 성공 요소를 반영하여 성공적인 프로젝트 수행에 필수적인 사항을 고려하였다. 3) 소프트웨어 개발 생명 주기를 반영하여 프로젝트 팀 구성, 프로젝트 관리 및 실제 개발에 유용한 소프트웨어 엔지니어링 프랙티스를 구분하였다. 또한, 소프트웨어 엔지니어링 프랙티스를 계획, 설계, 코딩, 테스트, 출시 단계 별로 세분하여 현업에서 적용이 용이하도록 하였다.
AFSP의 효율성을 입증하기 위하여 미국 야후사의 소규모 프로젝트 4건과 대규모 분산 프로젝트 1건에 AFSP를 실제 적용하였다. 또한, 관련 연구를 바탕으로 다음과 같이 4가지 관점에서 각 적용 사례에 대한 평가를 수행하였다. 첫째, Boehm과 Turner의 5대 민첩성 요소를 평가하여 각 프로젝트의 주어진 상황에 적합한 민첩도를 해당 프로젝트 수행 전략에 반영하였다. 둘째, AFSP의 프로세스와 프랙티스에 대한 민첩도를 산출하여 그 민첩성이 기존의 애자일 방법론을 단독으로 사용하는 것보다 우수함을 입증하였다. 예를 들어 AFSP의 민첩도 산출 결과 스크럼과 XP를 단독으로 사용하는 것보다 각각 15%, 11%의 향상을 보였다. 셋째, 각 프로젝트 팀에 대한 애자일 도입 수준을 평가하여 AFSP가 다양한 환경에 성공적으로 적용됨을 보였다. 넷째, 애자일 프로젝트 성공도를 산출하여 프로젝트 성공을 결정하는 품질, 범위, 시간, 비용의 차원에서 각 적용 사례의 프로젝트 성공 정도를 진단하였다. 결과적으로 AFSP를 적용한 모든 프로젝트가 각 스프린트 목표를 점증적으로 달성함으로써 납기 내에 성공적으로 완료되었다. 특히, AFSP를 적용한 대규모 분산 프로젝트의 경우 개발 프로세스 및 생산성 전반에 걸쳐 약 30% 이상의 개선 효과를 볼 수 있었다.
AFSP의 성공 요인은 다양한 소프트웨어 프로젝트의 특성을 고려하여 민첩도가 높은 프로세스와 프랙티스를 선별하여 적용한 데에 있다. 민첩도가 높은 소프트웨어 개발 방법론은 인간 중심적, 커뮤니케이션 지향적이며, 시장의 변화에 유연하게 대응한다. 또한, 짧은 주기의 반복 점증적인 제품 출시를 통해 저비용 고효율과 지속적인 개선을 추구함으로써 비즈니스의 성공을 지향한다. 본 논문에서 제안한 AFSP 및 적용 사례는 실제 산업 현장에서 소프트웨어 프로젝트를 위한 애자일 도입 및 평가 모델로 활용될 수 있다고 판단된다.
소프트웨어 위기란 컴퓨터 하드웨어의 급속한 발전과 컴퓨터의 대중화로 인한 급격한 소프트웨어의 수요에도 불구하고 소프트웨어의 생산성과 생산 기술은 그에 미치지 못함으로써 나타난 현상으로 해석된다. 이에 이를 극복하기 위한 소프트웨어 공학 분야의 한 현상으로 애자일 소프트웨어 개발 방법론이 전 세계 IT 업계에 빠르게 확산되고 있다. 애자일 방법론은 전통적인 계획 중심 방법론의 한계를 극복하고자 하는 업계의 노력의 산물로, 각자의 용어와 다양한 프랙티스로 구성된 여러 방법론이 애자일 철학 아래 모여있는 형상이다. 따라서 일반 업체가 이를 현업에 적용함에 있어 각자의 프로젝트 상황에 적합한 프랙티스를 결정하고 최적화하는 절차가 수반되어야 한다. 또한 이와 같이 수행된 애자일 프로젝트를 체계적으로 평가하여 그 도입 효과를 객관화할 필요가 있다.
이에 본 연구에서는 소프트웨어 프로젝트를 위한 애자일 프레임워크 (Agile Framework for Software Projects: AFSP)를 제안하였다. AFSP는 기존의 다양한 적용 사례 및 관련 최신 연구에 근거하여 선정된 다양한 애자일 프랙티스 및 평가기법을 기반으로 구축된 오픈 프레임워크이다. AFSP는 기본적으로 조직모델, 프로세스 및 프랙티스 풀로 구성된다. 첫째, AFSP 조직 모델은 핵심 스크럼을 중심으로 조직 내 커뮤니케이션 및 의사결정 체계를 최적화 한다. 둘째, AFSP 프로세스는 스크럼을 기반으로 전통적인 계획 중심 기법의 장점을 선택적으로 수용하였으며, 개발팀이 프로젝트 개발 주기에 따라 애자일 프랙티스를 효과적으로 적용할 수 있도록 지원한다. 셋째, AFSP가 제공하는 애자일 프랙티스 풀은 개발팀이 프로젝트 요구사항 및 개발환경에 따라 적합한 프랙티스를 결정할 수 있도록 다음과 같이 구성되었다. - 1) 최근 가장 널리 이용되고 있는 애자일 방법론인 스크럼, XP, FDD, DSDM, 크리스탈 클리어의 각 프랙티스 가운데 민첩도가 높은 것을 그 대상으로 하였다. 2) 6대 애자일 프로젝트 성공 요소를 반영하여 성공적인 프로젝트 수행에 필수적인 사항을 고려하였다. 3) 소프트웨어 개발 생명 주기를 반영하여 프로젝트 팀 구성, 프로젝트 관리 및 실제 개발에 유용한 소프트웨어 엔지니어링 프랙티스를 구분하였다. 또한, 소프트웨어 엔지니어링 프랙티스를 계획, 설계, 코딩, 테스트, 출시 단계 별로 세분하여 현업에서 적용이 용이하도록 하였다.
AFSP의 효율성을 입증하기 위하여 미국 야후사의 소규모 프로젝트 4건과 대규모 분산 프로젝트 1건에 AFSP를 실제 적용하였다. 또한, 관련 연구를 바탕으로 다음과 같이 4가지 관점에서 각 적용 사례에 대한 평가를 수행하였다. 첫째, Boehm과 Turner의 5대 민첩성 요소를 평가하여 각 프로젝트의 주어진 상황에 적합한 민첩도를 해당 프로젝트 수행 전략에 반영하였다. 둘째, AFSP의 프로세스와 프랙티스에 대한 민첩도를 산출하여 그 민첩성이 기존의 애자일 방법론을 단독으로 사용하는 것보다 우수함을 입증하였다. 예를 들어 AFSP의 민첩도 산출 결과 스크럼과 XP를 단독으로 사용하는 것보다 각각 15%, 11%의 향상을 보였다. 셋째, 각 프로젝트 팀에 대한 애자일 도입 수준을 평가하여 AFSP가 다양한 환경에 성공적으로 적용됨을 보였다. 넷째, 애자일 프로젝트 성공도를 산출하여 프로젝트 성공을 결정하는 품질, 범위, 시간, 비용의 차원에서 각 적용 사례의 프로젝트 성공 정도를 진단하였다. 결과적으로 AFSP를 적용한 모든 프로젝트가 각 스프린트 목표를 점증적으로 달성함으로써 납기 내에 성공적으로 완료되었다. 특히, AFSP를 적용한 대규모 분산 프로젝트의 경우 개발 프로세스 및 생산성 전반에 걸쳐 약 30% 이상의 개선 효과를 볼 수 있었다.
AFSP의 성공 요인은 다양한 소프트웨어 프로젝트의 특성을 고려하여 민첩도가 높은 프로세스와 프랙티스를 선별하여 적용한 데에 있다. 민첩도가 높은 소프트웨어 개발 방법론은 인간 중심적, 커뮤니케이션 지향적이며, 시장의 변화에 유연하게 대응한다. 또한, 짧은 주기의 반복 점증적인 제품 출시를 통해 저비용 고효율과 지속적인 개선을 추구함으로써 비즈니스의 성공을 지향한다. 본 논문에서 제안한 AFSP 및 적용 사례는 실제 산업 현장에서 소프트웨어 프로젝트를 위한 애자일 도입 및 평가 모델로 활용될 수 있다고 판단된다.
Agile software development represents a major departure from traditional plan-driven methods to software engineering. In recent years, agile methods have been hailed for its great ability to rapidly deliver software with high user acceptance, and quickly adapt to changing requirements. Agile methods...
Agile software development represents a major departure from traditional plan-driven methods to software engineering. In recent years, agile methods have been hailed for its great ability to rapidly deliver software with high user acceptance, and quickly adapt to changing requirements. Agile methods are highly attractive for software projects of all size. However, no agile method works well as a standalone system and some adaption or tailoring is always required. The main challenge for the software organization is how to apply suitable agile practices to its specific product development context. Also, even though there are many agile methods which are known to be effective for various software projects, little is known about how results are evaluated.
In this thesis, we introduce AFSP (Agile Framework for Software Projects), an open framework that integrates advantages from different agile methods and different evaluation criteria. AFSP provides a structured and effective way for software organizations to adopt agile practices and evaluate the results. This framework includes a project organization model, an extended Scrum process and agile practices, based on agility and critical success factors in agile software projects that are selected from Scrum, XP, FDD, DSDM and Crystal Clear. Due to the inclusion of agile practices with the highest amount of agility in the framework, the degree of agility in AFSP has a higher agile figure than what would be expected from a standalone agile method. For example, the degree of agility in AFSP is 15% and 11% higher than the degree of agility in Scrum and XP respectively. AFSP also helps software managers and developers effectively use agile engineering techniques throughout the software development lifecycle.
Four small projects in the first case study and one large distributed project in the second case study were implemented and evaluated on the basis of AFSP. Our objective for the first case study was to empirically validate the applicability of AFSP to support the adoption and evaluation of agile approaches. The purpose of the second case study was to investigate the challenges faced by globally distributed software teams and ascertain best practices in such an environment by extending AFSP. These case projects were evaluated on the basis of the risk assessment model [18], agility of the adopted practices [25], agile adoption/improvement model [16], and the survey study of critical success factors in agile software projects [19].
First, to establish effective communication and cooperation protocols, the project teams were organized based on AFSP organization model. Second, to define and address risks and to build a balanced strategy including agility and discipline, the project teams identified the five risk-based agility factors. Third, the project teams determined agile practices in areas where their strengths can be best applied and their risks minimized by measuring the agility of each practice. Forth, the project teams built each project by following the AFSP process incorporated in the determined agile practices. Fifth, to evaluate how well the AFSP process and practices were followed within the organization, the project teams assessed each agile adoption or improvement level. Finally, to evaluate how well the organization performs on the project to achieve success, the project teams calculated the quantitative degree of agile project success.
The analysis of the results clearly showed a high degree of efficiency with the framework used in the aforementioned industry cases. We hope other organizations find that agile adoption through AFSP is efficient and improves the quality and productivity of their project.
Agile software development represents a major departure from traditional plan-driven methods to software engineering. In recent years, agile methods have been hailed for its great ability to rapidly deliver software with high user acceptance, and quickly adapt to changing requirements. Agile methods are highly attractive for software projects of all size. However, no agile method works well as a standalone system and some adaption or tailoring is always required. The main challenge for the software organization is how to apply suitable agile practices to its specific product development context. Also, even though there are many agile methods which are known to be effective for various software projects, little is known about how results are evaluated.
In this thesis, we introduce AFSP (Agile Framework for Software Projects), an open framework that integrates advantages from different agile methods and different evaluation criteria. AFSP provides a structured and effective way for software organizations to adopt agile practices and evaluate the results. This framework includes a project organization model, an extended Scrum process and agile practices, based on agility and critical success factors in agile software projects that are selected from Scrum, XP, FDD, DSDM and Crystal Clear. Due to the inclusion of agile practices with the highest amount of agility in the framework, the degree of agility in AFSP has a higher agile figure than what would be expected from a standalone agile method. For example, the degree of agility in AFSP is 15% and 11% higher than the degree of agility in Scrum and XP respectively. AFSP also helps software managers and developers effectively use agile engineering techniques throughout the software development lifecycle.
Four small projects in the first case study and one large distributed project in the second case study were implemented and evaluated on the basis of AFSP. Our objective for the first case study was to empirically validate the applicability of AFSP to support the adoption and evaluation of agile approaches. The purpose of the second case study was to investigate the challenges faced by globally distributed software teams and ascertain best practices in such an environment by extending AFSP. These case projects were evaluated on the basis of the risk assessment model [18], agility of the adopted practices [25], agile adoption/improvement model [16], and the survey study of critical success factors in agile software projects [19].
First, to establish effective communication and cooperation protocols, the project teams were organized based on AFSP organization model. Second, to define and address risks and to build a balanced strategy including agility and discipline, the project teams identified the five risk-based agility factors. Third, the project teams determined agile practices in areas where their strengths can be best applied and their risks minimized by measuring the agility of each practice. Forth, the project teams built each project by following the AFSP process incorporated in the determined agile practices. Fifth, to evaluate how well the AFSP process and practices were followed within the organization, the project teams assessed each agile adoption or improvement level. Finally, to evaluate how well the organization performs on the project to achieve success, the project teams calculated the quantitative degree of agile project success.
The analysis of the results clearly showed a high degree of efficiency with the framework used in the aforementioned industry cases. We hope other organizations find that agile adoption through AFSP is efficient and improves the quality and productivity of their project.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.