Differences between revisions 17 and 18
Revision 17 as of 2020-09-03 13:35:04
Size: 5633
Editor: 정수
Comment:
Revision 18 as of 2020-09-03 13:35:07
Size: 5633
Editor: 정수
Comment:
No differences found!

Alistair Cockburn이 지은 책.

이 책은 이 질문에 대해 답한다.

  • 다른 작고 성공적인 프로젝트 팀들은 뭘 했길래 성공했을까?
  • 그들은 어떤 프랙티스를 사용할까?

십여년 동안 성공적인 작은 팀들을 디브리핑하면, 대부분 같은 메세지를 답했다:

  • 사람들이 함께 가깝게 앉게 하라. 자주 좋은 의지(goodwill)를 가지고 소통하게 하라.
  • 조직(bureaucracy)을 최대한 활용하고 설계하게 하라.
  • 실제 유저가 직접 개입하게 하라.
  • 좋은 자동화 회귀 테스트 집합을 마련하라.
  • 배포(shipping) 가능한 기능을 일찍, 그리고 자주 생산하라.

이 모든 것을 하고, 대부분의 상세한 프로세스는 will take care of themselves.

Crystal Clear는 간단하게 이렇게 묘사할 수 있다.

  • 리드 디자이너, 그리고 2~7명의 다른 개발자들이 큰 방 혹은 인접한 방에 있고, 정보 방열기 - 화이트보드나 플립 차트 같은 것이 벽에 걸려 있고, 핵심 사용자에게 접근하며, 방해(distractions)를 멀리 하고, 동작하고 테스트 되었고 유용한 코드를 매 한두달 (뭐, 최대한 세달까지)마다 한번씩 전달하고, 그들의 일하는 스타일을 주기적으로 회고(reflect)하고 조정한다.

이 간단한 제안은 경험과 이론 모두에서 뒷받침한다. 소프트웨어 개발의 특징은 경제적으로 제약된 개발과 커뮤니케이션의 협력 게임(CooperativeGame)이라는 점이다.

Crystal의 유전 코드는 아래와 같은 것들로 만들어진다:

  • 경제적 협력 게임 모델
  • 선별된 우선순위들
  • 선별된 속성들
  • 선별된 원칙들
  • 선별된 예시 테크닉들
  • 프로젝트 예시들

경제적 협력 게임 모델은, 소프트웨어 개발은 일련의 '게임'이라고 말한다. 어떤 게임이냐면, 발명하기와 의사소통하기 외에는 아무 것도 없는, 전형적인 자원 제한 상태인 게임이다. 일련의 게임 안에 있는 각 게임은 리소스를 두고 경쟁하는 두 가지 목표가 있는데: 이 게임에서 소프트웨어를 완성하기와, 다음 게임을 위해 준비하는 것이다. 각 게임은 반복되지 않으므로, 매 프로젝트에서는 이전의 모든 게임들과 약간 다른 전략을 필요로 한다. 경제 협력 게임 모델은, 사람들이 자신의 작업에 대해 매우 구체적이고 집중적이며 효과적인 방식으로 생각하도록 유도한다.

Crystal 패밀리에서 공통되는 우선순위는

  • 프로젝트 결과물의 안전성

  • 개발의 효율성

  • 관습의 Habitability (개발자들이 그렇게 살기에 알맞은)

Crystal은 7가지 안전 속성을 지향하며, 그 중 첫 3개가 Crystal의 핵심이다.

  • 잦은 전달
  • 반성적(reflective) 개선
  • 밀접한(close) 커뮤니케이션 (osmotic communication)
  • 개인적 안전감 (신뢰의 첫 걸음)
  • 초점 (집중)
  • 전문가 유저에게 접근하기 쉬움
  • 기술적 환경; 자동화된 테스팅, 형상 관리, 잦은 통합

Crystal의 원칙들은 책/AgileSoftwareDevelopmentTheCooperativeGame에 자세하게 설명되어 있다. 그 중 몇 가지 핵심 아이디어는:

  • 요구사항, 설계 및 계획 문서에 필요한 세부 사항의 양은, 프로젝트 환경, 특히 감지되지 않은 결함으로 인해 발생할 수 있는 손상의 정도와 팀이 즐기는 개인 공동 작업의 빈도에 따라 다르다.
  • 요구사항, 설계문서 및 프로젝트 계획과 같은 모든 중간 작업 제품 및 약속 노트를 제거하는 것은 불가능할 수 있다. 그러나 팀이 짧고 풍구하고 비공식적인 의사소통 경로를 사용할 수 있고, 작동하고 테스트된 소프트웨어가 조기에 자주 제공되는 정도로 줄일 수 있다.
  • 팀은 팀의 특정 성격, 현재 지역 작업 환경 및 특정 임무의 특성에 맞게 작업 규칙을 지속적으로 조정한다.

Crystal Clear는 팀이 같은 방이나 인접한 사무실에 앉아 있는 2~8명으로 구성된 경우 적용할 수 있는 Crystal의 최적화이다. 긴밀한 의사소통의 속성은 삼투 커뮤니케이션으로 강화되는데, 이는 사람들이 매일 프로젝트 우선순위, 상태, 요구사항 및 설계에 대해 서로 논의하는 것을 의미한다. 이 향상된 의사 소통을 통해 팀은 다른 방법으로 가능한 것보다 암묵적인 의사 소통과 작은 노트에서 더 많은 작업을 할 수 있다.

Chapter 9. Distilled (The Short Version)

Crystal Clear의 핵심은 무엇인가?

ClystalClear는 작고 한 곳에 있는 팀을 매우 효율적으로 활용하기 위한 방법으로서, 만족스러운 결과물을 전달하는데 있어 효율성, 거주가능성(habitability), 안전성을 우선으로 한다. level-3 실천가가 CrystalClear를 간단하게 설명하면 이럴 것이다:

  • 리드 디자이너, 그리고 2~7명의 다른 개발자들이
    • 큰 방 혹은 인접한 방에 있고,
    • 정보 방열기 - 화이트보드나 플립 차트 같은 것이 벽에 걸려 있고,
    • 핵심 사용자에게 접근하며,
    • 방해(distractions)를 멀리 하고,
      • 동작하고 테스트 되었고 유용한 코드를
    • 매 한두달 (뭐, 최대한 세달까지)마다 한번씩 전달하고,
    • 그들의 일하는 스타일을 주기적으로 회고(reflect)하고 조정한다.

책/CrystalClear (last edited 2020-09-14 12:08:13 by 정수)