Altruistic Programmer's Blog (KR)

이타주의 프로그래머의 블로그

Archive for the ‘Scrum’ tag

스크럼 vs 간판(Kanban)

without comments

 
스크럼과 간판(看板 Kanban)을 비교한 무료 책. 
 
스크럼과 XP를 쓴 아저씨가 블로그에 공개한 버전과 그 후에 내용이 추가되어 InfoQ에 올라간 버전이 있음.
 
블로그 버전을 오늘 읽어봤는데 스크럼에 익숙한 상태에서 간판에 대한 이미지를 얻는데 큰 도움이 되었다.
 

Written by muscly

February 8th, 2010 at 11:50 pm

스크럼 일기 3 – 모자

with 4 comments

어떤 모자를 썼는지 명확하게 하자

자격증을 가진 스크럼 마스터가 있는 것도 아니고 기존의 조직 체계도 있다보니 한 사람이 여러 역할을 맡을 수 밖에 없다. 우리 팀장님은 실장님, 팀장님, 프로덕트 오우너, 경력많은 개발자(조언자) 역할을 해야하고, 노예형 스크럼 마스터는 개발자 역할을 병행해야 한다.

그러다보니 지금 “경력많은 개발자”의 모자를 쓰고 조언을 해주는 것인지, “프로덕트 오우너”의 모자를 쓰고 요청을 하는 것인지 오해가 생기기 쉽다. 이렇게 설계하는게 좋았다라는 경험을 말해주는 것 뿐인데, 명령으로 받아들여 프로덕트 백로그에도 없는 일을 열심히 하고 있는 불상사가 생길 수도 있다.

지금 어떤 모자를 쓰고서 말하는 것인지 오해하지 않도록 서로 신경 쓸 필요가 있다.

Written by muscly

January 22nd, 2010 at 12:00 am

Posted in

Tagged with , , ,

스크럼 일기 2 – 프로덕트 로그

without comments

프로덕트 로그도 점진적으로 발전한다

개발팀에게 전달되는 요구사항이나 스펙이 완벽하지 않다고 불만을 가질 일이 아니다. 좋은 설계를 반복없이 한 번에 만들어 낼 수 없는 것처럼 좋은 프로덕트 로그도 한 번에 만들어 낼 수 없다.

보통 고객이란 불특정 다수이므로 완벽한 요구사항을 건네줄 사람이 있는 것도 아니고, 개발 도중에도 시장환경이나 조직의 상황이 계속 변하므로 스펙이나 우선순위 조정이 불가피하고, 기술적인 한계나 복잡성에도 영향을 받는데 이는 개발팀이 연구, 조사, 스파이크 같은 것을 해봐야 알 수 있는 것이라 초기에는 예상하기 힘들다. 이런 이유들로 처음부터 완벽한 프로덕트 로그를 만드는 것은 어렵다.

지난 글에서는 오우너와 개발팀의 역할을 명확히 나눠야 한다고 했지만, 기술적인 한계, 기술의 장단점과 같이 오우너가 프로덕트 로그를 개선하는 것을 돕기 위해서 개발팀이 오우너에게 제공해야 하는 정보도 있다. 다시 말해 개발팀도 좋은 프로덕트 로그를 만드는 일에 일정 부분 공헌할 필요가 있다는 얘기. (스프린트 준비회의에서 많은 대화가 필요하다.)

프로덕트 로그가 완벽하지 않다거나, 자주 변한다고 투덜대지 말자.

Written by muscly

January 20th, 2010 at 12:00 am

Posted in

Tagged with , ,

스크럼 일기 1 – 역할

without comments

새해가 되어 스크럼마스터와 새 스크럼을 구상하면서 그동안 잘못해오던 것들이 몇 가지 드러났다. 작년에도 많은 교훈을 얻었는데 적어두지 못한게 아쉽던 터라, 올 해는 같은 실수를 반복하지 않도록 잘 적어두기로 했다.


프로덕트 오우너와 개발팀의 역할을 명확하게 하고 그에 맞는 정보를 줘야 한다.

좀 당연한 얘기라서 쑥스럽지만 ^^;;  일단 프로덕트 오우너(이하 오우너)란 우리말로는 “제품 책임자”. 제품의 스펙을 결정하고, 스펙 중에 우선순위를 결정해주는 사람이다. 개발팀은 당연히 제품 책임자에게 요청받은 스펙을 구현하는 사람들.

역할을 명확하게 하는 것이란?

다른 말로는 “책임”과 “권한”을 명확하게 하는 것. 예를 들면 아래와 같이,

  • 오우너는 개발팀에게 A라는 스펙을 주고 구현할 책임을 준다
  • 개발팀은 A라는 스펙을 어떻게 구현할지 결정할 권한을 갖는다

역할이 명확하지 않은 경우에 발생하는 현상

  • 개발팀이 책임 이상의 것을 하거나, 요청받는 경우
    • 개발팀이 A라는 스펙이 올바른 것인지 고민하고 있다
    • 개발팀에게 A라는 스펙을 올바르게 수정하기를 요구한다
  • 오우너가 책임 이상의 것을 하거나, 요청받는 경우
    • 오우너가 구현 방법에 대해 일일이 관여한다
    • 오우너에게 구현방법에 대해서 일일이 물어본다
  • 책임이나 권한이 있는 것 같은데, 막상 정보가 부족하다
    • 개발팀이 A라는 스펙을 개선하기에는 프로젝트의 비전, 사업 우선순위에 대한 정보가 부족하다.

해결책은?

  • 개발팀이 A라는 스펙이 올바른가 고민하지 않기를 바란다면, 그 사실을 명확히 하고 합의한다.
  • 개발팀이 일정부분 스펙을 수정해주기를 바란다면, 그 사실을 명확히 하고 필요한 정보를 준다.
    • (위 그림의 파란박스에서)개발팀이 어느 높이까지 책임과 권한을 갖는지 명확히 하고 합의한다.
    • 개발팀의 역할을 수행하는데 필요한 프로젝트의 목표, 비전, 가치, 우선순위와 같은 정보 제공한다.
  • 개발팀이 구현 방법에 대해서 오우너에게 물어본다면
    • 역할을 명확하게 해서 개발팀 스스로 판단할 권한이 있음을 주지시킨다.
    • 혹은 판단하기에 충분한 정보를 주지 않은 것은 아닌지 확인한다.

현실에서는 알아차리기 힘들 수 있다

“오우너가 스펙을, 개발팀이 구현을”. 설명을 쉽게하려고 이렇게 말했지만 좀 더 원칙적으로 얘기하면 “오우너가 더 추상적인 스펙을, 개발팀이 더 구체적인 스펙을”이 되어서 현실에서는 구분이 어려울 수 있다.

스펙이 “폰트를 바꾸는 기능 추가”와 같이 유저 관점의 기술(記述 description)인 경우에는 구분이 명확하지만, 스펙이 “3가지 DB 지원”과 같이 기술(技術 technology)적인 경우에는 헷갈리기 쉽다. 그래서 라이브러리나 미들웨어 같이 제품을 쓰는 사람도 개발자고, 만드는 사람도 개발자인 경우에는 스펙과 구현의 선을 명확히 긋고 역할을 합의하는 일이 중요한 것 같다.

마무리

오우너가 자꾸 이상한 일을 시킨다거나, 개발팀이 원하는 일을 해오지 않는다거나 하는 문제가 생겼을때는 각자의 자질을 의심하기 보다는 역할을 명확히 합의했는지 확인해 볼 일이다.

Written by muscly

January 16th, 2010 at 11:52 am

Posted in

Tagged with , ,

플래닝 포커

without comments

[옛날 블로그 글입니다. 2009.06.28]

플래닝 포커는 일정을 추정하는 방법 중 한 가지 입니다. 애자일 방식에서는 “이 기능은 2주 걸릴 것 같다” 라는 추정 보다는 “이 유저 스토리는 5 스토리 포인트 규모의 일이다” 라고 말하기를 좋아하죠. 실제로 5 스토리 포인트가 몇 주가 될 지는 프로젝트 팀원의 구성, 집중도 등에 의해서 달라질 수 있고, 프로젝트가 진행되면서 점점 더 정확한 속도를 구할 수 있게 됩니다.

어쨌든, “이 유저 스토리는 몇 포인트일까? “라는 질문에 대한 답은 어느 한 사람 보다는, 팀원 전체가 추정해보는 것이 정확하다고 하는데요. 스토리 포인트를 추정하는 과정에서 어느 전문가가 “저는 5포인트 정도 일 것 같은데요”라고 말해버리면 나머지 사람들의 생각에 영향을 줄 수 있기 때문에, 플래닝 포커라는 방법을 사용하면 좋다고 합니다.

이렇게 생긴 카드를 한 벌씩 나눠가진 다음, 각자 자신이 생각하는 스토리 포인트의 카드를 안보이게 내는 것이죠. 동시에 뒤집어서 수렴이 된다면 좋고, 차이가 많이 난다면 다시 토론을 해보는 식입니다. 지난 주말에 잠깐 해봤는데요 재미있네요. 물론 시행착오도 예상되지만요~ ㅎ

한 번 해보시고 싶다면,  지난 번에 소개드린  스크럼과 XP를 읽어보시길~
책을 요약한 스크럼 초간단 PT도 봐주시구요~

Written by muscly

June 28th, 2009 at 3:06 pm