본문 바로가기
Software Engineering

애자일(Agile) 방법론

by 차가운개발 2024. 10. 23.

 

애자일은 기민함, 날렵함이라는 뜻으로 좋은 것을 빠르게 취하고 낭비 없게 만드는 다양한 방법론을 통칭해 일컫는 말이다.

앞을 예측하며 개발하지 않고, 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해나가는 프로세스 모델 방식이다.

 

ㅇ 진행과정

계획 > 설계(디자인) > 개발(발전) > 테스트 > 검토(피드백)의 순서로 반복적으로 진행된다. 진행 후 분석, 시험, 피드백을 통해 개선해나가는 진행 모델이다.

 

 

  • 계획 및 분석
    고객가 사용자가 원하는 바를 파악하여 타당성을 조사하고 SW 기능과 제약조건을 정의하는 명세서 작성, 대상이 되는 문제 영역과 사용자가 원하는 task를 이해하는 단계
  • 설계(디자인)
    기획의도와 맞는 설계 및 디자인 추가 및 수정하는 단계
  • 개발(발전)
    설계 단계에서 만들어진 설계서를 바탕으로 프로그램을 작성, 코딩, 디버깅, 단위/통합 테스트 수행
  • 테스트
    발생 가능한 실행 프로그램 오류를 발견, 수정하는 단계
  • 검토(피드백)
    기획의도를 파악하고 시험결과와 기획에 따라 수정할 부분을 제시하는 단계

 

ㅇ 특징

  • 고객과 개발자의 지속적인 소통을 통하여 변화하는 요구사항을 신속하게 수용한다.
  • 개발자 개인의 가치보다는 팀의 목적을 우선시하며 고객의 의견을 가장 우선시한다.
  • 팀원들과의 주기적인 회의 및 제품 시현을 통한 오류 방지를 점검한다.
  • 진행하면서 프로그램을 시행해보고 고객으로부터 피드백을 받는다.
  • 내부 구조 형성을 통한 비용절감에 힘쓰는 동시에 품질향상을 위해 노력한다.

 

ㅇ 장단점

장점

  • 프로젝트 계획에 걸리는 시간을 최소화한다.
  • 점진적으로 테스트할 수 있어 버그를 쉽고 빠르게 발견한다.
  • 계획 혹은 기능에 대한 수정과 변경에 유연한다.
  • 요구사항에 대한 즉각적인 피드백에 유연하며 프로토타입 모델을 빠르게 출시할 수 있다.
  • 빠듯한 기한의 프로젝트를 빠르게 출시할 수 있다.

 

단점

  • 확정되지 않은 계획 및 요구사항으로 인한 반복적인 유지보수 작업이 많다
  • 요구사항 및 계획이 크게 변경될 경우 모델이 무너질 수 있다.
  • 개인이 아닌 팀이 중심이 되다 보니 공통으로 해야하는 작업이 많을 수 있다(회의, 로그 등)
  • 반복적인 업무로 속도는 빠를 수 있으나 미흡한 기능에 대한 대처가 필요하다.
  • 확정되지 않은 계획으로 개발 진행 시 이해하지 못하고 진행하는 부분이 있을 수 있다.

 

ㅇ Scrum

스크럼은 프로젝트 관리를 위한 상호, 점진적 개발방법론이며 고객의 요구사항을 충족시키는데 초점을 맞추기 위해서 짧은 주기로 점진적이며 경험적으로 시스템을 지속해서 개발하는 관리 기법(프레임워크)이다.

 

  • 용기
    팀의 목표가 올바른 길로 가기위해 팀원 간의 갈등을 두려워하지 않으며 도전을 위한 용기를 가진다.
  • 집중
    팀의 목표와 약속을 지키기 위해 모든 노력과 기술은 성공을 위해 집중하여야 한다.
  • 확약
    팀의 목표 달성을 위해 개인이 공약한 목표 달성을 위해 팀에 헌신하며 약속을 지켜야 한다.
  • 존중
    자신과 팀원에게 경의를 표해야 한다. 개인의 다름을 이해한다.
  • 정직
    자신에게 불리하더라도 팀을 위해 프로젝트에 대한 모든 내용은 투명하게 공개한다.

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

Third Party  (2) 2024.10.23
DevOps  (1) 2024.10.23
OOP 객체 지향 프로그래밍(Object-Oriented Programming)  (1) 2024.10.23
TDD(Test-Driven Development)  (0) 2024.10.23
클린코드 & 시큐어 코드 & 리팩토링  (0) 2024.10.23