나는이 정확한 질문에 대해 많이 생각했습니다.
개인적 책임에 의한 슬라이싱과 팀 책임에 의한 슬라이싱을 구별하는 것이 중요하다고 생각합니다. 이 답변은 주로 슬라이싱 팀에 중점을 둘 것입니다.
일부 배경 : 풀 스택 개발자, 단일 계층 개발자, 수직 (풀 스택) 팀, 수평 (단일 계층) 팀 및 대각 팀과 함께 프로젝트를 수행했습니다. 대각선 팀이란 이야기에 필요한 모든 계층을 포함하지만 시스템의 모든 계층을 반드시 포함 할 필요는 없으며 동일한 계층에 중점을 둔 여러 개발자를 포함 할 수도 있습니다. 다시 말해서, 정신적으로 수직이지만 외관상 또는 구 현상 세부적으로 다소 수평적일 수있다.
최근에 저는 수평 팀에서 대각선 (거의 수직) 팀으로 전환 한 그룹에서 일했습니다. 같은 그룹의 사람들이 두 가지 다른 방식으로 정렬되는 것을 보는 것은 특히 교훈적입니다. 그것은 몇 가지 장점과 단점을 분명하게 만듭니다.
다음 요약 비교로 지금까지 의견을 정리하겠습니다.
수평 팀
장점 :
- 관심사 분리 및 느슨하게 결합 된 계층 육성
- 훨씬 쉬운 워크로드 분배 관리
- 전문 기술 담당자가 관리하기 쉬움
- 인트라 계층 협업, 모범 사례, 자부심 및 우수 문화 조성
- 자연스럽고 긴급한 통신 패턴과 일치
단점 :
- 계층을 분리하여 계층 간 통신을 방해 할 수 있음
- 완화되지 않은 경우 계층 "버블"문화 활성화
- 일반 리더십을 활용하기 어려움
- 일반인 방해
수직 / 대각 팀
장점 :
- 한 팀에서 사용자 스토리의 모든 부분 ( "원 스톱 상점")
- 단일 스프린트로 n- 계층 스토리를 전달하는 데 특히 도움이됩니다 (실제로 필요합니까?)
- 계층 간 협업 및 일반 기술의 성장 촉진
- 일반인 지원
단점 :
- 훨씬 더 어려운 워크로드 분배 관리
- 열악한 관심사 분리 및 긴밀하게 결합 된 계층 가능
- 계층 내 통신을 줄임으로써 전문화를 방해합니다. 수평 적 / 전문가 적 행동을 완화시키지 않으면 서이 구조에서 어떻게 우수 문화가 생길 수 있는지 알기가 어렵다
팀 멤버십이 모든 솔루션에 적합한 것은 아니라고 생각합니다. 그러나 수직 팀은 일반화가 필요한 조직에 더 적합합니다. 엔지니어가 일반 전문가이고 풀 스택 작업을 좋아하는 경우 수직 팀을 고려해야하는 아주 좋은 이유입니다. 수평 팀은 전문가가 필요한 조직에 더 적합합니다. 엔지니어가 전문가라면 수평 팀을 고려해야하는 아주 좋은 이유입니다.
다른 사람들이 언급했듯이, 다른 방향을 얇게하는 2 차 구조 / 동작은 시스템의 단점을 완화하는 데 도움이 될 수 있습니다. 흥미로운 완화 요소 중 하나는 스프린트 지속 시간입니다. 짧은 스프린트는 수평 팀의 단점 중 일부를 더 견딜 수있게합니다. 이번 주에 백엔드와 다음 주에 프론트 엔드를 구축 할 수 있다면 충분히 빠를까요?
이러한 제안 된 원칙 중 일부를 실제 문제에 적용하기 위해 ... 수평 슬라이스는 내가 작업 한 매우 실제적인 SaaS 개발 팀에서 매우 효과적이며 모든 계층에서 매우 어려운 기술적 문제를 해결하고 있다고 말합니다 ( 전문화가 엄청나게 중요하다고 생각되는 곳에서, 배달 빈도 (및 높은 세분성 / 빈도에서의 신뢰성)는 비즈니스 성공에 중요했습니다. 이 결론은 수평 슬라이싱의 우수성에 대한 일반적인 진술이 아니라 매우 특정한 실제 팀을위한 것입니다.
한 가지주의 사항 : 나는 아마도 몇몇 희귀 한 예외적 인 일반인을 알고 있었음에도 불구하고 현대 소프트웨어 개발 세계의 개인에 의한 일반주의 능력에 대한 믿음의 주장에 대해 상당한 증거없이 편향되어있을 수 있습니다. 나는 일반적으로 각 계층이 복잡해지고 대안 언어 / 플랫폼 / 프레임 워크 / 배치의 확산에 따라 각기 다른 요구를 충족함에 따라 일반성이 엄청나게 큰 순서라고 생각합니다. 요즘에는 모든 거래의 잭이 아무도 쉽게 마스터 할 수 없습니다. 또한, 일화 적으로, 나는 대부분의 개인이 약간의 예외를 제외하고는 꽤 전문화하기를 원한다는 것을 알았습니다.