← thisisyazid.com아티클 › 지속 가능하게 만들기ENBM한국어
애자일 기초

지속 가능하게 만들기: 한 번의 큰 도약 대신 작은 걸음으로

애자일 팀이 계획, 개발, 테스트를 한 번에 길게 이어 가는 방식(워터폴) 대신 짧은 단계를 반복하며 만드는 이유(반복 방식), 그리고 그것이 팀이 지치지 않고 몇 년씩 계속 일할 수 있게 해 주는 이유를 설명합니다. 읽는 데 약 10분이 걸립니다.

🏗️워터폴모든 것을 계획하고, 모든 것을 만들고, 모든 것을 테스트한 뒤 마지막에 한 번 출시합니다.
🔁반복 방식작동하는 작은 조각을 만들어 보여 주고, 배우고, 다음 조각을 더 잘 만듭니다.
🎯왜 중요한가우리가 틀렸다는 사실을 몇 주 안에, 방향을 바꾸는 비용이 아직 쌀 때 알게 됩니다.
🌱지속 가능성막판 몰아치기 없이 팀이 언제까지나 유지할 수 있는 꾸준한 속도입니다.
1부

같은 것을 만드는 두 가지 방식

카페를 연다고 생각해 보세요. 한 가지 방법은 1년 동안 완벽한 카페를 설계하고 전부 지은 다음, 문을 열고 사람들이 좋아해 주기를 바라는 것입니다. 다른 방법은 커피 수레 하나로 시작해서 사람들이 실제로 무엇을 주문하는지 보고, 좌석을 더하고, 음식을 더하며 계속 고쳐 나가는 것입니다. 둘 다 결국 카페가 됩니다. 하지만 사람들이 내 커피를 원하는지 일찍 알려 주는 것은 한쪽뿐입니다.

워터폴반복 방식
일을 나누는 방식단계별로: 계획을 전부 하고, 그다음 전부 만들고, 그다음 전부 테스트짧은 주기로: 주기마다 작은 조각 하나를 계획하고 만들고 테스트
사용자가 작동하는 것을 처음 보는 때맨 마지막, 흔히 여러 달 뒤첫 주기가 끝난 뒤, 보통 몇 주 안에
우리가 틀렸음을 알게 되는 때늦게, 예산 대부분을 이미 쓴 뒤일찍, 작은 조각 하나를 만든 뒤
변경에 드는 비용큼: 계획, 설계, 완성한 작업을 버려야 함작음: 다음 작은 조각을 조정하면 됨
진척을 재는 방법문서와 퍼센트("80% 완료했습니다")사람들이 직접 써 볼 수 있는 작동하는 제품
위험이 있는 곳마지막에 한꺼번에 쌓임모든 주기에 얇게 나뉨
시간에 따라 전달되는 작동하는 제품 워터폴에서는 마지막 출시 전까지 쓸 수 있는 것이 없습니다. 반복 방식에서는 첫 몇 주부터 쓸 수 있는 제품이 계단처럼 조금씩 늘어납니다. 시간에 따라 전달되는 작동하는 제품 시간 → ↑ 사용자 손에 있는 작동하는 제품 반복 방식: 단계마다 쓸 수 있는 결과물이 생기고 피드백도 받음 워터폴: 맨 끝까지 쓸 수 있는 것이 없음 출시 😬 프로젝트가 중간에 멈추면 반복 방식은 그때까지 끝낸 것이 모두 남습니다. 워터폴은 쓸 수 있는 것이 남지 않습니다.
두 선은 같은 곳에 도착합니다. 차이는 가는 길에 생기는 모든 것, 즉 피드백과 이른 가치, 그리고 방향을 바꿀 기회입니다.

핵심 개념: 반복 방식은 "계획이 없다"는 뜻이 아닙니다. 추측으로 모든 것을 한 번에 계획하는 대신, 실제 근거를 가지고 조금씩 자주 계획한다는 뜻입니다.

2부

큰 계획이 무너지는 이유

워터폴은 어리석은 방식이 아닙니다. 완전한 계획, 정해진 날짜, 분명한 예산이 있으니 안전하게 느껴집니다. 문제는 그 안에 숨어 있는 가정들입니다.

처음부터 무엇이 필요한지 안다고 가정합니다.무너지는 이유: 시작 시점은 우리가 가장 적게 아는 때입니다. 사람들은 실제로 손에 잡히는 것을 써 보고 나서야 자신이 정말 원하는 것을 알게 됩니다.
도중에 아무것도 바뀌지 않는다고 가정합니다.무너지는 이유: 시장, 규정, 경쟁사, 우선순위는 몇 달 사이에 모두 움직입니다. 긴 계획은 끝나기도 전에 낡아 버립니다.
품질은 마지막에 확인하면 된다고 가정합니다.무너지는 이유: 마지막에 발견한 문제가 가장 비쌉니다. 몇 달 치 다른 작업 아래에 묻혀 있고, 제대로 고칠 시간도 남아 있지 않습니다.
진실이 늦게까지 숨겨집니다.무너지는 이유: 모든 것이 "순조롭다"가 어느 날 갑자기 그렇지 않게 됩니다. 조각들을 합치기 전에는 아무것도 제대로 검증되지 않으므로 나쁜 소식이 한꺼번에 도착합니다.
모든 가치를 마지막에 몰아 둡니다.무너지는 이유: 출시일 전까지는 한 푼도 벌거나 아끼지 못합니다. 80%를 만든 시점에 프로젝트가 취소되면 조직이 얻는 효과는 0%입니다.

🚨 이것이 중요한 이유

틀렸을 때 치르는 비용은 걸음의 크기만큼 커집니다. 12개월짜리 걸음을 내디디면 잘못 든 길 하나가 12개월을 앗아 갈 수 있습니다. 2주짜리 걸음이라면 많아야 2주입니다. 가끔 틀리는 것을 막을 수는 없지만, 틀리는 비용을 싸게 만들 수는 있습니다.

공정하게 말하면: 큰 사전 계획이 맞는 경우

일이 잘 알려져 있고, 이미 여러 번 해 본 일이며, 나중에 바꾸기가 물리적으로 어렵다면(콘크리트 기초를 붓는 일, 정해진 법적 기준을 맞추는 일) 먼저 자세히 계획하는 것이 합리적입니다. 대부분의 소프트웨어와 지식 업무는 그 반대입니다. 매번 새롭고 바꾸기 쉽습니다. 작은 걸음으로 만드는 방식이 빛을 발하는 곳이 바로 여기입니다.

3부

작은 걸음으로 만들면 왜 잘되는가

짧은 주기는 매번 실제로 작동하는 작은 조각으로 끝납니다. 이 습관 하나에서 여섯 가지 이점이 나옵니다.

👂
아직 쓸모 있을 때 받는 피드백

실제 사용자가 2주 정도마다 실제 결과물에 반응합니다. 그 반응이 다음 걸음을 정합니다. 출시 뒤에 쓰는 보고서가 아닙니다.

🧯
위험이 일찍 줄어듭니다

가장 걱정되는 불확실한 부분부터 작은 실험으로 다룹니다. 안 되는 아이디어라면 10개월째가 아니라 2주째에 알게 됩니다.

💰
가치가 더 빨리 도착합니다

가장 가치 있는 조각을 먼저 만들기 때문에, 나머지를 만드는 동안 이미 효과를 내기 시작합니다.

🛑
언제든 멈출 수 있습니다

모든 걸음은 작동하는 결과물로 끝납니다. 예산이나 우선순위가 바뀌어도 그때까지 끝낸 것은 모두 남습니다.

📏
진척이 정직해집니다

진척은 슬라이드 위의 퍼센트가 아니라 오늘 작동하는 것입니다. 마지막에 놀랄 일이 없습니다.

🧠
팀이 계속 나아집니다

주기마다 조금 더 잘 일할 기회가 있습니다. 1년에 스물여섯 번의 작은 개선이 프로젝트 끝의 "교훈 정리" 회의 한 번보다 낫습니다.

같은 문제를 서로 다른 시점에 발견합니다

문제워터폴에서 발견하는 때반복 방식에서 발견하는 때
사용자의 요구를 잘못 이해했다끝 무렵 사용자 테스트에서몇 주 안에 열리는 첫 리뷰에서
기술적인 접근이 통하지 않는다몇 달 뒤 전체를 합칠 때그 부분을 처음 다루는 주기에서
일이 추정보다 크다마감이 밀릴 때한두 주기 뒤, 실제 속도를 보고
우선순위가 바뀐다변경 요청, 재계획, 지연다음 주기 전에 목록 순서를 바꿈

반복과 점진: 단어는 둘, 습관은 하나

점진적(incremental)이란 조각을 하나씩 더해 간다는 뜻입니다. 반복적(iterative)이란 이미 만든 것을 다시 다듬어 더 좋게 만든다는 뜻입니다. 좋은 팀은 둘 다 합니다. 모든 걸음이 작동하는 얇은 조각을 하나 더하고, 동시에 이미 있는 것을 다듬을 기회가 됩니다.

화가를 떠올려 보세요. 캔버스 한쪽 구석을 완벽하게 끝낸 뒤에야 나머지에 손대는 것은 점진적이기만 한 방식입니다. 전체 그림을 거칠게 스케치한 다음 여러 번에 걸쳐 세부를 더하는 것이 반복적인 방식입니다. 거친 스케치는 첫날부터 쓸모가 있습니다. 구도가 잘못되었는지 바로 볼 수 있기 때문입니다.

미니 워터폴을 조심하세요: "설계 스프린트", 그다음 "개발 스프린트", 그다음 "테스트 스프린트"는 잘게 나누었을 뿐 여전히 워터폴입니다. 모든 주기는 작동하고 실제로 쓸 수 있는 결과물로 끝나야 합니다. 일을 그렇게 자르는 방법은 슬라이싱과 사이징에서 다룹니다.

4부

지속 가능하게 만들기: 유지할 수 있는 속도

애자일 선언문의 열두 가지 원칙 중 하나는 후원자, 개발자, 사용자가 일정한 속도를 언제까지나 유지할 수 있어야 한다고 말합니다. 여기서 "지속 가능하다"는 것은 그런 뜻입니다. 느리다는 것이 아니라 오래갈 만큼 꾸준하다는 것입니다.

프로젝트 기간 동안의 업무량 워터폴 선은 오랫동안 낮게 유지되다가 마감 직전에 급격히 치솟습니다. 반복 방식 선은 처음부터 끝까지 지속 가능한 범위 안에서 꾸준합니다. 프로젝트 기간 동안의 업무량 시간 → 지속 가능한 범위 마감 워터폴: 조용한 시작, 막판 몰아치기 😵 반복 방식: 처음부터 끝까지 꾸준히 🙂 야근과 지름길, 결함은 막판 몰아치기에서 나옵니다.
워터폴에서는 예상 못 한 일들이 마지막 몇 주에 한꺼번에 몰립니다. 작은 걸음으로 일하면 그것들이 고르게 흩어져서 어느 한 주가 전부 떠안지 않아도 됩니다.

워터폴에서는 막판 몰아치기가 거의 정해져 있습니다. 예상 못 한 일은 끝에 가서 터지고 날짜는 고정되어 있으니, 더 내놓을 수 있는 것은 사람들의 저녁과 주말뿐입니다. 작은 걸음으로 일하면 뜻밖의 일을 생길 때마다 조금씩 처리합니다.

꾸준한 속도가 영웅적인 분투보다 나은 이유

지친 사람은 실수합니다.이유: 야근은 생산적으로 느껴지지만, 늘어난 시간만큼 결함도 늘고 그 결함은 나중에 더 많은 시간을 잡아먹습니다. 몰아치기가 몇 주 이어지면 팀은 평소 속도일 때보다 오히려 적게 해냅니다.
지름길은 빚이 됩니다.이유: 마감에 쫓기면 테스트를 건너뛰고 임시방편이 쌓입니다. 지름길 하나하나가 다음 변경을 더 느리게 만듭니다. 이것을 기술 부채라고 하며, 이자가 붙습니다.
품질은 걸음마다 만들어 넣습니다.이유: 작은 조각 하나하나가 완료의 정의를 충족해야 다음 조각을 시작합니다. 제품이 항상 쓸 수 있는 상태이므로 마지막에 두려운 "안정화 기간"이 없습니다.
리듬이 팀을 예측 가능하게 만듭니다.이유: 꾸준한 속도로 일하는 팀은 주기마다 비슷한 양을 끝내므로 예측을 믿을 수 있습니다. 몰아치기와 회복 사이를 오가는 팀은 아예 예측할 수 없습니다.
사람이 남습니다.이유: 번아웃은 제품을 가장 잘 아는 사람들을 떠나게 합니다. 팀을 돌보는 일은 전달 위에 덧붙이는 친절이 아닙니다. 전달이 계속 이어지게 하는 방법입니다.

유용한 테스트: 팀이 이번 주와 똑같이 앞으로 2년 동안 일할 수 있을까요? 답이 "아니요"라면 지금의 속도는 빌려 온 것이고, 이자를 붙여 갚게 됩니다.

"그런데 이런 경우는요?": 자주 나오는 반론

반론답
"예산을 승인받으려면 전체 계획이 필요합니다."계획은 세우되 알맞은 수준으로 세웁니다. 분명한 목표, 대략적인 로드맵, 예산이면 됩니다. 달라지는 점은 세부 사항을 근거가 쌓이는 대로 단계마다 정한다는 것입니다.
"반복 방식은 아키텍처나 설계가 없다는 뜻이죠."다음 몇 걸음에 필요한 만큼 설계하고 자주 다시 본다는 뜻입니다. 큰 결정도 여전히 신중하게 내립니다. 다만 더 많이 알게 된 나중에 내립니다.
"고객은 확정된 날짜를 원합니다."날짜와 예산을 고정하고 범위를 유연하게 두세요. 가장 가치 있는 조각부터 만들기 때문에, 그 날짜까지 끝낸 것이 곧 가능했던 최선의 버전입니다.
"덜 된 것을 보여 주면 프로답지 않아 보입니다."우리가 보여 주는 것은 작지만 완성된 결과물이며, 덜 된 것과는 정반대입니다. 이해관계자 대부분은 큰 약속보다 작더라도 작동하는 것을 더 좋아합니다.
"피드백을 받으려고 멈추면 느려집니다."잘못된 것을 한 번도 만들지 않는 팀이라면 그렇습니다. 대부분의 팀은 잘못된 것을 만들고, 그 사실을 늦게 알수록 훨씬 더 느려집니다.

이렇게 만들기 시작하는 법

  • 짧고 고정된 주기(1~2주)를 정하고 지킵니다
  • "작동한다"가 무슨 뜻인지 합의합니다: 공동의 완료의 정의
  • 첫 번째 일을 한 주기 안에 끝낼 수 있을 만큼 얇게 자릅니다
  • 주기가 끝나면 실제 사용자나 이해관계자에게 보여 줍니다
  • 들은 내용에 따라 계획을 바꿉니다
  • 주기마다 묻습니다: 이 속도를 언제까지나 유지할 수 있을까?
  • 반복합니다

이어서 읽기

모든 아티클 보기 →