개발자 끄적끄적
애자일 개요 및 원칙 본문
<애자일 프로세스>
- 점진적이로 반복적인 개발방법(IID, Iterative and Incremental Development)
- 이터레이션(Iteration) 개발 : 1주~2주
- 설계 -> 구현 -> 테스트 -> 분석
- 점진석/반복적 개발
1. 점진적 개발 : 이전 시스템에서 새로운 요구사항을 추가하여 개발
2. 반복적 개발 : 이전 시스템을 한 번에 완전하게 개발하는 것이 아니라 반복적으로 개선하고 수정
- 시간이 지날 수록 Value delivered 는 증가, Risk는 감소
- 모든 불확실성을 프로젝트 초기에 제거하는것은 불가능하므로 불확실성을 줄이는 좋은 방법은 제품을 고객에게 보여주고 피드백을 받는 것이다
ex)
1차 이터레이션(기본 로그인 기능)
- 로그인 웹 페이지 생성
- 웹 페이지 사용자 id와 비번을 입력할 수 있는 텍스트 필드 추가
- 로그인 버튼
- 입력을 검증하는 기능 및 스타일링 없음(No CSS)
- 로그인 버튼을 누르면 환영 웹 페이지를 보여준다
2차 이터레이션(로그인 기능 개선)
- 입력 값에 대한 검증 기능 제공
- CSS 추가하여 웹페이지 스타일링
- 타당하지 않은 비번으로 입력 했을 때 오류 메시지 생성
3차 이터레이션
- 비밀번호를 잊어버렸을 때 재생성하는 기능
- Remember me 기능 추가
- 사용자가 로그인 했을 때 환영 웹페이지가 아닌 적잘한 웹 페이지로 redirect
<IID>
- 소프트웨어 개발 주기를 여러 개의 반복(Iteration)주기로 구분
- 각 반복주기에서는 요구분석, 설계, 구현 및 테스트와 같은 활동들로 구성된 소규모 프로젝트
- 각 반복주기가 종료되면 부분적으로 완성된 시스템이 산출
- 반복주기에서 산출된 시스템은 내부 개발자가 관리하는 것이며 사용자에게 외부적으로 릴리즈되는 것은 최종 반복 주기의 산출물
- 소프트웨어 개발 주기를 구성하는 각 반복 주기는 보통 1주에서 4주이며 반복마다 새로운 요구사항이 추가되어 개발(Incremental development)
- 각 반복주기에서 개발할 요구사항은 고객이 각 반복주기 시작 전에 선택하는데 일반적으로 고객에게 가장 높은 비즈니스 가치를 가져다 주는 요구사항들에 우선순위를 높게둔다
- 이러한 요구사항의 선정이 각 반복주기가 시작할 때마다 이루어지기 때문에 고객의 요구사항을 탄력적으로 처리할 수 있는 기회를 제공한다
- 일단 반복주기에 들어서 개발이 시작되면 더 이상 요구사항의 변경은 받아들이지 않는다
<애자일 선언>
- 애자일('Agile') 사전적 의미 : 민첩한, 날렵한, 기민한
- 폭포수 모형과 같이 문서중심의 매우 복잡하고 프로세스 위주의 방법론과는 대치되는 개념
- XP, Scrum과 같은 방법론이 인기를 끔
- 개인(Individual)과 상호작용(Interaction)을 더 중요시(기존이 방식 : 프로세스(Process)와 도구(Tools)보다는)
- 실제 동작하는 소프트웨어에 중점(문서화(documentation)보다는)
- 고객과의 협력(Customer Collaboration)을 매우 중요시 여긴다(계약관계(Contract Negotiation) 보다는)
- 변화(Responding to change)에 중점을 준다(계획(Plan)을 따르기 보다는)
<애자일 소프트웨어 개발 선언>
- 공정과 도구보다 개인과 상호작용을
- 포괄적인 문서보다 작동하는 소프트웨어를
- 계약 협상보다 고객과의 협력을
- 계획을 따르기 보다 변화에 대응하기를
'소프트웨어공학' 카테고리의 다른 글
RAD(Rapid Application Development), Lean Startup (0) | 2024.03.12 |
---|---|
배포 전략 (1) | 2024.03.12 |
DevOps (0) | 2024.03.12 |