2005년 마틴 파울러가 정리한 애자일 방법론의 등장 배경과 핵심 철학 원문: martinfowler.com/articles/newMethodology.html
기존 소프트웨어 방법론은 토목·기계 공학처럼 '설계'와 '시공'을 엄격히 분리하려 했다.
| 토목 공학 | 소프트웨어 개발 | |
|---|---|---|
| 설계 비용 | 전체의 ~10% | 전체의 50% 이상 |
| 시공 비용 | 전체의 대부분 | 15%에 불과 (코딩+단위 테스트) |
| 설계도 검증 | 수학적 분석 + 공학 코드 | 동료 리뷰에만 의존 (UML) |
잭 리브스(Jack Reeves)의 통찰을 인용하여:
- 소프트웨어에서 실제 '시공'에 해당하는 것은 컴파일러/링커 구동뿐 (사실상 무료)
- 코드 작성을 포함한 모든 과정은 창의적이고 예측 불가능한 '설계' 과정
- 따라서 전통적 공학 메타포를 소프트웨어에 적용하는 것은 근본적으로 잘못됨
- 요구사항을 사전에 완벽히 확정하고 서명받으려 함
- 비즈니스 환경은 급변하고, 소프트웨어는 직접 써보기 전까지 가치를 알기 어려움
- 현실과 계획이 어긋나면 프로젝트 후반부에 끔찍한 결과 초래
| 전통적 (예측형) | 애자일 (적응형) |
|---|---|
| 변화를 막으려 함 | 변화를 환영하고 기회로 활용 |
| 계획 준수가 성공 기준 | 비즈니스 가치 제공이 성공 기준 |
| 프로세스가 사람을 통제 | 프로세스가 사람의 작업을 지원 |
| 개발자 = 대체 가능한 부품 | 개발자 = 책임 있는 전문가 |
| 고정 범위 계약 | 고정 시간/예산 + 유연한 범위 |
변화를 문제로 보지 않고, 고객이 진정으로 필요한 것을 학습하여 빠르게 반영하는 것을 경쟁력으로 삼아야 한다.
| 테일러주의 (과학적 관리법) | 애자일 |
|---|---|
| 사람 = 대체 가능한 리소스 | 사람 = 대체 불가능한 전문가 |
| 관리자가 계획하고 통제 | 실무자에게 권한 위임 |
| 측정 기반 관리 | 위임형 관리 |
- 소프트웨어 개발은 복잡하고 지식 중심적인 작업
- 잘못된 측정은 **'측정 기능 장애(Measurement Dysfunction)'**를 유발
- 측정 지표에 맞추려고 실제 효율성을 희생하는 현상
- 실무자에게 권한을 위임하는 것이 훨씬 효율적
- 기술적인 결정을 스스로 내릴 권한
- 작업 일정을 스스로 추정할 권한
- 비즈니스 전문가와 동등한 위치에서 지속적으로 소통
- 짧은 주기마다 통합되고 테스트를 거친 '작동하는 소프트웨어' 배포
- 문서 검토가 아닌 실제 작동하는 시스템에서 피드백 획득
- 요구사항과 버그에 대한 현실적이고 정직한 피드백을 지속적으로 수집
- 전통적 고정 가격/고정 범위 계약은 불안정한 환경에서 모두에게 피해
- 시간과 예산은 고정, 시스템 범위는 유연하게 조절
- 매 반복 주기마다 고객이 진행 상황을 점검하고 방향 수정
- 진정한 비즈니스 파트너십 필요
- 일회성 소통이 아닌 프로젝트 내내 긴밀한 협력
- 신뢰할 수 있는 비즈니스 전문가와 동등한 위치에서 피드백 교환
- 팀 스스로 애자일 방식을 원해야 함 — 강압적 도입은 근본정신에 어긋남
- 팀원은 플러그처럼 교체 가능한 부품이 아님
- 기술적 결정과 일정 추정 권한을 가진 전문가로 대우
- 고정된 방법론을 맹목적으로 따르지 않음
- 매 반복(Iteration) 종료 시 무엇을 잘했는지, 무엇을 개선할지 스스로 리뷰
- 프로세스 자체를 팀에 맞게 지속적으로 수정하고 튜닝
2001년 '애자일 선언(Agile Manifesto)'을 통해 여러 경량 방법론들이 '애자일'이라는 우산 아래 모임.
- 1990년대 후반 애자일 인기를 이끈 대표 방법론
- 5가지 가치: 의사소통, 피드백, 단순성, 용기, 존중
- 14개 원칙, 24개 실천법
- 핵심 특징: 강력한 엔지니어링 실천법 강조
- 테스트 주도 개발 (TDD)
- 지속적 통합 (CI)
- 페어 프로그래밍
- 리팩토링
- 프로젝트 관리 측면에 집중
- 30일 주기의 '스프린트(Sprint)'
- 일일 스크럼 미팅을 통한 모니터링 및 통제
- 종종 XP의 엔지니어링 실천법과 결합하여 사용
- 앨리스터 코오번(Alistair Cockburn) 개발
- 팀 규모와 오류 치명도에 따라 다른 접근법을 취하는 프레임워크 제품군
- '거주성(Habitability)' 중시 — 개발자가 견딜 수 있는 환경
- 인간의 규율 수준이 낮음을 인정, XP보다 훨씬 적은 규율로 성공할 수 있는 최소한의 프로세스 지향
- 도요타(Toyota)의 린 생산 방식에서 영감
- 메리와 톰 포펜딕 부부가 주도
- 제조업의 린 철학을 소프트웨어에 접목
- 낭비를 줄이고 가치를 극대화하는 도구와 아이디어 도입
- 유스케이스 주도적, 반복적, 아키텍처 우선
- 정해진 단일 프로세스가 아닌 '개발 케이스'를 팀이 직접 구축
- 무한한 변형 가능 — 폭포수부터 완전한 애자일까지
- 단점: 너무 유연해서 어떤 것이든 "RUP"라고 부를 수 있음
- 모든 곳에 적합하지는 않다 — 상황과 맥락을 고려해야 함
- 팀의 자발성이 가장 중요 — 원치 않는 팀에게 강요하면 근본정신에 어긋남
- 고객의 동의 필요 — 협력적 작업 방식에 고객도 참여해야 이점을 누림
- 작게 시작하라 — 규모가 작은 프로젝트부터 시작
- 멘토를 구하라 — 경험이 풍부한 멘토의 도움이 매우 중요
- 실수를 예상하라 — 도입 초기에는 많은 시행착오가 발생
"어떤 훌륭한 프로세스도 개발 팀의 역량을 대체할 수 없다. 프로세스는 사람을 통제하는 것이 아니라, 팀의 작업을 지원하는 역할을 해야 한다."
Source: Martin Fowler, "The New Methodology" (2005) NotebookLM 기반 요약 정리