Agile


애자일(Agile)?

‘기민한, 민첩한’이라는 뜻으로 애자일 방법론은 빠르게 변하는 고객의 요구사항을 반영하고 수정해나가는 탄력적인 방법론을 말합니다.

불확실한 요구사항을 맞춰 나가기위해 시범적으로 작은 규모의 제품을 선보이고 빠르게 변화하는 고객의 요구사항을 반영하여 보완하는 비교적 짧은 개발 주기를 반복하여 요구사항을 맞춰 나갈 수 있습니다.


애자일 방법론 유형에는 대표적으로 3가지가 있다

XP(Extreme Programming)

XP의 5가지 가치

  • 용기 : 용기를 가지고 자신감 있게 개발 한다.
  • 단순성 : 필요한 것만 하여 단순화 한다.
  • 의사소통: 주체간의 원활한 의사소통이 가능하다.
  • 피드백 : 신속한 피드백을 할수 있다.
  • 존중 : 팀원 간의 상호 존중이 필요하다.

XP 12가지 실천사항

  • 짝 프로그래밍 : 개발자 둘이서 짝으로 코딩을 한다.
  • 공동코드 소유 : 모든 코드는 개발자들이 공동으로 소유하며 누구든 수정할 수 있다.
  • 지속적인 통합 : 매번 여러 번씩 소프트웨어를 통합하고 빌드한다.
  • 작은 릴리즈 : 작은 시스템을 먼저 만들고, 짧은 단위로 업데이트한다.
  • 메타포어 : 공통적인 이름이 체계를 갖고 공통적인 시스템 서술서를 통하여, 개발자와 고객간의 의사소통을 돕는다.
  • 계획 세우기 : 고객이 원하는 비즈니스 가치를 정의하고 개발자가 필요한 것은 무엇이며 어떤부분에서 지연될 수 있는지를 알려주어야 한다.
  • 간단한 디자인 : 요구상항에 적합하고 가장 단순화한 시스템을 설계해야 한다.
  • 리펙토링 : 프로그램의 기능을 바꾸지 않으면서 중복제거, 단순화 등을 위해 시스템을 재구성한다.
  • 코드 표준 : 효과적인 공동 작업을 위해서는 모든 코드에 대한 코딩 표준을 정의해야 한다.
  • 고객 상주 : 의사소통을 향상하기 위하여 개발자들의 질문에 즉각 대답 가능한 고객을 프로젝트에 풀타임으로 상주시켜야 한다.
  • 40시간 작업: 주 40시간 이상을 일하지 말아야한다. (효율성을 위하여)

스크럼(Scrum)

스크럼은 민첩한 소프트웨어 개발 방법 중 하나로, 소규모 팀이 작업을 관리하고 소프트웨어를 개발하는 데 사용됩니다.

이 방법론은 소프트웨어 개발 프로세스를 반복적으로 진행하며, 변화에 빠르게 대응할 수 있도록 설계되었습니다.

스크럼 주요 진행 과정

제품 백로그 -> 스프린트 -> 스프린트 계획회의 -> 스프린트 백로그 -> 일일 스크럼 회의 -> 실행 가능한 제품 개발

스크럼의 핵심개념.

  • 스프린트(Sprint): 일정 기간 동안 작업을 진행하는 주기를 의미합니다. 스프린트는 일반적으로 2주에서 4주 사이의 짧은 기간으로 설정됩니다.
  • 제품 백로그(Product Backlog): 프로젝트에 필요한 모든 작업 항목이 포함된 목록입니다. 이 목록은 우선순위에 따라 정렬되며, 스프린트 계획에 사용됩니다.
  • 스프린트 백로그(Sprint Backlog): 현재 스프린트 동안 완료해야 할 작업 항목을 담은 목록입니다.
  • 데일리 스크럼(Daily Scrum): 팀 구성원들이 매일 진행 상황을 공유하고 다음 단계의 작업을 계획하는 짧은 미팅을 의미합니다.
  • 스크럼 마스터(Scrum Master): 팀이 스크럼 프로세스를 준수하도록 도와주는 역할을 수행하는 사람입니다.
  • 제품 오너(Product Owner): 프로젝트의 비즈니스 요구사항을 이해하고 제품 백로그를 관리하는 역할을 수행하는 사람입니다.

린(LEAN)

도요타의 린 시스템 품질 기법을 소프트웨어 개발에 적용한 것, 낭비 요소를 제거하여 품질을 향상한다. JIT(just in time), 칸반(kanban)보드를 사용한다.

7가지 원칙

  • 낭비의 제거: 불필요한 코드나 기능 불분명한 요구사항 등 품질의 영향을 미치지 않는 것들을 제거한다.
  • 품질 내재화 : 개발 초기부터 품질을 향상하도록 모듈화 한다.
  • 지식의 창출 : 학습을 하고 지식을 창출한다.
  • 늦은 확정 : 중요한 문제에 대한 의사결정을 최대한 미룬다.
  • 빠른 인도 : 최대한 빨리 결과물을 인도한다.
  • 사람 존중
  • 전체 최적화 : 요구사항 수집부터 제품을 릴리스하는 시점까지 모든 프로세스를 최적화 한다.






참조

정보처리기사 시나공 (필기) 1권
https://m.blog.naver.com/wook2124/222102995070