Agile 방법론

장준휴·2023년 11월 8일
0

잡지식

목록 보기
2/4
post-thumbnail

what is Agile?

Agile이란 단어의 뜻은 명시적으로 말하면 기민한, 날렵한 이란 뜻을 가지고 있다.
그렇다면 소프트웨어 공학에서 Agile 방법론은 무엇을 뜻할까?

기존 주문 > 디자인 > 기능구현 > 테스팅 > 베포 순으로 진행되는 WaterFall 방식에서 절차에 의한 서류작업과 비용이 낭비되는 것을 발견한 여러 개발자들은 WaterFall 방식의 주기를 비교적 매우 짧게 둬서 중간중간 테스팅과 고객의 요구사항을 자주 확인하는 방식인 Agile 방법을 만들었다.

(기존 주문 > 디자인 > 기능구현 > 테스팅 > 베포) 이 순서를 Agile에서는 한 주기로 하는데, 이 한주기를 '스프린트(Sprint)'라고 한다.

주기를 짧게 하고 그만큼 고객과의 피드백, 테스팅을 많이 하기 때문에 과정이 빠르고, 유연하며 수정이 쉬워 최근 거의 모든 IT업계에서는 에자일 방식을 선호하고 있다.
(나도 이런 방식이 좋다...)


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

특징

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

장점

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

단점

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

나도 취업하면 이렇게 전통적인 개발 방식에서 벗어나 조금 더 속도감이 있는 개발 방법을 경험할 수 있겠지..?

profile
나는야 토마토

0개의 댓글