CS 공부, 기타

Agile 방법론

Disciple428 2024. 7. 12. 02:32
  • 특징

고객과 개발자의 지속적인 소통 → 요구사항을 신속하게 반영

팀의 목적과 고객의 의견을 가장 높은 가치로 둠

주기적인 회의와 제품 시연

고객으로부터 즉각적인 피드백을 통한 수정, 보완 가능

 

  • 애자일 개발론의 등장 배경

폭포수(워터폴) 개발론 → 작업 절차가 한 단계씩 차례로 진행되는 가장 오래된 SW 개발론

속도가 느리고 유연하지 못하다.

요구 사항이 바뀌거나 수정하려면 다시 맨 처음부터 수정해야 하는 불편함이 있다.

 

  • 워터폴 VS 애자일

워터폴 방법론

⇒ 문서화 많음. 대응 느림. 요구사항이 디테일하고 유동성이 적은 큰 규모의 제품 프로젝트에 적합

 

애자일 방법론

⇒ 지속적으로 요구사항을 반영. 고객, 시장의 변화에 빠르게 대응해야 할 때, 요구사항이 변경되거나 문제 발생이 잦은 프로젝트에 적합

 

  • 애자일의 장단점

장점 ⇒

계획에 걸리는 시간을 최소화

반복적인 테스트로 버그를 쉽고 빠르게 개선 가능

빠르게 제품을 출시 가능

 

단점 ⇒

반복적인 유지 보수 작업이 많음

번아웃 현상이 쉽게 올 수 있음

개발 진행에 대한 정확한 이해 부족이 발생할 수 있음

 

  • 최소 기능 제품 (MVP)

고객이 원하는 제품의 최소한의 기능을 정의

최소 비용으로 빠르게 만드는 핵심 기능만을 담은 제품

수익성 판단을 위한 시간과 비용 절감 측면에서 효율적

사업 리스크 최소화

 

  • 스프린트

팀이 일정량의 작업을 완료하기 위해 정해진 짧은 기간 (주기)

기업에서는 보통 2주 정도의 기간으로 시작

스프린트 계획 회의에서 기간 동안 해야할 일들을 정리하고 달성하기 위한 방법을 회의함

 

스프린트 업무들 ⇒

제품 백로그 작성 : 의견 취합 후 업무의 우선순위를 매기는 작업

스프린트 백로그 작성 : 스프린트 내 팀원들이 해야 할 업무 리스트를 만드는 작업

데일리 스크럼 미팅 : 매일 진행한 업무를 보고하고 공유하는 작업

개발 및 테스트

스프린트 리뷰 및 회고 : 결과물을 통해 장단점을 분석하고 더 나은 방향으로 개선하는 작업

 

  • 테스트 주도적 개발 = TDD

모든 것을 만들고 예측하기에는 시간이 부족함

실제 필요한 기능만 만들고 그 기능이 제대로 동작하는 지 코드 기반으로 테스트

잘 동작하는 것만 확인되면 코드 리팩토링 및 모듈화

 

  • 데브옵스 = Dev + Ops

개발 + 운영의 합성어

새로운 SW 기능 개선, 버그 수정 시 바로 배포함으로써 빠른 피드백 가능

지속적 통합 및 연속 배포 (CI / CD) 구축