Skip to main content
QUICK REVIEW

[논문 리뷰] The frog and the octopus: a conceptual model of software development

Philippe Kruchten|arXiv (Cornell University)|2012. 09. 06.
Software Engineering Techniques and Practices참고 문헌 45인용 수 7
한 줄 요약

이 논문은 소프트웨어 개발의 통합 개념적 모델을 제안하며, 믹스드, 애자일, 전통적 접근 방식을 포함한 모든 접근 방식을 통합한다. 이는 의도, 제품, 사람, 시간, 품질 등 9개의 핵심 요소와 크기, 변화율 등 8개의 변수 요인을 식별하여 방법론적 다양성을 설명한다. 이 모델은 실무 분석, 커리큘럼 설계, 프로세스 개선, 그리고 애자일 대 전통적 소프트웨어 개발 논쟁의 극복을 위한 이론적 프레임워크로 기능한다.

ABSTRACT

We propose a conceptual model of software development that encompasses all approaches: traditional or agile, light and heavy, for large and small development efforts. The model identifies both the common aspects in all software development, i.e., elements found in some form or another in each and every software development project (Intent, Product, People, Work, Time, Quality, Risk, Cost, Value), as well as the variable part, i.e., the main factors that cause the very wide variations we can find in the software development world (Size, Age, Criticality, Architecture stability, Business model, Governance, Rate of change, Geographic distribution). We show how the model can be used as an explanatory theory of software development, as a tool for analysis of practices, techniques, processes, as the basis for curriculum design or for software process adoption and improvement, and to support empirical research on software development methods. This model is also proposed as a way to depolarize the debate on agile methods versus the rest-of-the-world: a unified model.

연구 동기 및 목표

  • 모든 소프트웨어 개발 접근 방식—메소드나 스케일에 관계없이—를 통합하는 종합적 개념적 모델을 개발하는 것.
  • 모든 소프트웨어 프로젝트에 공통적으로 존재하는 불변의 핵심 요소를 식별하여 다양한 맥락에서 일관된 분석을 가능하게 하는 것.
  • 소프트웨어 개발 실무와 프로세스의 광범위한 다양성을 설명하는 변수 요인을 정의하는 것.
  • 소프트웨어 공학 분야의 커리큘럼 설계, 프로세스 도입, 경험적 연구를 위한 이론적 기반을 제공하는 것.
  • 애자일과 전통적 소프트웨어 개발 간의 대립을 해소하기 위해 공통의 개념적 프레임워크를 제공하는 것.

제안 방법

  • 모델은 모든 소프트웨어 개발 프로젝트에 공통으로 존재하는 아홉 가지 핵심 요소—의도, 제품, 사람, 작업, 시간, 품질, 위험, 비용, 가치—를 중심으로 구성된다.
  • 핵심 요소들이 어떻게 적용되는지를 영향을 주는 여덟 가지 변수 요인—크기, 연령, 중요도, 아키텍처 안정성, 비즈니스 모델, 거버넌스, 변화율, 지리적 분포—을 포함한다.
  • 모델은 절차적 지침보다는 설명력에 중점을 두어, 정의된 절차가 아닌 개념적 프레임워크로 설계되었다.
  • 기존 실무, 기법, 프로세스를 핵심 요소와 변수 요인에 맵핑하여 분석할 수 있도록 한다.
  • 커리큘럼 설계를 지원하기 위해 소프트웨어 개발의 핵심 개념과 관계를 식별한다.
  • 과정 개선, 연구, 교육적 맥락에서의 적용을 통해 검증되었으며, 넓은 해석적 유용성을 입증했다.

실험 결과

연구 질문

  • RQ1어떻게 하나의 개념적 모델이 애자일과 전통적 소프트웨어 개발 접근 방식을 모두 수용할 수 있는가?
  • RQ2모든 소프트웨어 개발 프로젝트에 공통적으로 존재하는 핵심 요소는 무엇인가? (메소드나 스케일에 관계없이)
  • RQ3조직과 프로젝트 간 소프트웨어 개발 실무의 상당한 다양성을 설명하는 요인은 무엇인가?
  • RQ4이 모델을 어떻게 활용하여 소프트웨어 개발 프로세스를 분석, 비교, 개선할 수 있는가?
  • RQ5이 모델은 애자일이 아닌 소프트웨어 개발 메소드 간의 논쟁을 어떻게 완화하는 데 기여할 수 있는가?

주요 결과

  • 모델은 모든 프로젝트에 공통으로 존재하는 아홉 가지 불변의 핵심 요소를 식별함으로써 다양한 소프트웨어 개발 접근 방식을 성공적으로 통합한다.
  • 변수 요인 8개—예: 변화율, 지리적 분포—가 소프트웨어 개발의 대부분의 방법론적 다양성을 설명한다.
  • 커리큘럼 설계에 안정적인 기반을 제공하여, 다양한 메소드에 걸쳐 소프트웨어 공학 원칙을 일관되게 교육할 수 있도록 한다.
  • 경험적 연구를 지원하기 위해 개발 실무를 비교할 수 있는 공통 어휘와 분석 구조를 제공한다.
  • 조직이 핵심 요소와 맥락적 요인에 비추어 자신의 실무를 평가하고 적응할 수 있도록 하여, 프로세스 도입 및 개선을 가능하게 한다.
  • 모델은 애자일과 전통적 접근 방식을 동일한 개념적 프레임워크의 타당한 표현으로 위치시킴으로써, 이 둘 간의 대립을 효과적으로 해소한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.