아주 작은 팀에서 {현재 비교적 작지만 나중에 더 큰 프로젝트} 프로젝트를 시작했다고 가정 해 보겠습니다. 이것은 학기 말에 폐기 될 학업 프로젝트가 아닌 실제 세계의 다른 개발자들이 사용하기위한 실제 프로젝트입니다.
그러나이 코드는 아직 다른 사람에게 공개되지 않았으므로 아직 결정이 내려지지 않았습니다.
방법론
여러분 중 한 명이 코딩을 시작하고 모든 구성 요소가 정확히 상호 작용하는 방식 (아래쪽 디자인)에 대한 명확한 아이디어를 갖기 전에 조각을 맞추는 것을 좋아합니다. 다른 하나는 전체 디자인을 먼저하고 솔루션을 코딩하기 전에 모든 구성 요소와 통신의 세부 사항을 세분화하는 것을 좋아합니다.
기존 시스템을 모방하지 않고 새로운 시스템을 개발하고 있다고 가정 하여 올바른 최종 설계가 어떻게 보이는지 항상 분명하지는 않습니다. 따라서 팀에서 팀 구성원마다 때로는 최종 제품에 필요한 요구 사항에 대한 아이디어가 다른 경우가 있습니다.
상향식 개발자가 일부 코드를 작성하면 하향식 개발자는 코드가 당면한 문제를 해결할 수 있다는 사실에도 불구하고 설계에서 예상되는 잠재적 인 문제로 인해 코드를 거부하고 설계를 올바르게하는 것이 더 중요하다고 생각 솔루션을 문제점에 코딩하기 전에.
하향식 개발자가 코드 작성을 시작하기 전에 전체 설계 및 계획된 문제를 해결하려고하면 상향식 개발자는 실제로 일부 문제가 실제로 발생한다고 생각하지 않기 때문에 상향식 개발자는이를 거부합니다. 요구 사항과 제약 조건이 명확 해지면 향후 디자인을 변경해야 할 수도 있다고 생각합니다.
문제
결과적으로 문제는 상향식 개발자가 설계 결함으로 인해 상향식 개발자가 작성한 솔루션을 폐기해야한다고 결정하기 때문에 상향식 개발자가 시간을 낭비한다는 것입니다. -코드를 작성하십시오.
하향식 개발자는 작업을 병렬화하는 대신 이제 하향식 개발자와 함께 올바른 설계를 해결하기 위해 자주 앉고 둘을 더 빠를 수있는 지점으로 직렬화하므로 시간이 낭비됩니다. 한 사람이 2보다 일을 할 수 있습니다.
두 개발자 모두 계속 협력하기를 원하지만 실제로 조합이 실제로 도움을주고있는 것 같지는 않습니다.
목표
일반적인 목표는 코딩 효율성을 극대화하고 (예 : 시간 낭비 최소화) 유용한 소프트웨어를 작성하는 것입니다.
질문
간단히 말해서이 문제를 어떻게 해결하고이 상황에 대처합니까?
내가 생각할 수있는 유일한 효율적인 솔루션은 각 개발자가 디자인에 대한 자신의 스타일을 따르도록하는 것입니다. 그러나 이것은 코드를 검토하고 실제로 서로의 변경 사항을 승인해야 할 때와 다른 사람이 사용할 수있는 일관된 프레임 워크를 설계하려고 할 때 들리는 것보다 어렵습니다.
더 좋은 방법이 있습니까?