애자일 소프트웨어 개발의 경우, 약점으로 알려져 있는 것이 개발하는 소프트웨어의 규모이다. 이러한 측면에서 다양한 접근 방법이 제시 되고 있다. 이 부분에 대해서 살펴 보자.
규모 확대 전략 (Scale up strategy)의 종류
애자일 소프트웨어 개발을 대규모로 확장하는 접근 방법으로 다음과 같은 것들이 알려져 있다.
1. Scaled Agile Framework(SAFe)[1]
2. Large Scale Scrum(LeSS)[2]
3. Disciplined Agile Delivery(DaD)[3]
4. Nexus framework[4]
5. Scrum@Scale[5](Scrum of Scrums[6], Spotify model[7])
이렇게 여러가지가 있지만, 소프트웨어 아키텍처에 관련해서 이야기 하는 것들은 1~3번이다.
4번과 5번은 Scrum이 반복을 기반으로 한 애자일 프로세스의 규모확장성(Scalability)에 대한 이야기로 볼 수 있다. 즉, 스크럼이 작은 팀(예를 들어 피자 두 판)만 가능하다고 하면 큰 규모의 소프트웨어 개발을 하는 조직을 어떻게 애자일하게 만들것이냐는 측면에 대한 접근인 것이다. 다른 접근 방법과 다르게 4번과 5번은 여전히 스크럼을 기반으로하고 있으므로 더 애자일한 측면이 있고, 다른 접근 방법들은 산출물이나 스크럼에서 이야기 하지 않는 다른 역할들을 정의하는 규율 기반(Disciplined approach)으로 애자일과는 다른 관점의 항목들이 추가된다고 이야기 할 수 있다.
4번 Nexus framework와 5번 Scrum@Scale의 차이점은 조직을 어떻게 구성하느냐 접근 방식이라고 볼 수 있다. Nexus는 정의부터 3개에서 9개의 스트럼팀을 코디네이트하는 것이라고 하고, Scrum@Scale은 조직 전체를 나누어 여러 스크럼의 스크럼을 단계적으로 만들어간다[8].
이후에는, 1~3번의 세가지 접근 방법에서 이야기 하는 소프트웨어 아키텍처에 대해서 살펴 보자. 대부분의 내용은 [9]에서 설명되어 있는 것들의 요약이다.
비슷한점
- 애자일 아키텍처의 중요성: SAFe, DaD, LeSS 모두 애자일 아키텍처를 중시하며, 시스템을 지속 가능하고 확장 가능하게 설계하는 데 중점을 둔다.
- 점진적 개발: 이들 프레임워크는 모두 변화를 수용하고 점진적으로 시스템을 개발하고자 하는 애자일의 원칙을 따른다.
- 분산된 의사결정: 의사결정의 분산을 통해 빠른 반응과 유연성을 높이는 것을 강조한다.
다른점
- 프레임워크의 구조: SAFe는 포트폴리오, 솔루션, 프로그램, 에센셜, 팀의 5단계 구조를 제공하는 반면, DaD는 시작, 구축, 전환의 3단계로 구성되어 있고, LeSS는 기본적인 스크럼 방식을 확장하여 사용한다.
- 철학 및 접근방식: SAFe는 구조적이고 포괄적인 접근을, DaD는 맞춤형 접근을, LeSS는 최소한의 프로세스를 중심으로 한 접근을 제공한다.
- 역할과 책임: LeSS는 다른 프레임워크에 비해 역할 수를 줄이는 방향을 강조하여 복잡성과 오버헤드를 감소시키고자 한다. 반면 SAFe와 DaD는 좀 더 많은 역할과 구조를 제안한다.
마무리하며...
애자일 개발방법의 규모 확장법이 이렇게 많다는 건 정답이 없다는 반증일 것이다. 특히, 아키텍처를 다루는 3가지 접근 법은 비교해보면 특징이 드러난다. SAFe는 관리적인 측면을 강조하고 있고, LeSS는 Scrum의 자연적인 확장을 기대며 팀에 기댄다. 서로 양극단이라고 한다면, DaD는 그 중간 즈음에 위치한다고 볼 수 있겠다.
참고 자료
[1] Scaled Agile Framework, https://www.scaledagileframework.com/
[2] Large Scale Scrum, https://less.works/
[3] Disciplined Agile Delivery, https://www.pmi.org/disciplined-agile/process/introduction-to-dad
[4] Scaling Scrum with Nexus, https://www.scrum.org/resources/scaling-scrum
[5] The Official Scrum@Scale Guilde, https://www.scrumatscale.com/scrum-at-scale-guide/
[6] Scrum of scrums, https://www.atlassian.com/agile/scrum/scrum-of-scrums
[7] Spotify and Scrum@Scale, https://www.scruminc.com/spotify-model-scrum-at-scale/
[8] Scrum@Scale An Introduction, https://medium.com/serious-scrum/scrum-scale-an-introduction-432bb0402488
[9] 라제시 RV 저자(글) · 김모세 번역, "애자일 소프트웨어 아키텍트의 길, 소프트웨어의 지속적인 설계를 통한 진화", 에이콘출판 · 2022년 10월 28일
'Software Architecture' 카테고리의 다른 글
객체 지향 리엔지니어링 패턴: 1장 리엔지니어링 패턴 (0) | 2024.06.19 |
---|---|
마틴 파울러의 소프트웨어 아키텍처 가이드 (0) | 2024.06.12 |
3. 레거시 소프트웨어 때문에 힘드네요. (0) | 2024.05.20 |
2. 개선할 부분이 있는데 어떻게 할지 어렵네요 (0) | 2024.05.19 |
1. 제가 만든 소프트웨어에 구조가 없어요 (0) | 2024.05.05 |