[Info]Tags categorized posts and contents patterns..

[AJAX] Ajax Code E xamples.. [Book] About the book.. [CSS] CSS Code E xamples.. [DB] Sql Code E xamples.. [DEV] All development stor...

레이블이 XP인 게시물을 표시합니다. 모든 게시물 표시
레이블이 XP인 게시물을 표시합니다. 모든 게시물 표시

2016년 3월 2일 수요일

[Book] 엔터프라이즈급 애자일 방법론..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

엔터프라이즈급 애자일 방법론 - 6점
딘 레핑웰 지음, 김택구 외 옮김/에이콘출판

애자일에 대한 책은 이제는 꽤 충분한 상태까지 온 것 같습니다. 애자일은 개념적으로나 의도, 방법적인 면에서는 크게 공감하고 있지만 약간은 이상적인 면이 있다고 생각하기 때문에 현실에 적용하기에는 이런 저런 어려움이 있다고 생각합니다. 작업을 혼자하는게 아니다 보니요....

기존의 애자일책들이 애자일 방법론 자체나 소규모팀에 대한 중심으로 설명을 했다면 이책은 좀 더 현실적인 엔터프라이즈급 애자일 방법론에 대해서 다루고 있습니다.(책 제목만으로도 알 수 있는 뻔한 얘기를 너무 장황하게 했나요? ㅎ)

이책은 목차가 크게 3가지로 분류되어 있습니다.

  1. 소프트웨어 애자일 방법론
  2. 애자일 확장 적용하는 7가지 팀단위 애자일 활동
  3. 엔터프라이즈 환경에 맞는 애자일 방법론

1부 소프트웨어 애자일 방법론에서는 일단 애자일에 대해서 독자들이 알아야 하기 때문에 애자일이 무엇인지에 대해서 설명을 하고 있습니다. 애자일이 어떤 개념인지.. 기존의 대부분의 회사에서 적용하고 있는 폭포수방법론이 어떤 문제가 있고 애자일은 어떻게 접근하고 있는지... 그리고 애자일내에서 여러가지 방법론이라고 할 수 있는 것들 중에 대표적인 XP(eXtreme Programming), 스크럼, RUP, 린소프트웨어 등에 대해서 설명합니다.
 
이부분은 내용도 깔끔하고 아주 깊게까지는 파악하지 못하더라도 여러가지 방법론의 개념을 파악하는데는 크게 도움이 되었습니다.
 
2부 애자일 확장 적용하는 7가지 팀단위 애자일 활동에서는 애자일을 적용하기 위해서 중요한 개념에 대해서 자세히 설명하고 있습니다. 현업에 새로운 방법론을 적용하기 위해서 적용되어야 하는 내용을 자세히 설명하고 있으며 정의/빌드/테스트의 컴포넌트 팀 구성, 계획과 추적, 반복, 짧은 릴리즈 주기, 동시테스트, 지속적 통합, 정기적인 반성의 7가지 활동입니다.
 
이부분에 대해서도 디테일하게 설명하고는 있지만 약간은 개념적인 부분을 위주로 설명하고 있습니다. 개념적이라고 하는 것은 제목에서는 약간 현업적용에 초점이 맞춰져 있을거라는 개인적인 예상을 하고 있었는데 그런부분보다는 원론적인 방법 및 개념 위주로의 설명에만 그치는 것이 약간 안타깝습니다.
 
3부 엔터프라이즈 환경에 맞는 애자일 방법론에서는 이제 엔터프라이즈급에서 애자일을 적용하기 위한 것을 설명하고 있는데 2부부터 약간 그렇기는 했지만 급격하게 책을 읽는 집중감을 잃어가면서 책의 내용이 눈에 잘 안들어왔습니다. 여기서는 엔터프라이즈급에 대해서 어떤 식으로 접근하는지에 대해서 설명하면서 여러기업들의 적용사례를 보여주고 조직에 대한 변화를 얘기하고 있습니다.
 
실제 이부분이 이책이 얘기하고 싶었던 부분이고 이책을 고른 사람들이 가장 관심있어할 부분인것 같은데 그 내용은 너무 빈약하게 느껴집니다. 너~무 추상적인 개념얘기만 하는 느낌이 강했기 때문에 이걸 보고 어떻게 적용을 하나(머 적용은 각 조직이 시행착오를 거치면서 이뤄가야하는 것이긴 하지만요.)하는 생각이 들었습니다.
 
마케팅과 영업의 반대는 어떻게 하는가? 애자일방법론이 더 높은 가치를 줄수있음을 설득한다. 머 이런식이다 ㅡ..ㅡ 약간은 비약적인 예일수도 있겠지만 말은 맞지만 상당부분은 애자일을 고민하면 엔터프라이즈급에 적용한다고 했을  때 충분히 생각해 낼 수 있는 정도의 내용이 아닌가 하는 생각이 들었습니다. 책하나로 실무에 바로 적용하는 실버블렛같은 내용을 기대한 것은 아니지만 좀더 현실적인 내용을 기대했는데 그러지 못한 부분은 좀 아쉬웠습니다.
 
앞의 개념설명쪽은 꽤 괜찮았는데 뒤로 갈수록 좀 실망하게 된 책이네요.
 
RUP는 UP를 구체화한 IBM 레셔널소프트웨어의 UML기반의 개발방법론 상용제품으로 판매하고 있습니다. 저도 RUP는 여기서 처음 알았는데 저자가 RUP와 연관있다보니 포함되어 있는듯 합니다.

2016년 2월 25일 목요일

[Book] 익스트림 프로그래밍 - 변화를 포용하라, 2판..

출처 : Outsider's Dev Story https://blog.outsider.ne.kr/

익스트림 프로그래밍 - 10점
켄트 벡.신시아 안드레스 지음, 정지호.김창준 옮김/인사이트

산지는 꽤 되었는데 이제야 읽었습니다. 애자일에 대해서 약간이라도 관심있으시다면 한번 정도는 들어봤을만한 Extreme Programming(XP)에 관한 책입니다. 1판이후 5년이 지난후에 나온 2판인데 보통 2판은 1판의 오탈자나 약간의 변경사항을 가지고 나오는데 추천사등을 보면 1판에서 얘기한 XP이후 켄트벡이 5년동안 얻은 경험을 가지고 완전히 새로쓴 2판이나 다름없다고 합니다.(1판을 보지 않아서 얼마나 달라진건지는 잘 모르겠습니다만...)

최근 제가 관심가지는 분야때문에 그런 건지 모르겠지만 TDD부터 해서 많은 부분에서 켄트벡이라는 이름을 접하게 됩니다. 개인적으로는 한명의 개발자가 전세계적으로 개발이라는 분야에 이토록 큰 영향을 줄 수 있다는 것에 감탄을 하곤 합니다. TDD책에 이어 이 책에서도 켄트벡이라는 사람이 가진 생각과 사상에 감탄하게 되더군요. 이 책을 왜 이제야 읽었나 싶습니다.

켄트벡을 초기에 가치와 원칙을 강조합니다. 가장 중요한 가치를 강조하고 그걸 이루기 위한 실천방법들이 있고 그 가치와 실천방법을 잇는 원칙이 있습니다. 가치는 의사소통, 단순성, 피드백, 용기, 존중을 개발에 있어서 가장 중요한 가치로 두어야 하고 이를 위해서 인간성, 경제성, 상호이익, 자기유사성, 개선, 다양성, 반성, 흐름, 기회, 잉여, 실패, 품질 등등이 있습니다. 그 뒤에 보통 많이 알려진 XP의 실천방법에 대해서 설명하고 있습니다. 흔히 않고 있는 함께 앉기, 짝 프로그래밍, 활력을 유지할 수 있는 만큼만 일하기, 스토리 공유, 10분빌드, 일주일별 주기로 일하기, 지속적 통합, 테스트주도개발, 점진적 설계 등입니다. 각 단계에 대해서 자세히 설명하고 있고 여러가지 상황에 대해서 어떻게 적용을 해야 하는가를 잘 설명해 주고 있다.

책을 읽으면서 느낀 것은 보통 실천방법이 많이 알려져 있는데 실제로 켄트벡이 강조하려고 하는 것은 이 실천방법보다는 가치쪽에 있다는 생각이 듭니다.(물론 켄트벡말대로 너무 추상적이긴 하지만요)  그렇다고 가치만 죽~ 설명하면 말이 안되니까 그걸 지킬수 있게 실청방법을 연구해서 강조한것 인데 켄트벡의 의도와 다르게 우리는 이 실천방법에 더 집중하고 있는듯 합니다.(마음에 와닿는 문서안만들기 같은...)

XP는 절대 그런것이 아니더군요. 오히려 회사가, 조직이 요구하면 문서를 만들어야 한다고 하고 있습니다.(이 역할을 하는것이 PM이죠.) 우린 XP야 하고 독불장군으로 지내는게 아니라 성공적이 프로젝트를 위해서 모든 것을 인정하고 그것에 대해서 대응할 수 있는 극단적으로 적극적인 방법론 이라는 생각이 듭니다. 실제로 책에서도 "우리의 목표는 성공적이고 만족을 주는 인간관계와 프로젝트이지 XP클럽 회원이 되는 게 아니다(켄트벡)"라고 하고 있습니다.

책을 읽으면서 내내 많은 생각이 들었습니다. 어떻게 사람이 이렇게 현실적으로 생각할 수 있을까 하는 감탄과 함께 개발자가 가지고 있는 일반적인 폐쇄성 또는 개발중심적 사고까지도 깨져버리는 느낌이었습니다. 이런 아무도 보지 않을 문서작업을 하는 것에 짜증나곤 하지만 그렇다고 그거에 거부해서 조직 또는 인간관계가 무너지고 혼자서 개발만 하려고 하는것도 전혀 XP다운 생각이 아니었습니다.(좀 찔리는군요) 켄트벡이 말하고자 하는건 훨씬 크게 보는 것이었고 요즘 제가 처한 상황도 있고 해서 많이 공감이 갔습니다.

XP가, TDD가, SVN이 이렇게 좋은데 도대체 왜 안한다는거야?라고 생각하는 것이 아니라 이 팀에서 조금더 효율적으로 성공적으로 개발할려면 뭘 하는게 좋을까 라고 생각하는 게 맞는것 같습니다. 어느새 스스로 제 사고의 폭을 좁혀버렸던것 같은 생각이 들고 있습니다.


인상적인 몇마디...
"나는 다른사람들보다 똑똑하니까 내 능력을 발휘하려면 나를 혼자 내버려 두기만 하면 돼." 같은 사춘기적 앳된 자신감을 넘어서는 것에 대한 이야기다.

갈등이 없는 팀은 없다. 관건은 갈등을 생산적으로 풀 수 있는가다.

변화는 반드시 일어나기 때문에 문제가 되는 것은 변화가 아니다. 그보다는 변화를 극복하지 못하는 우리의 무능력이 문제다.
실용주의 프로그래머를 읽었을때도 그런느낌이 있었는데 "아~ 그렇구나"하고 이해하고 넘어갈 책은 아니라고 생각합니다. 이책을 보고 뭔가라도 해보려고 노력하는게 켄트벡이 바라던 일이라고 생각합니다.(현실은...)

개인적으로 애자일이 약간은 이상론이라고 생각합니다. 온갖 칭찬을 써놓았지만 XP도 아직은 약간 같은 생각을 가지고 있습니다. 큰 그림이 아닌 실천방법에 대한거죠. 많은 부분에 공감하지만 우리의 현실은 책에 써놓은 것보다 훨씬 다양하고 많은 예외사항을 겪게 됩니다. 실천해야지 하면서도 "어떻게?"하면 좀 막막한게 사실입니다. 하지만 그 의도자체는 크게 공감하고 있기 때문에 계속 고민하고 노력을 하면 뭔가 더 보이지 않을까 합니다. 이제 막 XP에 발을 들여놓은 입장이니까요...