본문 바로가기
Software Engineering

Agile

by orioncsy 2023. 4. 11.

Agile

개념

등장 배경

  • 계획 중심의 소프트웨어 개발
  • 소프트웨어 사용 대상이 일반 대중으로 넘어가고 비즈니스 수명이 짧고 개발 불확실성 증가

새로운 개발 방법 등장

  • 개발의 불확실성이 높아져 기존 계획 중심 개발보다 규칙을 적게 만들고 쉽게 대응 가능하도록 개발
  • 개발을 시작하고 수정해 나가는 방식으로 개발

Agile 등장

  • 협력과 피드백을 중심으로 개발

협력

  • 협력을 통해 잘 개발된 코드를 공유하여 모두가 빠르게 개발
  • 잘못된 코드를 협력을 통해 빠르게 발견

피드백

  • 내부적으로 내가 작성한 코드를 확인하고 외부적으로 고객이나 사용자가 사용한 결과를 통해 학습

불확실성

  • 개발의 불확실성은 개발 과정에서 의도한 결과와 다른 상황을 의미
  • 전통적인 개발 방식은 개발의 불확실성에 대해 요구 분석 단계에서 모든 요구 사항을 정확히 전달하는 것이 원칙
  • 전통적인 개발 방식의 한계를 극복하기 위해 애자일 방식은 개발 과정에서 변경 사항을 유연하게 대응

Agile 특징과 진행 방법

특징

  • 개발자와 고객 사이의 지속적인 커뮤니케이션으로 변화하는 요구사항을 수용
  • 고객의 가치를 우선하고 개발자 개인보다 팀의 목표 우선
  • 주기적인 미팅을 통해 프로젝트 점검
  • 주기적으로 고객으로부터 피드백
  • 품질 향상과 간단한 내부 구조로 비용 절감

스크럼

  • 애자일을 통해 가장 많이 사용하는 개발 방법론
  • 애자일을 수행하기 위한 규칙과 팀 역할을 정의하는 실행 가능한 프레임워크
  • 1-4주 정도의 스프린트 단위로 작업을 진행

진행 방법

  • 제품 기능 목록 작성
    • 우선순위를 가진 사용자 요구 사항 정의서
    • 개발 중 수정 가능하지만 주기가 끝날 때까지 수정하지 않는 것이 원칙
  • 스프린트 backlog
    • 각각의 목표에 도달하기 위한 작업 목록
    • 구현 내용, 작업자, 예상 작업 시간
  • 스프린트
    • 작은 단위의 개발 업무를 단기간에 개발
    • 보통 2주-4주 정도의 주기가 결정되고 목표와 내용이 팀원들 동의 없이 수정되지 않는 것이 원칙
  • 일일 스크럼회의
    • 모든 팀원이 참석하고 짧게 진행 상황을 점검
    • 완료된 세부 작업 목록을 스프린트 현황판에 업데이트
  • 제품 완성 및 스프린트 검토 회의
    • 모든 스프린트 주기가 끝나면 최종 제품을 고객에게 시연하기 위한 스프린트 검토
    • 개선점과 품질 검토
  • 스프린트 회고
    • 스프린트에서 수행한 활동과 개발한 내용을 살펴 개선점 검토

스크럼 장단점

장점

  • 스프린트마다 생산되는 제품을 통해 사용자의 피드백을 받을 수 있다.
  • 회의를 통해 신속한 협력과 조율 가능
  • 개인의 일정을 발표하면서 업무 집중
  • 프로젝트 진행 현황을 통해 목표와 결과 추정이 빠르게 가능하고 변화 시도가 용이

단점

  • 추가 작업이 필요(스프린트마다 테스트 제품 생산)
  • 15분이라는 회의 시간을 지키기 어려움
  • 스크럼은 프로젝트 관리에 중심을 두기 때문에 품질 평가는 약하다.

Reference

https://gyoogle.dev/blog/computer-science/software-engineering/Agile.html

'Software Engineering' 카테고리의 다른 글

CSR & SSR  (0) 2023.04.20
Logging level  (0) 2023.04.19
3rd Party  (0) 2023.04.16
MSA  (0) 2023.04.15
DevOps  (0) 2023.04.14