애자일 경험담 1

Developer 2009/08/07 23:53

수행경험을 언젠가는 정리하려 마음 먹고 있었지만 시간이 나지 않아 정리하지 못하였다.
휴가 기간아니면 언제 또 하랴?

애자일이란 것은 어떤 특정한 방법을 이야기하는 것이 아니다. 흔히 많은 사람들이 애자일하면 XP를 연상하지만 애자일은 기존의 WBS Driven / Waterfall 로 대표되는 정보공학 방법들의 문제를 해결하기 위해 만들어진 수많은 방법들을 통칭하며 한번에 긴시간과 많은 자원을 가지고 문제를 해결하기보다는 짧은 시간과 작은 자원을 가지고 반복수행으로 문제를 해결한다는 특징을 지니고 있다.

혹시 기존의 방법들로 해서 이런 문제를 겪어 보지는 못하였는가?

1. 납기일 전 철야
2. 철야에도 불구하고 납기일 지연
3. 지연에 따른 비난과 스트레스가 개발자에게 향하여 에너지 소진
4. 결국 납기된 솔루션은 고객의 요구를 충족하지 못함

이것이 바로 그 유명하고 대한민국 99%의 개발자들이 겪고 있고 특히 SI업계의 가장큰 문제점이다. 이러한 문제를 해결하기위해 출현한 개념이 바로 "추상화"이다.
대한민국 개발자중 대부분이 알고 있어야 하는 개념인 추상화.
어디서 많이 들어보지 않았는가? 바로 JAVA나 .NET에 빠지지 않고 등장하는 개념이다.

예를 들자면 처음 영업단계에서 고객의 요구사항은 항상 이런식이다.

어~ 그거 간단하게 이렇게 이렇게해서 요렇게만 구현되면돼

그리고 개발초기에는

아~ 그거 이렇게 이렇게 해줘

그리고 복잡도가 조금 올라가는 개발중간에는

아니!? 너희가 전문가라메? 전문가면 전문가 답게 너희가 컨설팅을 해줘야지!!!!

그리고 개발종료시점에는

여기서 조금 갈린다.
능력있는 고객:
- 일정지연되면 안되니까 빨리 마무리 하고 시바 근데 우리 애들중에 이거 받아서 유지보수 할 수 있는 애가 없는데.. 너네가 무상으로 3개월동안 유지보수해
능력없는 고객:
- 배째. 누가 이런거 만들어 달랬어?

이바닥 SI업계가 처한 현실이다.
어렵게 어렵게 돈 받아 내더라도 고객도 나도 상처뿐인 인연으로 끝마치는 아주 이상한 관계를 지난 10여년 동안 지속했었다.

각설하고 위의 고객과 나의 대화를 차분히 상펴보면 바로 추상화 레벨의 차이가 있다.
처음에는 아주 추상적인 그림으로 불명확한 그림을 이야기한다.
유명한 아파치 헬기로 예를 들면 다음과 같다.
먼저 컨설던트 또는 기획자들이 그린 아파치는 이러하다.

resize_image
그리고 나서 사업수행계획서에 나오는 아파치는 이러하다.
사용자 삽입 이미지
그리고 분석설계를 하면 이렇게 바뀐다.
resize_image
이제 개발자의 손에 넘겨지고 통합단계 이전의 산출물들은 다음과 같이 만들어 진다.
resize_image
사용자 삽입 이미지
resize_image
이제 통합이다. 다음은 통합되고 나서의 모습이다!
resize_image
테스트과정으로 넘어가면 고객의 요구사항이 쏟아지기 시작하고 거의는 겆잡을 수 없을 정도가 된다.
결국 껴서 팔기 하게된다. 예비부품 몇개 더 주고 도색도 좀 참하게 바꾸고...
resize_image
결국은 최종 프로젝트 종료때는 이렇게 변해 있다.
resize_image

어떤가? 처음에는 아파치헬기라는 것부터 시작했다. 그러다가 헬리콥터라고 하는 추상화가 높은 레벨에서 분석 설계가 끝난뒤에 어느정도 디테일한 부분이 추가되기 시작했고 실재 구현은 RC헬리콥터인 아파치로 구현되었다. 그러면서 테스트를 거치며 하나 둘씩 추가기능이나 옵션들이 늘어나고 최종에는 무지많은 옵션을 껴서 결국 종료되는 형태이다.

다시말해 추상화의 레벨이 높은 곳에서 낮은곳으로 흐른 것이다.
애자일은 이러한 추상화의 레벨을 사용자와 개발자의 수준을 동기화 시키기위한 목적으로 고안된 방법론으로 최종의 목표는 커뮤니케이션을 더 잘하는 방법이다.
다음에는 조금 더 구체적인 방법들을 가지고 이야기해보자.
 

2009/08/07 23:53 2009/08/07 23:53

트랙백 주소 :: http://www.wolfpack.pe.kr/trackback/351