본문 바로가기

Development/etc

[Scrum] 왜 스크럼은 통할까? (1)

혁신적인 10개의 회사를 분석해서 다음과 같은 공통점이 있다.


내재된 불안정성 (Built-in instability)

- 새로운 것을 연구하고 만들어 낼 수 있는 자유로운 분위기를 제공 동시에 높은 수준의 개발요구


자기 조직적인(Self-organizing) 프로젝트 팀

- 기존 지식이 통하지 않는 새로운 분야를 개척하게 됨에 따라 자기 조직적인 특징을 띄게 된다. 이 시기에는 모호함과 변동이 넘쳐난다. 동적인 질서를 만들기 시작하며 리스크를 감수하며 새로운 개념을 돌출해내고 자신만의 Agenda를 만들어 내기 시작


중첩(overlapping) 개발 단계

- 당장에 주어진 정보만 가지고 개발해야한다. 개발도중에 요구사항들이 분명해지며, 그런 개발 환경 속에서 일관성 있게 새로운 제품 개발을 완료하기 위해서는 연구, 개발, 테스트 단계를 중첩적으로 돌려야한다.(프로토 타입과 같은 의미..) 이렇게 개발 단계를 중첩시키면 책임감, 협동심, 헌신과, 몰입을 불러일으킨다.


다중학습(Multi-learning)

- 외부의 정보 공급원과 가까이 둬서 환경의 변화에 재빨리 반응할 수 있게 해야한다.


눈에 띄지 않는 제어(Subtle control)

- 팀이 창조적이고 효과적이기 위해서는 간섭을 받지 않는다. 그리고 일정하게 제어해야한다.

  • 팀원을 뽑고 지속적으로 균형을 잡는다.
  • 열린 작업공간 제공
  • 고객과 잦은 대화 유도
  • 효율을 기준으로 평가 보상 체계 설립
  • 전체 개발 단계에서 나타나는 흐름의 차이를 조율
  • 실수를 관대하게 받고 미리 예상
  • 관련 팀들도 자기 조직적이 되도록 유도하는 등의 관리 필요
학습의 전파(Transfer of learning)
- 기존의 팀원을 새 팀에 심어라. 이 모든 것이 신제품 개발 과정에 필수적이다. 이 패러다임을 채택한 스크럼 역시 마찬가지의 과정이 적용

리스크 관리와 예측의 관점
- 스크럼은 자기 조직화를 필요로 하는 소프트웨어 개발의 새로운 패러다임을 제시한다. 동시에, 새로운 유형의 조직을 길들이는 데 필요한 리스크 감소 실천방법도 같이 제공한다.

  • 고객을 만족시키지 못하는 리스크
    • 지속적으로 제품 개발 과정을 볼 수 있게 해서 고객을 실망시킬 수 있는 리스크를 줄이려고 노력한다. 개발현장에 함께 있는 것이 가장 최선, 그게 안 될 경우 적어도 매 스프린트마다 실제로 돌아가는 소프트웨어를 고객에게 보여준다.
  • 전체 기능 구현 중 일부를 끝내지 못하는 리스크 
    • 매 스프린트를 통해서 우선순위에 따라 기능을 구현하기 때문에 전체 기능중 일부 구현을 끝내지 못할 수도 잇는 리스크를 관리 할수 있다. 이런 방식을 통해 낮은 우선순위의 기능은 포기하는 한이 있더라도 높은 우선순위의 기능을 구현
  • 잘못된 추정과 계획에 대한 리스크
    • 하루 단위의 잛은 추정치를 제공하는 일일 스크럼과 스플니트 주기 동안 변경되지 않는 백로그 유지를 통해서 관리한다. 더 큰 주기 동안에 발생 할수 있는 문제점을 피해갈 수 있게 한다.
  • 문제점들이 즉각 해결되지 않는 수 있는 리스크
    • 스크럼은 매일 관리자에게 적극적인 관리를 요구함으로써 관리에 대한 거증 책임을 지운다. 관리자의 역할은 양방향적이다.
  • 개발 주기 내에 완수하지 못할 수 있는 리스크
    • 매 스프린트마다 동작하는 소프트웨어를 배포해서 다른 사람에게 제품 개발 과정에 별 큰 문제가 없다는 것을 보여준다. 기술적인 내용에서 문제가 있을 경우 돌아가는 소프트웨어를 릴리스하도록 밀어붙여 사소한 문제점을 제거해 버린다.
  • 초과 근무와 기대 변경에 대한 리스크
    • 스프린트 기간 동안 관련된 제품 백로그를 고정시킴으로써 고객의 변덕에 대한 리스크를 막아준다.

패러다임 전환적 관점
- 스크럼은 소프트웨어 개발에서 패러다임 전환을 보여준다. 스크럼은 낡은 패러다임 전통과 거기서 나오는 메타포를 해체시키는데, 그 이유는 스크럼이 신제품이라는 새로운 패러다임, 실천방법 그리고 여기에서 생성된 메타포를 기반을 두기 때문이다. 스크럼은 연구, 창의, 학습, 지식 창조를 지원하는 실천방법을 제공한다. 이런 활동들은 결과적으로 가지 조직화된 구조를 필요로하게 된다.




'Development > etc' 카테고리의 다른 글

[Scrum] 스크럼의 가치  (0) 2013.11.25
[Scrum] 왜 스크럼은 통할까? (2)  (0) 2013.11.21
[Scrum] 스크럼 적용하기 (2)  (0) 2013.11.16
[Java] Class Field 접근 및 값 수정  (0) 2013.11.15
Mongo DB 설치하기~!  (0) 2013.11.13