협력 구현은 짝 프로그래밍, 형식적인 정밀 검사, 비형식적인 기술적 검토, 문서 읽기뿐만 아니라 개발자들이 코드 작성과 제품 개발에 관련된 다른 작업에 대한 책임감을 공유하기 위한 다른 긱법들을 가르킨다.

협력 구현의 목표는 명확하다. SW의 품질을 향상시키는 것이다.

협력 구현은 협동 문화와 프로그래밍 경험을 제공한다. - 프로그래머들간의 피드백은 우리의 행동양식과 실력 향상에 도움을 주고 검토의 장을 만들어 SW의 현재와 미래의 품질향상을 가져온다.

공동소유권을 협력적인 구현의 모든 형태에 적용한다.

  • 여러 사람이 코드를 보고 코드를 다루면 코드의 품질이 좋아진다
  • 누군가가 프로젝트를 그만두더라도 여러 사람들이 코드에 대해서 잘 알고 있기때문에 그 충격이 줄어든다
  • 모든 프로그래머가 동등하게 버그를 수정할수 있기때문에 결함 수정 주기가 전체적으로 짧아진다.

 

짝 프로그래밍(Pair Programming) - 한 프로그래머는 키보드로 코드를 입력하고 다른 프로그래머는 실수를 감시하면서, 코드가 정확하게 작성되고 있는지 그리고 올바른 코드가 작성되고 있는지 전략적으로 생각한다

성공요건

  • 코드 작성 표준으로 짝 프로그래밍을 지원하라
  • 짝 프로그래밍이 감시가 되지 않도록 한다 - 두 사람 모두 적극적으로 참여해야 한다
  • 짝 프로그래밍을 강요하지 마라 - 모든 경우에 짝 프로그래밍이 좋은 것은 아니다
  • 정기적으로 짝을 교대하라 - 하루에 한번이 제일 좋다고 전문가들은 말한다
  • 짝이 서로의 속도에 맞출수 있도록 하라
  • 파트너 모두 모니터를 볼수 있는지 확인하라
  • 서로 좋아하지 않는 사람을 짝으로 만들지 마라
  • 초보자들끼리 짝을 만들지 않는다
  • 팀의 리러를 선정하라

혜택

  • 혼자 개발할때 보다 동기부여가 잘 된다
  • 코드의 품질을 향상시킨다
  • 일정을 단축시킨다
  • 협력문화 보급, 신입 프로그래머의 교육, 공동 소유 장려와 같은 협력적인 구현의 모든 혜택을 제공한다.

 

형식적인 정밀 검사

  • 체크 리스트는 과거에 문제가 있었던 영역에 대해 검사자가 관심을 갖도록 한다
  • 정밀검사는 결함의 수정이 아니라 발전에 중점을 둔다
  • 검사자는 사전에 정밀 검사 미팅을 준비하고 그들이 발견한 문제점 목록을 준비하여 참석한다
  • 명료한 역할이 모든 참석자에게 할당된다
  • 정밀 검사의 중개자는 정밀 검사중인 제품의 작성자가 아니다.
  • 중개자는 정밀 검사의 중개를 위한 특정한 훈련을 받은 사람이다.
  • 정밀검사 미팅은 모든 참석자가 적당하게 준비한 경우에만 개최된다데이터는 정밀 검사에 모아지며 결과를 향상시키기 위해서 다음 번 정밀 검사에 제공된다.
  • 프로젝트 일정이나 경영자 관련 사항들을 정밀 검사하지 않는다면, 일반 경영자는 정밀 검사 미팅에 참석하지 않는다. 기술 전문가는 참석한다.

 

다른 종류의 협력적인 개발 방법

  • 워크 쓰루(work-throughs) - 개괄적인 검토. 두명 이상의 사람이 참석해서 코드에 대한 논의를 자유롭게 하는것
  • 코드 읽기 - 정밀 검사와 워크쓰루의 대안으로서 코드 읽기에서는 소스 코드를 읽고 오류를 찾는다.
  • 프리젠테이션 - dog-and-pony shows프리젠테이션은 소프트웨어 제품을 고객에게 보여주는 검토이다.

이 글은 스프링노트에서 작성되었습니다.

by 무위자연 2008. 2. 11. 11:53