[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...

레이블이 스크럼인 게시물을 표시합니다. 모든 게시물 표시
레이블이 스크럼인 게시물을 표시합니다. 모든 게시물 표시

2016년 3월 3일 목요일

[Book] 스크럼 : 팀의 생산성을 극대화시키는 애자일 방법론..

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

스크럼 - 8점
마이크 비들.켄 슈와버 지음, 박일.김기웅 외 옮김/인사이트

애자일(Agile) 개발방법론 중의 하나인 스크럼(Scrum)에 대해서 설명한 책으로 스크럼의 초기틀을 만든 켄 슈와버가 직접 책을 썼습니다. 아시다시피 애자일에는 여러가지 방법론들이 있고 XP, RUP, 린소프트웨어등이 있고 스크럼도 그중의 하나입니다. 애자일이라는 이름 밑에 모여있는 만큼 비슷한 점들을 가지고 있습니다.

스크럼이란 것이 무엇인지, 스크럼의 실천방법, 그리고 실제 팀에 적용하는 방법, 스크럼이 어떤 효과를 가져오는지에 대해서 자세하게 설명할 수 있습니다. 스크럼 자체가 아주 심플하기 때문에(이론 자체는...) 책의 내용도 어렵지 않고 읽기는 쉬운편입니다.

애자일방법론의 대부분 강조하듯이 스크럼도 역시 같은 얘기를 하고 있습니다. "팀의 목표는 프로젝트의 성공이고 가치창출이지 외견상 드러나는 새로운 방법론의 성공적인 도입만이 되어서는 안됩니다."라고 역자인 박일님이 하신 얘기대로 가장 중요한 부분이라고 생각합니다. 애자일을 도입하게 되면 실천방법이나 방법론에 집착하게 되어 기본정신을 망각하게 되는 것이 가장 조심해야 되는 것이 아닌가 싶습니다.

스크럼은 팀의 생산성과 유연성에 최대한 초점이 맞추어져 프로젝트 진행의 불필요한 장애물을 제거하고 프로젝트 성공만을 위해서 팀이 진행되도록 합니다. 그렇게 하기 위해서 소프트웨어의 요구사항이 우선순위로 정렬된 목록인 제품 백로그(Product Backlog)를 작성하고 이 제품 백로그는 누구나 항목을 제출할 수 있지만 제품 책임자(Product Owner)만이 우선순위를 부여할 수 있습니다. 그리고 팀은 스프린트(Sprint)라고 부르는 30일의 반복주기를 단위로 개발을 진행하며 제품백로그에서 한 스프린트에 할 수 있는 일을 선택하여  진행하게 됩니다. 꼭 30일일 필요는 없지만 경험상 30일이 최적이었으며 특별한 이유가 있는 것이 아니면 30일로 스프린트를 진행하고 경험해본뒤에 팀에 맞게 기간을 수정하라고 합니다. 그리고 스크럼 마스터(Scrum Master)는 팀원들이 프로젝트 진행에 최대한 집중할 수 있도록 도우며 매일 일일 스크럼(Daily Scrum)라고 하는 짧은 현황회의를 진행합니다.

스크럼 팀은 자기조직적인 팀으로 구성되어야 하며 스크럼 마스터는 팀원들을 위해서 장애물을 해결해 주고 필요자원이 충분히 공급되도록 돕지만 팀내부문제를 해결해주려고 해서는 안된다고 하고 있습니다. 스크럼 회의에서는 오직 어제 무엇을 했는가? 오늘은 무엇을 할것인가? 장애요소가 있는가만을 얘기하고 다른 얘기로 회의가 길어지지 않도록 하며 특별히 회의가 필요한 경우에는 일일 스크럼 후에 회의를 소집해서 진행토록 합니다. 일일 스크럼을 통해서 프로젝트의 진행상태가 공유되며 프로젝트외의 일을 하고 있지는 않은지 무엇이 프로젝트를 방해하고 있는지를 파악도록 하고 있습니다. 사람들은 수직적 구조에서 수동적으로 일하는 것에 익숙해져 있지만 스크럼팀은 자기조직적으로 프로젝트가 진행되어야 합니다.

다른 애자일 방법론이 잘못되었다는 것은 아니지만 다른 애자일방법론의 페어코딩 등 구체적인 실천강령에 대해서 어려움을 토로하는 사람들도 많이 보았었는데 스크럼은 디테일한 부분은 자유롭게 놔두면서 가이드라인만 제공하는 듯한 느낌이라서 스크럼에 다가가기에는 그렇게 어렵지 않아보였습니다.

다만 다른 애자일방법론과 마찬가지로 현실적용에서는 약간 괴리감이 있는 것은 동일한 것 같습니다. 스크럼 자체의 의도와 방법들은 지극히 동감하지만 실제 적용에 대해서는 고민이 되게 마련입니다. 일단 가장 큰 걱정은 스크럼이 말하는 것이 되려면 팀이 전권을 가져야 합니다. 제품백로그에  요구사항에 대한 처리가 강요되는 것을 팀이 거부할 수 있어야 하고 프로젝트 진행외에 팀이 다른 회사일등을 하는 것을 스크럼마스터가 막을 수 있어야 합니다. 심지어 기간이 모자라면 기능을 줄이는 것도 가능해야 하는데 과연 회사에서 스크럼팀에 이런 신뢰와 전권을 주는 것이 가능할까 하는 생각입니다.

그것 자체도 정말 쉽지 않은 일이지만 혁신이나 실험을 위해서 그렇게 허락해 준다고 하더라도 스크럼이 얘기하는 것처럼 스크럼을 적용하는 것 만으로 성공적인 결과를 항상 보여줄 수 있냐는 것은 쉽게 확신할 수는 없는 얘기도 특히 처음 도입한다면 더욱 그렇습니다. 저도 물론 애자일 방법론들이 더 좋은 방법이라고 생각은 하고 있습니다만 그건 장기적으로 익숙해 진뒤의 이야기지 적용하면 성공!식의 실버블렛은 아니라고 생각합니다.

머 책만 읽은 뒤에 비관적으로 보려는 것은 아니지만 애자일관련 책을 읽을때마다 읽으면서는 공감하지만 현실을 생각하면 한숨이 나오는 것은 어쩔수 없는것 같습니다. 책중에서 인상에 남는 말은 스크럼의 기본 원칙중 하나인 "가능한 것을 하라(the art of the possible)"입니다. 불가능한 것에 시간을 허비하기 보다는 가능한 것부터 처리하라는 것입니다.


My Comment..
가능한 것을 하라.. 이 부분은 나도 격하게 공감이 가는 대목이다.. 진짜 현실에서는 위와 같은 내용들을 실현하기란 쉽지 않다.. 친구 회사에서 애자일 방법론에 의해서 프로젝트 관리가 된다고 해서 햄의 포스팅을 조금 더 유심히 봤는데.. 친구가 말한것처럼 어제 무엇을 했는지.. 오늘 무엇을 할것인지에 대해서 오전마다 회의를 짤막하게 한다고 한다.. 좀 부럽기도 하고, 나도 한 번 그런 회의에 참석을 해보고 싶다.. 후기를 통해서 조금이나마 어떠한 방법론인지 더 알게 된 듯 하다..

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와 연관있다보니 포함되어 있는듯 합니다.