애자일이라고 쓰고 노가리라고 말한다.

eland·2024년 7월 12일

에자일 vs 폭포수 모델





요즘 소프트웨어 공학을 배우거나 프로젝트를 진행할 때 하나 같이 많이들 하는 얘기가 있다.

에자일 방식으로 진행하자. 데일리 스크럼을 통해 계획을 세우자. 칸반 보드를 사용하자 등등...

하지만 사람들은 에자일이 좋다고해서 쓸뿐이지 실상은 아침에 모여 커피를 마시며 놀기만 하고 있는 자신을 돌아볼 수 있을 것이다.

그럼 사람들이 말로만 에자일 에자일 하던 에자일 방법론에 대해 한번 제대로 알아보자.

그 전에 우선 소프트웨어 개발방법론 중 하나인 폭포수 모델(WaterFall Model)을 간단히 먼저 보고 넘어가도록 하자.




폭포수 모델 (WaterFall Model)

폭포라고 해서 왼쪽 폭포 같은 폭포는 아니고 개발 과정이 마치 폭포처럼 하나하나 내려간다고 해서 폭포수 이름이라고 불리는 모델 방법론이다.

1970년에 윈스턴 로이스(Winston W. Royce)가 논문에서 소개한 개념으로

각 단계를 명확히하여 프로젝트를 진행할 수 있지만 이전 단계과 완료 되지않으면 진행되지 않기 때문에 병목현상이 발생할 수 있고,
역으로 거슬러 올라가는 과정이 허락되지 않았기에 여러 불편함이 발생할 수 있는 방법론이다.

그리하여 폭포수 모델 보다는 유연하고 반복적인 방법론인 에자일 방법론으로 점차 대체되고 있는 추세이다.




에자일 모델 (Agile Model)

소프트웨어의 모든 것은 변한다.

요구사항은 변한다. 설계도 변한다. 비즈니스도 변한다.

기술도 변한다. 팀도 변한다. 팀 구성원도 변한다.

변화는 반드시 일어나기 때문에, 문제가 되는 것은 변화가 아니다.

그 보다는 변화를 극복하지 못하는 우리의 무능력이 문제다.

-자바 테스트 프레임워크인 JUnit으로 유명한 켄트 벡(Kent Beck) 저서 <익스트림 프로그래밍>

사진이 마치 이런것도 넌 못하냐? 라고 하는 것 같다.

에자일은 일정한 주기를 가지고 개발을 진행하며 클라이언트의 요구사항, 변화된 환경에 맞게 코드를 수정,개발해 나가는 탄력적인 방법론이다.

하지만 요즘엔 에자일 방법론이라고 하기에는 정확히 이를 지키지 않고, 그저 설계를 대충한 다음 중간 과정에서 끊임 없이 설계를 수정하는 것을 에자일 방법론이라고 하는 사람들도 많이 존재한다.


오죽하면 이런 상황을 비꼬는 말도 존재한다.

요즘 프로젝트를 진행하다보면 높은 확률로 애자일 방법론으로 진행 할 건데, 할 수 있겠습니까? 라는 말을 들을 수 있다.
그리고 이것은 우리는 네가 개발할때 수시로 아무때나 설계와 스펙 변경을 끝도 없이 요구 할 작정인데 거기에 불평불만 없이 응해 줄 수 있습니까? 이라는 말을 돌려 말하는 것이다.


내가 생각하는 애자일의 핵심 단어는 우선순위라고 생각한다.

애자일을 복잡하게 생각하지말고 간단하게 생각해보면 소규모의 팀을 꾸려 중요한 과제부터 우선적으로 추진하고 실행에 옮겨 외부 피드백을 계속적으로 반영하여 최종 결과를 만드는 조직의 형태를 말하는 것이라고 생각한다.

물론 위에서 말한것 처럼 외부 피드백을 계속 반영하기에는 어려움이 있으므로 스프린트 기간을 정해 한정된 시간에만 피드백을 수용하거나 너무 프로젝트에서 벗어난 행동, 즉 노가리시간이 되지않도록 프로젝트에 집중하는 자세가 필요하다고 생각한다.



남을 따라하려기 보다는 나한테 맞는 개발 방법을 찾아나가자. 에자일 이라고 무조건 좋은건 아니다.

profile
더 이상 핑계를 댈 때가 아니다.

0개의 댓글