Search

적응형 소프트웨어 개발: 팀이 변경을 염두에 두고 소프트웨어를 만드는 방법

By Atlassian

주요 내용

  • 적응형 소프트웨어 개발(ASD)은 계획을 유연하게 다루고 피드백을 통해 작업을 지속적으로 상세 조정하여 팀이 불확실성을 관리할 수 있도록 돕습니다

  • ASD는 추측, 공동 작업 및 학습이라는 세 가지 반복 단계를 기반으로 합니다

  • 팀은 단순히 완료된 티켓 또는 문서가 아니라 사용자가 실제로 테스트하고 검토하며 배울 수 있는 요소를 기준으로 진행률을 측정합니다

  • 적응형 개발은 요구 사항이 변경되거나 고객의 요구가 변화하거나 기술적 불확실성이 높은 프로젝트에 가장 효과적입니다

소프트웨어 프로젝트는 진행 과정에서 불확실성이 더 커지는 경우가 많습니다. 우선 순위가 바뀌고 고객 피드백을 기반으로 제품 요구 사항이 변경되며 개발이 이미 시작된 후에 기술적인 문제가 발생할 수 있습니다. 

엄격한 계획을 고수하는 팀은 프로젝트 도중에 변경 사항이 발생하면 어려움을 겪는 경우가 많습니다.

적응형 소프트웨어 개발은 다른 접근 방식을 제공합니다. 변경 사항을 방해 요소로 여기는 대신 개발 프로세스 자체의 과정으로 간주합니다. 

팀은 소프트웨어를 만들면서 지속적으로 계획하고 제공하고 배우고 조정합니다. 이 가이드에서는 적응형 소프트웨어 개발의 정의, 작동 방식 및 다른 개발 방법론과의 차이점에 대해 설명합니다.

적응형 소프트웨어 개발(ASD)이란 무엇입니까?

적응형 소프트웨어 개발(ASD)은 시간이 지남에 따라 요구 사항, 우선 순위 및 기술적 이해도가 변화할 것으로 예상되는 프로젝트를 위한 소프트웨어 개발 접근 방식입니다.

ASD는 1990년대 애플리케이션 개발 관행이 급격히 부상했던 시기에 Jim Highsmith와 Sam Bayer의 연구를 기반으로 발전했습니다. 이 방법론은 팀이 모든 요구 사항을 사전에 예측할 수 없는 복잡한 소프트웨어 프로젝트를 위해 설계되었습니다.

더 엄격한 개발 모델과 달리 ASD는 소프트웨어 개발 수명 주기에 불확실성이 불가피하다고 가정하고, 그것을 방법론의 세 가지 반복 단계에 반영합니다. 

  1. 추측

  2. 공동 작업

  3. 학습 

이 구조는 팀이 더 많은 것을 배우면서 정보에 기반한 가정을 세우고 점진적으로 만들고 피드백을 수집하고 프로젝트의 방향을 상세 조정하도록 장려합니다. 이것이 바로 적응형 소프트웨어 개발의 '적응형'이 뜻하는 의미입니다. 

계획이 여전히 중요하지만, 계획을 고정된 이행 약속보다는 유연한 가정으로 간주합니다.

팀은 제공 피드백, 이해 관계자 의견, 테스트 인사이트 및 고객 반응을 활용하여 다음 작업 주기를 구성합니다. 단순한 작업 완료가 아닌 소프트웨어의 사용성, 확인된 배운 점 및 향상된 의사 결정을 기준으로 진행률을 측정합니다.

또한 ASD는 애자일 방법론에서 볼 수 있는 다양한 아이디어와 밀접하게 부합하며, 특히 공동 작업, 대응성 및 반복 제공에 중점을 둡니다.

ASD의 주요 특성

적응형 소프트웨어 개발은 팀이 변화하는 환경에서 효과적으로 작업하는 데 도움이 되는 몇 가지 핵심적인 특징을 기반으로 합니다.

  • 미션 중심의 계획: 팀은 모든 요구 사항을 완전히 정의하지 않았더라도 명확한 제품 목표 또는 비즈니스 목표를 수립하여 시작합니다. 이를 통해 팀에 지나치게 경직된 계획을 강요하지 않으면서 전반적인 방향을 설정합니다.

  • 증분 제공: 팀은 더 짧은 주기로 사용 가능한 제품 증분을 제공하여 조기에 피드백을 수집하고 우선 순위를 더 쉽게 조정할 수 있습니다.

  • 공동 작업: 개발자, 제품 관리자, 디자이너, 품질 보증 테스터 및 이해 관계자는 단절된 단계로 작업하는 대신 전체 프로세스에 걸쳐 긴밀하게 협력합니다.

  • 학습: 팀은 가정, 기술적 결정 및 제공 결과를 지속적으로 평가합니다. 피드백 루프를 최종 검토 단계가 아닌 적극적인 개발 과정으로 간주합니다.

  • 유연성: 팀은 책임감을 지속적으로 유지하면서 프로젝트가 진행됨에 따라 범위, 우선 순위, 위험 및 종속성을 정기적으로 다시 평가합니다.

많은 조직에서는 시간이 지남에 따라 적응형 팀이 어떤 성과를 내고 있는지 평가하기 위해 애자일 메트릭을 사용하기도 합니다. 사이클 타임, 리드 타임, 처리량 및 결함 추세와 같은 메트릭을 통해 팀은 제공 패턴을 이해하고 개선 기회를 파악할 수 있습니다.

적응형 소프트웨어 개발 작동 방식

다음은 ASD의 세 가지 반복 단계에서 하는 일의 개요와 자세한 설명입니다.

단계

하는 일

팀이 만들어야 하는 결과물

추측

미션, 가정, 제약 조건 및 우선 순위 정의

유연한 계획, 백로그, 목표 및 위험

공동 작업

역할 간에 협력하며 문제 해결 및 증분 제공

작동하는 소프트웨어, 블로커 해결책 및 피드백

자세히 알아보기

결과 검토, 가정 확인 및 다음 주기 조정

회고 노트, 업데이트된 우선 순위 및 개선 사항

추측: 불확실성에 대비한 계획

추측 단계에서는 모든 요구 사항을 사전에 알 수 없는 경우 현실적인 계획을 세우는 데 중점을 둡니다.

팀은 현재 주기의 미션을 정의하고 알려진 제약 조건을 파악하고 가정을 논의하며 릴리스 목표의 개요를 작성합니다. 고정된 장기 계획을 세우는 대신 프로젝트에 따라 변화할 수 있는 즉각적인 목표를 수립합니다.

Jira 백로그의 이미지

이 단계에는 주로 제품 백로그를 만들거나 상세 검토하고 기술적 위험을 식별하고 기능 우선 순위 지정하고 단기 작업을 추정하는 것이 포함됩니다.

예를 들어 고객 온보딩 플랫폼을 만드는 제품 팀은 달성하고자 하는 핵심 비즈니스 성과를 알고 있을 것입니다. 하지만 고객이 워크플로와 어떻게 상호 작용하는지에 대해서는 여전히 파악 중일 수 있습니다. 

팀은 모든 요구 사항을 즉시 확정하기보다는 고객 행동이 더 명확해짐에 따라 조정할 수 있는 유연한 제품 로드맵을 만듭니다. ASD는 워터폴 개발 방식과 자주 비교되는데, 각각 매우 다른 계획 모델을 나타내기 때문입니다. 

ASD는 팀이 소프트웨어를 만들면서 배우는 여지가 필요한 프로젝트에 도움이 되며, 워터폴 방식은 개발이 시작되기 전에 팀이 모든 요구 사항을 안전하게 정의하고 승인할 수 있는 경우에 적합합니다. 

이 방식은 요구 사항이 안정적이고 승인이 고정되어 있으며 팀이 명확하고 순차적인 계획을 따를 수 있는 규제가 엄격하거나 계약을 기반으로 하는 프로젝트에서 더 흔히 사용됩니다. 

공동 작업: 역할 간에 협력하며 문제 해결

적응형 개발은 기술 및 기술 분야 이외 이해 관계자 간의 긴밀한 공동 작업에 달려 있습니다. 개발자, 제품 관리자, 디자이너, 품질 보증 테스터, 고객 및 비즈니스 리더 모두가 개발 프로세스 전반에 걸쳐 기여합니다. 

보이지 않는 곳에서 부서 간에 작업을 넘기는 대신, 팀은 공개적이고 지속적으로 함께 문제를 해결합니다. 공동 작업을 통해 팀은 요구 사항이 변경되거나 기술적 블로커가 발생하면 빠르게 대응할 수 있습니다. 

문제를 조기에 발견하고 의사 결정이 더 빨라지며 팀은 절충안에 대한 더 명확한 가시성을 확보합니다. 또한 공동 작업은 제공 작업과 고객 기대치 간의 정렬을 개선합니다. 

팀은 릴리스 마감 날짜가 임박해서 문제를 발견하는 대신, 작업이 아직 진행 중인 상태에서 가정을 확인할 수 있습니다. 

다크 모드 Jira 보드 이미지

스크럼 또는 칸반과 같은 프레임워크를 사용하는 조직은 대개 유사한 공동 작업 원칙을 적용하지만, ASD는 특정 세레모니 또는 워크플로 규칙을 따르기보다는 불확실성에서 배우는 것에 중점을 둡니다.

Jira 보드는 팀이 개발 단계를 거쳐 진행되는 작업을 시각화하는 데 도움이 됩니다. 공동의 가시성을 통해 교차 기능 팀은 더 쉽게 진행률을 추적하고 블로커를 파악하고 여러 이해 관계자 간에 우선 순위를 조정할 수 있습니다.

학습: 피드백을 더 나은 성과로 전환

학습 단계는 팀이 결과를 평가하고 다음 주기를 어떻게 개선할지 결정하는 단계입니다.

팀은 제공 과정에서 발생한 일을 검토하고 결과를 가정과 비교하며 향후 작업을 위한 조정 사항을 파악합니다. 사용자 피드백, 테스트 결과, 운영 인시던트, 이해 관계자 검토 및 제공 데이터를 포함한 다양한 소스에서 배웁니다.

스프린트 이미지

팀원들의 공동 작업 방식을 개선하는 것이 목표 중 하나이기 때문에 이 단계에는 대개 애자일 회고, 스프린트 검토 및 릴리스 분석이 포함됩니다. 팀은 커뮤니케이션을 상세 조정하거나 우선 순위를 조정하거나 개발 워크플로를 개선할 수도 있습니다.

또한 팀은 고객 도입 및 기술적 성능을 검토하여 제품을 개선할 수 있습니다.

ASD는 배움을 끊임없는 지속적 개선의 과정으로 간주합니다. 제공 주기 전반에 걸쳐 사소한 조정이 지속적으로 이루어지면 시간이 지남에 따라 제품 품질, 제공 속도 및 팀 공동 작업을 크게 개선할 수 있습니다.

Jira 보고 기능은 팀이 제공 추세를 분석하고 스프린트 결과를 모니터링하며 작업 패턴을 검토하는 데 도움이 됩니다. 보고서는 팀이 향후 제공 주기에 영향을 미치는 반복적인 블로커, 불균형한 워크로드 또는 계획 공백을 파악하는 데 도움이 될 수 있습니다.

적응형 소프트웨어 개발의 이점 및 도전 과제

적응형 소프트웨어 개발은 불확실하거나 빠르게 변화하는 환경에서 효과적이지만, 팀은 여전히 프로세스를 신중하게 관리해야 합니다. 각 장점에 가드레일이 필요한 이유는 다음과 같습니다. 

이점

도움이 되는 이유

관리의 어려움

더 많은 유연성

팀은 더 많은 것을 배우면서 우선 순위를 조정할 수 있음

명확한 목표가 없으면 과도한 유연성으로 인해 범위 크리프가 발생할 수 있음

더 빠른 피드백 루프

팀은 조기에 가정을 확인할 수 있음

피드백을 체계화하여 명확한 다음 단계로 전환해야 함

더 강력한 공동 작업

교차 기능 팀은 복잡한 문제를 함께 해결할 수 있음

역할 및 의사 결정이 명확하지 않은 경우 공동 작업 속도가 저하될 수 있음

더 나은 위험 관리

팀은 알려지지 않은 문제가 주요 블로커가 되기 전에 발견할 수 있음

팀에는 위험, 종속성 및 절충안에 대한 가시성이 필요함

지속적 개선

각 주기는 팀의 제품 및 프로세스 개선에 도움이 됨

팀은 단순히 제공하는 것뿐만 아니라 회고할 시간이 필요함

요약하자면, 적응형 개발에는 규율이 필요합니다. 혼란 또는 제공 불안정성을 방지하려면 팀에는 여전히 공동의 목표, 우선 순위 지정 프로세스 및 명확한 커뮤니케이션 구조에 대한 가시성이 필요합니다.

적응형 소프트웨어 개발과 다른 방법론 비교

적응형 소프트웨어 개발은 각각 고유한 강점과 사용 사례를 가진 여러 최신 개발 접근 방식의 에코시스템에 속해 있습니다. 이러한 방법론은 팀이 작업을 구조화하고 변화에 대응하는 방식에서 서로 차이가 있습니다.

방법론

가장 적합한 대상

적응형 소프트웨어 개발과의 비교

적응형 소프트웨어 개발

요구 사항이 변경되는 복잡한 프로젝트

유연한 계획, 공동 작업 및 학습 주기에 집중

애자일

반복적인 작업을 위한 폭넓은 사고방식

ASD는 더 광범위한 애자일 계열에 속하는 애자일 방법론 중 하나임

스크럼

구조화된 스프린트에서 업무를 하는 팀

스크럼은 역할 및 세레모니 중심, ASD는 학습을 통한 적응 중심

칸반

지속적인 흐름 및 시각적 업무 관리

칸반은 흐름 및 진행 중인 작업 제한 중심, ASD는 불확실성을 통한 학습 중심

워터폴

요구 사항이 고정된 안정적인 프로젝트

워터폴은 선형적인 반면 ASD는 계획과 요구 사항이 변경될 수 있음을 전제로 함

적응형 소프트웨어 개발을 사용하는 경우

적응형 소프트웨어 개발은 팀이 명확한 목표를 가지고 있지만 목표에 도달하는 경로가 변경될 수 있는 경우 적합합니다. 팀은 주로 다음과 같은 경우에 ASD를 통해 이점을 얻습니다.

  • 프로젝트 진행 중 요구 사항이 변경될 가능성이 높은 경우

  • 지속적인 개발 의사 결정에 고객 피드백을 반영해야 하는 경우

  • 팀이 짧은 주기로 릴리스, 테스트 및 개선을 해야 하는 경우

  • 여러 이해 관계자가 변화하는 우선 순위에 기여하는 경우

  • 기술적 복잡성이 알 수 없는 위험 또는 종속성을 초래하는 경우

  • 팀이 새로운 제품을 만들거나 익숙하지 않은 시장에 진출하는 경우

  • 제공 성공이 빠른 반복 및 학습에 달려 있는 경우

  • 개발 전반에 걸쳐 교차 기능 공동 작업이 필요한 경우

적응형 접근 방식은 조직이 장기적인 제품 방향과 단기적인 유연성의 균형을 맞추는 데도 도움이 될 수 있습니다. 팀은 더 많은 것을 배워가며 전술을 조정하는 동시에 공동의 미션을 유지합니다.

팀이 변화하는 소프트웨어 요구 사항에 적응하도록 지원

적응형 소프트웨어 개발의 핵심은 학습과 적응을 계획의 예외가 아니라 소프트웨어 제공에서 예상되는 부분으로 다룬다는 점입니다. 동시에 명확한 목표, 투명한 워크플로, 정기적인 피드백 루프 및 안정적인 공동 작업을 지원하는 충분한 구조를 제공합니다.

Jira는 팀이 백로그에서 업무를 구성하고 보드에서 진행률을 시각화하고 타임라인으로 변화하는 업무를 계획하고 보고 도구를 통해 제공 패턴을 분석할 수 있도록 도와 이 접근 방식을 지원합니다. 이 기능은 팀이 각 학습 주기를 다음 제공 주기와 연결하는 데 도움이 됩니다.

지금 Jira를 사용해 보고 적응형 소프트웨어 팀이 변화하는 요구 사항, 진화하는 고객의 기대치 및 복잡한 제공 환경을 관리하는 데 어떻게 도움이 되는지 확인해 보세요.

적응형 소프트웨어 개발 FAQ

적응형 소프트웨어 개발은 누가 만들었습니까?

적응형 소프트웨어 개발은 Jim Highsmith 및 Sam Bayer가 개발했습니다. 이들의 연구는 빠른 애플리케이션 개발 개념을 확장했으며 팀이 변화하는 요구 사항을 가진 복잡한 소프트웨어 프로젝트를 관리하도록 지원하는 데 중점을 두었습니다.

적응형 소프트웨어 개발에는 짧은 릴리스 주기가 필요합니까?

항상 그런 것은 아닙니다. 더 빠른 피드백이 학습 및 의사 결정을 향상하기 때문에 많은 적응형 팀은 더 짧은 주기로 업무를 수행합니다. 하지만 ASD는 고정된 릴리스 일정을 따르는 것보다 대응성과 학습에 더 중점을 둡니다.

적응형 소프트웨어 개발에는 문서화가 얼마나 필요합니까?

ASD는 여전히 문서화를 중요하게 생각하지만 팀은 일반적으로 공동 작업, 의사 결정 및 제공에 도움이 되는 문서화에 집중합니다. 문서화는 엄격한 프로세스 요구 사항이라기보다는 실용적인 도구로 간주됩니다.

맞춤 추천

이미 만들어진 Jira 템플릿

다양한 팀, 부서 및 워크플로에 사용할 수 있는 사용자 지정 Jira 템플릿 라이브러리를 살펴보세요.

Jira에 대한 포괄적인 소개

이 단계별 가이드를 사용하여 생산성을 최대화하기 위한 필수 기능 및 모범 사례를 알아보세요.

기본적인 Git의 이해

초보자에서 전문가까지 유용한 자습서 및 팁이 포함된 이 Git 가이드를 사용하여 기본 사항을 알아볼 수 있습니다.