페어 프로그래밍은 XP (Extreme Programming) 프로젝트에서 코드 검토가 필요하지 않습니까?


14

극단적 인 프로그래밍 프로젝트에서 프로그래머는 대부분 페어 프로그래밍을합니다.

이 쌍들이 순환하기 때문에, 즉 다른 사람들과 프로그램을 쌍으로 묶고, 집단 소유권이 있다는 점에서 소스 코드가 자주 검토되고 업데이트됩니다.

그렇다면 코드 검토가 필요합니까? 내 말은, 프로그래밍을 중단하고 실제로 코드 검토를 수행합니다.


3
페어 프로그래밍은 XP의 테넌트 일뿐입니다. XP를 따르지 않는 다른 민첩한 방법론이 많이 있습니다. 아무것도 없다 애자일 소프트웨어 개발을위한 선언 이나 애자일 선언문 뒤에 원칙 페어 프로그래밍을 언급하고있다. 코드 검토에 대해서는 아무것도 없습니다. 모든 민첩성이 극단적이라고 가정하지 않는 것이 중요합니다.

XP 만 포함하도록 질문을 바꾸겠습니다.
Eduardo Copat

시도하지 않는 이유가 있고 중지 할 기준을 설정했는지 확인하십시오. 팀이 코드를 체크인하는 데 익숙하다면 충분한 이유가 있습니다.
JeffO

답변:


13

Extreme Programming의 핵심 자원 중 하나는 Ward의 Wiki, 일명 Portland Pattern Repository (일명 C2.com)의 것 입니다. 여기에서 많은 사람들이 다양한 방법론을 해시하고 그들이 사용한대로 문서화했습니다.

이 위키에는 Ron Jeffries와 Kent Beck을 포함하여 많은 기여자가있는 Extreme Programming Code Reviews 페이지 가 있습니다.

이를 위해 그들은 말했다.

많은 대규모 전문가들은 코드 검토를 중요하게 생각합니다. 그것들은 표준 준수를 보장하기위한 것이며, 더욱 중요하게는 코드가 명확하고 효율적이며 작동하며 QWAN을 갖도록하기위한 것입니다. 또한 코드에 대한 지식을 다른 팀원들에게 전파하는 데 도움을주었습니다.

ExtremeProgramming을 사용하려면 두 명의 엔지니어가 협력하여 모든 개발을 수행해야합니다. 코드는 실제로 즉시 검토됩니다. 이를 통해 둘 이상의 사람이 항상 코드에 대해 친숙한 지식을 갖도록 할 수 있습니다.

ExtremeProgramming에는 모든 객체에 UnitTest가 있어야합니다. 이를 통해 개체가 작동하고 수정 된대로 계속 작동합니다.

일부 언어는 반영 적입니다. 이러한 언어에서 UnitTests는 중요한 표준 준수를 직접 확인할 수 있습니다. (예 : 객체는 # = 및 #hash를 구현하거나 둘 다 구현하지 않아야합니다.)

ExtremeProgramming은 CollectiveCodeOwnership을 실행하므로 많은 개발자가주의를 기울여야하는 객체를 찾아 볼 수 있습니다. 이것은 표준에 맞지 않는 코드를 생성하는 사람들에게 부담을주는 경향이 있습니다. 방문 개발자는 편차를 발견 할 때 코드를 준수하도록 권장 / 예방됩니다. 또한 코드에 대한 지식이 코드를 만든 초기 프로그래머 쌍을 넘어 전파됩니다.

따라서 ExtremeProgramming 프로젝트에는 명시적인 검토가 필요하지 않습니다. 방법론에서 삭제하십시오.

또한 다른 사람들과의 주제에 대해 더 많은 토론이 있습니다.

핵심은 테스트, 협업 소유권 및 페어 프로그래밍의 조합으로 코드 검토가 일반적으로 수행해야하는 목표를 해결한다는 것입니다.

  • 수행중인 작업에 대한 지식을 분산
  • 표준을 준수하는지 확인하기 위해 코드에서 두 번째 (또는 그 이상)의 안구 세트
  • 코드의 올바른 기능 확인

이러한 작업은 Extreme Programming에서 페어 프로그래밍과 자동 테스트를 통해 지속적으로 수행되므로 명시적인 Fagan 검사 가 필요하지 않습니다.

관련 독서 :


4
나는 또 다른 질의 응답에서 코드 검토는 불필요한 낭비 (단어의 의미에서)이며 쌍 프로그래밍은 코드 검토가 제공하는 모든 이점을 제공하는 선호되는 방법이어야한다고 주장했다. 말할 필요도없이, 사람들은 내가 당신처럼 AVOHORITY (A)의 음성으로 그것을 뒷받침하지 않았기 때문에 나의 주장에 불쾌감을 주었다. 매일 논리를 다루는 사람들의 그룹에게는 우리는 비논리적 인 무리입니다.
Michael Brown

6
추가 코드 검토없이 페어 프로그래밍을 수행하는 위험은 두 프로그래머 모두 작성 시점에 크게 관여하고 있으며 당시에는 완전히 명확하고 논리적으로 보이지만 며칠 후에 다시 볼 때 코드가 적을 수 있습니다. 그 위험이 얼마나 크고 수용 가능한지는 조직에 따라 다릅니다.
Bart van Ingen Schenau

@MikeBrown 당신은 페어 프로그래밍이 불필요한 낭비이며 코드 검토 등이 필요하다고 동등하게 주장 할 수 있습니다.
AlexFoxGill

WASTE가 의미 한 바를보십시오. 일반적인 조립 라인 프로세스를 생각해보십시오. 아이디어는 가능한 한 빨리 자동차를 줄이게하고 사실 이후에 품질 검사를 수행하는 것입니다 (코드 검토). 린 (Lean) 원칙은 사후 점검이 불필요 해 지도록 (페어 프로그래밍) 품질을 구축하는 데 약간의 시간과 노력이 필요합니다.
Michael Brown
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.