'자동화'에 해당되는 글 1건

  1. 2009/07/17 글뻥 애자일(Agile) 하다가 외로워져버렸다....
2006년쯤인가? 2004년부터 하던 프로젝트를 온갖 서류를 통해 어렵게 끝마쳤다.
고객의 반응은 시원찮았고 미친듯히 괴로웠다.

그때... XP방법론을 바라 보았고 왠지 모를 환희에 젖어 들었다.
그러나 나는 더이상 개발 프로젝트에 투입되지 않았고 잠이 오지 않을 정도로 힘이 들었다.
그떄 본것이 CBD/XP/실용주의 등의 방법들이었다.
정보공학 방법론을 벗어난 무엇인가가 없을까 고민하던차에 본 수많은 방법들은 새로운 시야를 갖게 하였다.

2008년 여름 2년이상 손을 놓았던 개발 프로젝트에 다시 PM으로 임명되었고 소규모 팀을 꾸렸다.
우리 직원 2명과 외부인력 3명으로 5명의 작은 팀을 꾸린 우리는 Agile과 그동안 생각했던 Web-Service 모델을 만들어가기에 너무나 알맞은 인원들이었다.

우선 우리는 고객과의 담판에 나섰고 고객과 수많은 정보를 주고 받으며 새로운 방법들을 적용해 나갔다.
제일먼저 한일은 고객과의 대화에 문서를 사용하지 않는 것이었다.
물론 100% 문서를 사용하지는 않은것은 아니다.
제일 먼저 한일은 고객의 요구나 질의에 대해 "소스코드"와 "작동되는 프로그램"으로 응답하는 일이었다.

가령 "막대차트가 좋을까? 아니면 선차트가 좋을까?" 물어보면 그 2개가 모두 작동되는 프로그램을 회의가 끝나면 즉시 만들어 보여주는것 부터 시작하였다.

계약에 필요한 문서를 만들고 나서 계약이 되자 그리고 나서 진행했던 업무는 UML설계였다.
그러나, 불필요하게 Detail하게 만들지 않았다.
그냥 1에 할 수 있는 수준에서 월요일 오전에 여러 팀원들 모아놓고 만들었던 기억이 난다.
그래~ 그냥 대충 이렇게 만들자!
그것이 출발이었다.

대충 만든 설계를 반영하고 Source를 Export한뒤에 SVN에 등록하고 Hudson에 JUNIT과 Doxygen을 연동하는 일부터 시작한것이다.

매일 Batch로 작동되는 Hudson은 화요일 아침에 처참하게도 UNIT TEST 성공 0%를 보여주었고 Doxygaen에는 생성되는 문서 하나 없었던 것이다.

그러던것이 하루 이틀이 지나자 서버에 Apache Axis2로 구현된 소스들이 올라오며 하나둘씩 Sucess코드가 떨어지기 시작한것이다.

그리고 나서 목요일쯤되자 모든 코드가 Sucess상태가 되었다.
우리는 그것들을 모아 Client를 대충만들어 Interface가 원할하게 흘러 DB에 저장되는 것까지 구현한 것이다.

그리고 2주차 우리는 만들어진 설계와 코드에 덧붙이는 작업을 진행하였다.
월요일의 가장 큰 일과는 설계를 upgrade시키는 것이고 작업환경을 정비하는 일로 시작하였다.
Entity가 추가되었다면 Entity를 수정했고
Class나 Sequence가 변경되었다면 변경된 코드를 반영하였다.

기대한 대로 SVN+Hudson+Junit+Doxygen은 매우 잘 작동하였고 우리는 화요일부터 금요일 오전까지 개발에만 집중할 수 있었던 배경이기도 하다.

그렇게 작성된 코드는 에러율이 현격히 낮았다.
이미 2번이나 손을 본 코드이기 때문이다. 별도의 테스트 요원도 두지 않았다.
우리가 만든 코드는 알아서 자동으로 코드를 생성해주었고 우리는 Hudson에 그 로그를 남기어 고객에게 확인시키는 일이 전부였다.

어느덧 3개월이 흐르자 우리는 이미 맡은 프로그램의 구석구석까지 머리속에 꽤고 있었고 프로젝트도 앞당겨 마칠수 있었다.

총 Iteration은 4번에 걸쳐 이루어 졌고 설계가 많이 변경되었던 때는 우리모두 야근을 하며 밤을 지세웠으며 설계변경이 많이 없는 주에는 일찍 끝내고 휴가 가기 바빴었다.
3개월의 개발기간동안 팀원 모두 야근의 댓가로 약 7일의 휴가를 보내었고 프로젝트 종료후에도 일찍 휴가 갔으니 정말 많이 쉬었던 기억이 난다.

그러나 그러한 방법들을 새로운 프로젝트에 적용하려하니 반대자들만 많다.
Agile 경험자들이 없는 보수적인 대기업SI에서는 무리인가?
너무나 어렵고 외롭기만 한 몇주이다...
2009/07/17 02:12 2009/07/17 02:12