Agile 개요, 왜 필요한가?
AI 서비스가 어떻게 준비되고, 그게 사용자에게 제공되는지 알아야 한다.
Agile 개요, 왜 필요한가?
AI 서비스가 어떻게 준비되고, 그게 사용자에게 제공되는지 알아야 한다.
소프트웨어는 결국 이해관계자에게 필요한 기능과 가치를 제공해야 한다. 그냥 기술을 구현하는 것에서 끝나는 게 아니라, 누구의 어떤 문제를 해결하는지가 먼저 잡혀 있어야 한다.
1. AI 서비스와 Agile
중요한 것은 이미 데이터에 다 있다. 근데 데이터가 각각 떨어져 있기만 하면 의미를 찾기 어렵다.
A 업무 데이터
↓
B 업무 데이터
↓
C 업무 데이터
↓
패턴 분석과 예측
우리가 만들어야 할 것은 단순한 AI 모델이 아니라, 실제 업무와 연결되어 동작하는 AI 프로그램이다.
서비스에 따라 생성형 AI와 예측형 AI를 따로 사용하거나 함께 사용할 수 있다. 다만 시장과 서비스마다 필요한 AI의 형태는 다르다.
- 생성형 AI
- 예측형 AI
2. Agile 방법론
Agile이 필요한 이유
- 시장과 고객 요구가 빠르게 변하기 때문에 초기에 요구사항을 100% 확정하기 어렵다.
- Waterfall은 후반 단계에서 결함이나 변경 사항을 발견하면 수정 비용이 매우 커진다.
- 짧은 주기로 동작하는 제품을 검증하면서 리스크를 조기에 낮출 필요가 있다.
- 고객과 이해관계자의 피드백을 개발 중간에도 계속 반영할 수 있어야 한다.
변화하는 요구사항을 짧은 사이클 안에서 반영하는 것이 Agile 방법론이다.
금융이나 제조처럼 초기에 분석과 검증을 충분히 끝내야 하는 분야에서는 모든 작업에 Agile이 적합한 것은 아니다. 구현 도중 계속 요구사항이 바뀌면 오히려 비효율적일 수 있기 때문이다.
Agile이 잘 맞는 상황
| 상황 | 설명 |
|---|---|
| 요구사항 변동성이 큼 | 시장과 고객 요구가 계속 바뀌는 신규 서비스, 스타트업형 프로젝트 |
| 빠른 피드백이 중요 | 출시 후 사용자 반응을 보며 방향을 조정해야 하는 제품 |
| 점진적 가치 전달이 가능 | 기능을 작은 단위로 나누어 순차적으로 릴리즈할 수 있는 구조 |
| 협업 밀도가 높은 소규모 팀 | PO와 개발팀이 계속 소통할 수 있는 환경 |
Agile을 시작하기 전에 다음 내용을 먼저 정해야 한다.
어떤 이해관계자에게 어떤 가치를 제공할 것인가?
어떤 인력이, 어느 정도의 시간 안에 구현할 것인가?
방법론이 없으면 일정과 우선순위를 관리하기 어렵다. 업무와 개발 경험도 기본적인 셋업이 잘 이루어져야 한다.
특히 AI 서비스는 이해관계자에게 어떤 가치를 줄 것인지가 중요하다.
- Pain Point를 먼저 정확하게 정의해야 한다.
- 이미 잘 돌아가는 업무를 굳이 건드릴 필요는 없다. 다만 해결해야 할 Pain Point가 무엇인지는 분명해야 한다.
Waterfall과 Agile 비교
| 구분 | Waterfall | Agile |
|---|---|---|
| 개발 방식 | 설계, 개발, 테스트를 순차적으로 진행 | 짧은 Sprint 단위로 반복적, 점진적으로 진행 |
| 요구사항 | 초기에 상세히 확정하고 변경을 최소화 | 지속적으로 수집하고 Backlog의 우선순위를 조정 |
| 고객 피드백 | 프로젝트 종료 시점에 주로 확인 | 매 Sprint Review에서 확인 |
| 산출물 확인 시점 | 최종 단계에서 통합 결과물 확인 | 매 Sprint에서 동작하는 Increment 확인 |
| 변경 대응 | 변경 비용이 크고 절차가 무거움 | 변경을 전제로 유연하게 재계획 |
| 팀 구조 | 역할별 분업, 문서 기반 전달 | 교차기능팀, 상시 협업, 짧은 피드백 루프 |
3. 핵심 단어 정의
Agile 기본 용어
| 단어 | 쉬운 정의 | 간단한 예시 |
|---|---|---|
| Agile | 완성된 결과물을 한 번에 만드는 것이 아니라, 작은 단위로 만들고 피드백을 반영하며 반복적으로 개선하는 방법론 | 로그인 기능을 먼저 완성하고 사용자 피드백을 받은 뒤 추천 기능 추가 |
| Waterfall | 요구사항 분석, 설계, 개발, 테스트를 정해진 순서대로 진행하는 방법론 | 전체 요구사항과 설계를 확정한 뒤 개발 시작 |
| 이해관계자, Stakeholder | 서비스의 개발이나 사용 결과에 영향을 주거나 영향을 받는 사람과 조직 | 사용자, 고객사, 운영자, 개발팀 |
| Pain Point | 사용자가 현재 업무나 서비스를 이용하면서 겪는 구체적인 불편함과 문제 | 교육생마다 어떤 강의를 추천해야 하는지 판단하기 어려움 |
| MVP | 사용자에게 핵심 가치를 전달할 수 있는 최소한의 기능으로 만든 제품 | 로그인, 상품 조회, 신청 기능만 먼저 구현 |
| MSA | 하나의 큰 애플리케이션을 역할별로 작은 서비스로 나누어 개발하고 운영하는 구조 | 사용자 서비스, 결제 서비스, 추천 서비스를 각각 분리 |
4. Agile 도입 순서
처음부터 모든 기능을 만들려고 하면 안 된다. 먼저 사용자에게 핵심 가치를 전달할 수 있는 MVP를 만들어야 한다.
| 단계 | 해야 할 일 |
|---|---|
| 1. 현황 진단 | 기존 프로세스와 조직 문화를 점검하고 병목 구간을 찾는다. |
| 2. 파일럿팀 선정 | 자발적으로 참여할 의사가 있는 1~2개의 소규모 팀부터 시작한다. |
| 3. Sprint 0 준비 | Backlog 초안을 만들고, 역할과 Definition of Done을 합의한다. |
| 4. 첫 Sprint 실행 | 1~2주의 짧은 Sprint를 실제로 운영하고 Retrospective에서 바로 보정한다. |
| 5. 확산과 정착 | 성공 사례를 공유하고 다른 팀으로 점진적으로 확산한다. |
단계별 체크리스트
| Sprint 0 이전 | Sprint 0 | 첫 Sprint 종료 후 |
|---|---|---|
| PO, SM, Dev 역할을 명확히 정했는가? | Sprint Goal을 한 문장으로 정의했는가? | Retrospective를 진행하고 다음에 개선할 일을 정했는가? |
| Definition of Done 초안을 팀과 합의했는가? | Product Backlog에 최소 10~15개 항목을 확보했는가? | 팀이 완료한 작업량을 기록했는가? |
| Sprint Board를 준비했는가? | Sprint Backlog를 Task 단위로 구성했는가? | 개선 사항을 다음 Sprint 계획에 반영했는가? |
5. Agile 공정, Scrum이란?
Scrum을 처음 들으면 날마다 회의하면서 머리를 싸매야 하는 것으로 느껴질 수 있다. 근데 핵심은 복잡하지 않다.
필요한 기능과 문제를 짧게 공유하고, 팀이 논의하면서 방향을 맞춰가는 것
다만 Scrum 회의는 그냥 자유롭게 이야기하는 시간이 아니다. 역할, 시간, 확인할 내용이 정해져 있다.
Scrum의 역할
| 역할 | 담당 업무 |
|---|---|
| Product Owner, PO | Product Backlog 관리, 우선순위 결정, 제품 가치 극대화 |
| Scrum Master, SM | Scrum 프로세스 촉진, 장애물 제거, 팀 보호 |
| Development Team | 기능 설계, 구현, 테스트를 수행하고 Increment 완성 |
Sprint 프로세스
Sprint Planning
↓
Daily Scrum
↓
Sprint Review
↓
Retrospective
↓
다음 Sprint에 개선 사항 반영
Scrum 산출물
| 산출물 | 의미 |
|---|---|
| Product Backlog | 제품에 필요한 모든 요구사항을 우선순위에 따라 정리한 목록이다. PO가 관리하며 계속 다듬는다. |
| Sprint Backlog | 이번 Sprint에서 완료하기로 선택한 Backlog 항목과 이를 구현하기 위한 Task 계획이다. |
| Increment | Sprint 종료 시점까지 완료된 Backlog 항목의 합이다. Done 기준을 충족해야 한다. |
Definition of Done, 완료의 정의
Definition of Done은 Increment가 완료된 것으로 인정받기 위한 팀 공통 기준이다. 팀별 모의 프로젝트에서도 실습을 시작하기 전에 먼저 합의해야 한다.
이벤트별 실전 진행 가이드
| 이벤트 | 권장 소요 시간 | 참석자 | 핵심 안건 |
|---|---|---|---|
| Sprint Planning | 2시간, 2주 Sprint 기준 | 전체 팀 | Sprint Goal 합의, Backlog 선택, Task 분할 |
| Daily Scrum | 15분 | Development Team, Scrum Master | 어제 한 일, 오늘 할 일, 장애물 공유 |
| Sprint Review | 1시간 | 전체 팀, 이해관계자 | 동작하는 결과물 Demo, 피드백 수집 |
| Retrospective | 45분 | 전체 팀 | Keep, Problem, Try 회고 |
회의 시간을 정하고 지키는 것이 중요하다. 논의가 길어지면 별도 회의로 분리한다.
6. 실행 시나리오, 2주 Sprint 캘린더 예시
| 기간 | 진행 내용 |
|---|---|
| Day 1 | Sprint Goal 설정, Backlog에서 Task 선정, 담당자와 우선순위 결정 |
| Day 2~8 | Task 개발, Daily Scrum, 장애물 공유, 필요한 경우 Backlog 정리 |
| Day 9 | 개발 마무리, 테스트, 오류 수정, Sprint Review 준비 |
| Day 10 | Sprint Review, 결과물 Demo, Retrospective, 다음 Sprint의 개선 항목 결정 |
핵심은 2주 동안 개발만 진행하는 것이 아니다. 계획 → 개발과 점검 → 결과 공유 → 회고와 개선의 흐름을 반복하는 것이다.
핵심 정리
Agile에서 가장 중요한 것은 회의 횟수나 도구가 아니다. 누구에게 어떤 가치를 전달할 것인지 정의하고, 작은 결과물을 빠르게 검증하는 것이다.
가치 정의
↓
MVP 선정
↓
짧은 Sprint 실행
↓
동작하는 결과물 확인
↓
피드백과 개선
COMMENTS
GitHub 계정으로 로그인하여 댓글을 남길 수 있습니다. 댓글은 GitHub Discussions에 공개 저장되며, 작성 내용과 GitHub 프로필 정보가 다른 방문자에게 보일 수 있습니다.