저도 애자일 초보입니다^^ 그래도 여긴 초보자를 위한 공간이니 제가 느낀 애자일이란걸 말씀드려 보겠습니다^^;; 잘못된 지식을 전달하면 고수 분들께서 정정을 해 주실꺼라 믿구요^^
일단 애자일에서 중요한것은 애자일이 추구하는 가치가 가장 중요한것이 아닐까 생각합니다. 익스트림 프로그래밍 을 보면 xp가 추구하는 가치가 있고 그를 기반으로해서 원칙들을 세워 놓았습니다. 여기까지는 별다른 단점이란것을 발견하기가 어려운것 같습니다.
그리고 그 다음이 가치와 원칙위에 세워진 실천법들이있는데 이것들이 이제 여러가지 상황에서 단점도 있고 장점도 있고 하는것 같습니다. 하지만 애자일의 실천법들이 놀랍게도 서로 상호 보완적인 면들이 많이 있다고 느꼈습니다. 예를들어 리팩토링을 적용 할 때 리팩토링만 적용하면 어려움들이 많이 있습니다 기존코드를 망가트릴 위험도있고 어느부분에 영향을 가하는지 판단하기도 어렵고 또 가끔 언제 적용해야 할지도 어렵고 그렇습니다.
하지만 테스드 주도를 도입하면서 리팩토링하면서 얻게되는 어려움들을 완화시켜 줍니다 테스트가 있음으로 해서 좀 더 안전하게 리팩토링을 할 수 있고 바로 어디가 잘못되는지 알 수있고 그럼으로 어떤리팩토링을 적용할지 고민 하기보다 적용해 보고 좋은것을 선택 할 수 있게 합니다. 테스트 코드가 있으니 언제든지 이전 테스트가 통과하던 코드로 되돌릴수 있습니다. 이건 빠른 실수를 통해서 배운다는 애자일의 원칙에 기반한 것 같습니다
그렇지만 테스트 주도로 개발하는것도 쉽지만은 않은것 같습니다. 수련하는것이 꽤나 고통의 시간이더라구요 하지만 또 짝프로그래밍을 통해서 이런것들을 좀 더 완화시키게 됩니다. 이것은 의사소통을 중요시하는 애자일의 가치와도 연관이 있는것 같습니다. 여기에 지속적인 빌드나 빠른 릴리즈 등등이 여러가지 가치들을 위해 존재합니다^^
그렇지만 또 짝프로그래밍을 적용하는데에도 여러가지 상황에따라 어려움이 생기기도 합니다. 개발자들이 싫어 한다거나 기타 등등... 하지만 애자일은 완벽을 추구한다기보다는 조금씩이나마 끊임없이 개선 한다는데 있고 또 빠른 피드백에 있습니다 인간이 완벽하지 못하다는걸 인정하는것처럼 애자일 실천법도 완벽하지 않다는걸 인정하고 적용해보고 빠른 피드백을 통해서 맞는것은 개속 적용시키고 발전시키고 맞지않는것은 피드백을통해 왜 맞지 않는지를 찾아내어서 개선을 시키는것이 애자일이 추구하는 지속적인 개선 인것 같습니다.
제가 이야기한것은 익스트림프로그래밍위주로 말씀을 드린것 같네요^^
스크럼 실천법들도 데일리 스텐드업 미팅이나 정보 방열판, 칸반, 소멸차트 등등 여러가지 것들이 애자일의 팀간 의사소통과 협력을 극대화 하자는 애자일의 가치에 기반을 둔 것이라고 생각합니다.
하지만 이것들 역시 상황에 맞게 적용해보고 빠른 피드백을 통해서 개선해 나가고 개선점을 찾는 것이 중요 하다고 할 수있습니다.
그러면 여기까지오면 이런 생각이 듭니다 "뭐야 이거 무조건 해보고 알아서 개선하라는 거야??" 라는 생각이 드는데 ㅎㅎ 그래도 여러 실천법들이 여태까지 가치와 원칙들을 토대로 만들어지고 실천되어지고 개선되어왔고 또 계속 개선되어 왔기때문에 그만큼 적용해볼 만 하다고 할 수 있습니다. 이제 중요한것은 사례가 필요한것 같습니다 여러가지 사례들을 보고 메일링 리스트를 통해 피드백을 얻고 정보를 공유하고 또 장단점은 애자일의 책들을 보면 어느정도 아이게 좀 어렵겟네?? 라는 생각이 드는데 그것도 적용해봐야 알수 있는것 같습니다. 그래서 메일링 리스트에 여러 적용사례들에 대한 토론들도보고 적용도 실제 해봐야 하기 때문에 어떤점이 단점이다라고 딱 잘라 말하기가 어려운것 같습니다.
여기까지가 저의 두서없는 생각 이었습니다. 제가 아직 배우는 입장이라 문장들이 전부 확신이 아닌 추측들이라서 죄송합니다^^
다른 분들이 더 내용 추가해 주시고 정정도 해 주시리라 믿습니다
ps. 버스안에서 아이폰으로 쓰는 장문의 글쓰기는 참 힘드네요^^;;;
나의 iPhone에서 보냄
2010. 7. 27. 오후 3:39 ddd <
ompa...@hanmail.net> 작성:
> --
> Google 그룹스 'Agile Beginners' Q&A' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> 이 그룹에 게시하려면
ab...@googlegroups.com(으)로 이메일을 보내세요.
> 그룹에서 탈퇴하려면
abqna+un...@googlegroups.com로 이메일을 보내주세요.
> 더 많은 옵션을 보려면
http://groups.google.com/group/abqna?hl=ko에서 그룹을 방문하세요.
>