운전자와 관찰자가 기술 수준과 경험이 다른 경우 페어 프로그래밍 작동하는 민첩한 소프트웨어 개발 기술이라는

페어 프로그래밍은 두 명의 프로그래머가 한 워크 스테이션에서 함께 작동하는 민첩한 소프트웨어 개발 기술이라는 것을 알고 있습니다. 드라이버는 코드를 작성하는 반면 다른 하나는 관찰자가 입력 한대로 각 코드 행을 검토합니다.

그러나 나는이 경우에도 전략이 여전히 효과가 있는지 궁금합니다. 예를 들어

  • 프로그래밍 기술 수준이 매우 다른 경우
  • 한 사람이 문제 영역에서 경험하지 못하고 다른 사람이 경험하는 경우
  • 프로그래밍 기술 수준이 낮은 경우에도 여전히 괜찮습니까?

위의 경우 쌍 프로그래밍 전략을 제안 할 수 있습니까?



답변

한 쌍의 경험이 많은 사람이 다른 사람을 멘토링하려는 경향이 있다고 가정하면, 언어에 대한 경험이 거의없는 사람이나 문제 영역에 경험이있는 사람을 짝 짓는 것은 지식 이전을 용이하게합니다. 경험이 적은 사람에게는 언어, 도메인, 응용 프로그램 및 팀의 모범 사례 또는 규칙에 대해 멘토가 있어야합니다.

C2 위키에는 페어 프로그래밍을 사용한 지식 전달에 관한 흥미로운 요약이 있습니다 . 팀 멘토로 일하게 된 상급자는 주니어 프로그래머로부터 많은 것을 배웠고 경험이 많지 않은 주니어 소프트웨어 개발자와 짝을 지어서 그의 지식이 더욱 높아졌습니다. 전문가 프로그래머가 도메인 전문가와 짝을 이루는 것에 대한 다른 이야기도 있습니다.


답변

이것은 오래된 수염과 어린 메뚜기 사이의 경험을 공유하는 유스 케이스 페어 프로그래밍입니다.

민첩한 곤충은 류마티스 뇌에 많은 것을 가르쳐야합니다.


답변

현재 팀으로 승진했을 때 J2EE의 초보자 였지만 도메인의 전문가였습니다. 내 선임 (새로운 팀장)은 J2EE에 능숙했지만 플랫폼에는 능숙하지 않았습니다.

저는 4 개월 동안 책을 읽는 것보다 페어 프로그래밍으로 Java2EE에 대해 더 많이 배웠으며 팀 리더도 플랫폼에 대해 배웠습니다.

둘 사이의 경험 격차는 프로그래밍 imho를 짝짓기위한 열쇠입니다.


답변

나는 나의 경험을 설명하고 그것으로부터 “전략”을 얻으려고 노력할 것이다.

프로그래머가 아닌 완전한 프로그래머와 한 쌍의 프로그램을 작성했습니다. 그는 우리가 개발 한 소프트웨어 제품의 주제에 대해 전문가였습니다. 반대로, 나는 문제 영역에서 경험이 없었습니다. 그리고 그는 또한 현재 내 상사였습니다 (이상하게 들릴 수도 있음을 알고 있습니다 🙂

이 방법론의 주요 이점은 지식 영역에서 많은 것들의 구현을 설명해야했기 때문에 구현의 정확성과 프로세스에 대한 이해를 보장해야했기 때문에 이번에는 왜 그런지 이해했습니다.

또 다른 이점은 방해가되지 않는 작업에 쉽게 초점을 맞출 수 있다는 것입니다.

그러나 심지어 차 휴식조차도 “일을 방해하는”(그의 관점에서가 아니라 휴식을 요구하는 것이 불편했기 때문에) 상당히 혼란 스러웠습니다.

따라서 코드를 입력 할 때 코드를 거의 검토 할 수 없었기 때문에 이것은 실제로 페어 프로그래밍이 아닙니다. 그러나 (최소한 시간 동안) 건전한 전략 인 것 같습니다. 그것은 개발 방법론 (OOP 패턴과 같은 복잡한 소프트웨어 설계 기술이 관련되지 않았 음)과 주제의 상대적 단순성 때문에 궁극적으로 효과가있었습니다. 우리가 생각하는 컴파일러를 개발 해야하는 경우에는 작동하지 않습니다. 나는 프로그래머가 아닌 관찰자가 작고 명확하게 정의 된 조각의 개발 과정에 참여하는 경우 여전히 작동 할 수 있다고 생각합니다. 예를 들어, “주어진 알고리즘에 의해 Y와 Z로부터 파라미터 X를 계산하는”함수의 프로그래밍을 보도록해도 좋지만, 전체 시스템 설계 프로세스 (소프트웨어 아키텍처의 개발, 즉 수업,

“배열이란 무엇인가”를 설명 할 필요가 없기 때문에 기본적인 프로그래머 기술을 보유한 경우 더 잘 작동한다고 생각합니다.

그것이 도움이되기를 바랍니다 🙂


답변

내 경험상 두 프로그래머 모두 기술 수준이 낮 으면 문제가 될 수 있습니다. 이 경우 종종 복사 붙여 넣기 프로그래밍을 시도하는 경향이 있습니다. 두 명의 초보자 프로그래머가 팀이 결정한 특정 수준에 도달 할 때까지 함께 연결하지 않는 것이 좋습니다.

그렇지 않으면 페어 프로그래밍은 물론 두 사람이 자신이 알고있는 것을 공유 할 준비가되어 있다고 가정하는 것이 좋습니다. 모든 사람에게 소스 코드를 알리는 좋은 방법 일뿐만 아니라 새로운 아이디어와 토론을위한 좋은 장소 역할을합니다.


답변

팀원이 서로를 존중하는 한, 프로그래머의 경험 수준에 관계없이 페어 프로그래밍이 유리할 수 있습니다. 숙련 된 프로그래머가 숙련 된 프로그래머보다 몇 가지 구문 오류 (우리 모두가 만드는!)를 발견하더라도 여전히 컴파일 코드에 시간이 절약됩니다.

또한 다른 팀원의 능력에 대한 프로그래머의 태도를 열 수 있다고 생각합니다. 특히 열린 마음을 가지고 모든 사람이 당신에게 무언가를 가르 칠 수 있기를 기대할 때 더욱 그렇습니다.