"왜곡"은 무엇입니까?


42

애자일 또는 익스트림 프로그래밍의 맥락에서 언급 된 무리를 들었습니다 . 페어링을 보완하는 것으로 보입니다.

정확히 무엇입니까? 언제 적용해야합니까? 당신은 어떻게 잘합니까?


@CodeWorks : Google에서 검색 한 결과 관련성이 거의 없었으며 내 질문에 대한 명확한 답변은 없었습니다. 정식 답변이 있다면 반드시 여기에 게시하십시오.
Jay Bazuzi


전략 비디오 게임 "Sword of the Stars"에는 개미 / 사마귀 / 하이브 마인드 사람들이 당신에게 "우리는 위엄있는 실험실을 연구하고 있습니다." 나는 항상 그것이 극적으로 아이러니 한 느낌으로 착륙 할 것이라고 생각했다.
Erik Reppen

답변:


43

아이디어는 팀의 모든 사람이 동시에 동일한 스토리에서 작업한다는 것입니다. 모든 사람이 다른 작업에 집중하는 대신 완료 될 때까지 한 번에 한 작업에 집중합니다. 그런 다음 다음 단계로 넘어 가서 모두 함께 작업합니다.

이것은 스프린트가 끝나기 전에 이야기를 완성하는 데 어려움을 겪는 팀을 돕습니다. 종종 팀은 모든 스토리의 80 %를 완료하지만 완료되지는 않습니다. 미완성 된 스토리는 최종 사용자에게 (효과적으로) 가치가 없으므로 스토리의 80 %를 완전히 마무리하는 것보다 유용하지 않습니다. 팀의 모든 사람이 한 번에 하나의 스토리에 집중할 때 스토리를보다 쉽게 ​​완료 할 수 있습니다. 이것이 무리를 짓는 동기입니다.

여기에는 약간의 어려움이 있습니다. 예를 들어, QA는 제품을 제작 (또는 설계)하기 전에 항상 테스트 할 수는 없습니다. 이 경우 디자인을 초기에 함께 설정 한 다음 QA는 실제 구현이 아닌 디자인에 대한 테스트를 작성할 수 있습니다 (초기 실패).


+1. 흥미 롭군 실제로이 작품을 보셨습니까?
CodeART

2
그것을 말하는 또 다른 방법은 "가능한 한 적은 수의 진행중인 작업을 수행하는 것"입니다.
Jay Bazuzi

1
@CodeWorks 예. 우리는 내가 현재 어떤 성공을 거두는 데 그것을 사용했습니다. 기능 지향적이기 때문에 개발하는 것은 매우 재미있는 방법입니다. 모두가 같은 목표를 향해 동시에 노력하고 있기 때문에 팀워크를 잘 장려한다는 것을 알았습니다.
Oleksi

1
@JayBazuzi 그래요. 팀 전체를 지원하는 것도 중요합니다.
Oleksi

9
@CodeWorks, 전혀 아닙니다. 실제로, 아마도 증가했을 것입니다. 모두가 매우 긴밀하게 협력했기 때문에 차단자가 적었습니다. 무언가가 떠 올랐을 때, 적어도 팀의 누군가가 그것을 해결하는 방법을 알고 있었고, 그들의주의가 집중된 후 바로 그렇게 할 수있었습니다. 또한 컨텍스트 전환은 일반적으로 생산성에 좋지 않습니다. CPU에게 물어보세요. : P
Oleksi

10

Swarming은 여러 사람이 함께 작업하여 작업 또는 스토리를 완료한다는 사실을 나타냅니다. 내 경험상 이것은 당신이 자주하는 일이 아닙니다.

일반적으로 팀의 각 구성원은 다른 작업 및 / 또는 다른 스토리에서 작업합니다. 누군가가 뒤처 지거나 작업이나 이야기를 일찍 끝내고 싶은 경우 다른 사람들은 다른 작업에 대한 작업을 중단하고 작업을 완료하기 위해 "왜곡"할 수 있습니다. 완성 됐습니다.

우리는 최근에 꽤 지루하고 흥미롭지 않은 작은 이야기를 가지고있었습니다. 나는 팀에게 작은 인센티브 (피자)와 마감일 (일의 끝)을 주어 일을 마쳤으므로, 그들은 이야기를 시작했고 오후에 적어도 며칠 동안 일을 중단했습니다. 그들은 일을 일찍 끝내고 나서 각 팀원은 그들이하고 있던 일로 돌아갔습니다. 그들은 무료 점심을 먹었고, 나는 그것이 둔한 성격으로 인해 드래그 할 수있는 일을 일찍 마쳤고 팀은 스프린트를 앞질렀습니다. 상생.

"Swarming"은 "이봐, 우리가 도와 줄게"라는 멋진 용어 일뿐입니다.


이것은 다른 답변과는 상당히 다른 것 같습니다. 당신은 "특별하고 시급한 필요가있을 때 모든 사람을 끌어들이십시오"라고 말합니다. @Oleksi는 "개발주기를 계획 할 때 각 사람이 별도의 작업을 동시에 수행하는 것보다 모든 사람을 한 번에 한 작업에 두는 것이 좋습니다"라고 말했습니다. 어느 쪽의 정의도 그럴듯하고, 둘 다 유용한 관행이지만, 그의 투표 수는 4 배입니다. 그래서 그의 대답이 가장 널리 받아 들여진 정의를 반영한다고 가정합니다.
Jay Bazuzi

@Jay Bazuzu : 스프린트 계획의 일환으로 모든 사람이 단일 작업에 참여하든, 필요에 따라 유기적으로 발생하는지에 대한 정의는 여전히 거의 동일합니다. 모두가 단일 작업에서 함께 작업합니다.
Bryan Oakley

귀하의 답변이 여기에 매우 중요하다고 생각합니다. '허용되는'다른 대답은 "무엇"입니다. 그러나 당신은 방법을 다루는 것 같습니다.
Ape-inago 2013

2

스 워밍은 실제로 민첩성의 중심 개념입니다. "문제가있을 때"행해지는 것이 아닙니다. 가장 단순한 형태의 스와 밍은 팀이 아이템 (스토리)에 대해 공동 작업을 수행하고 완료 할 때까지 작업 함을 의미합니다. 핵심 개념은 "시작을 끝내고 마무리를 시작하는 것"입니다. 즉, 모든 개발자가 스토리에 대해 독립적으로 작업하는 대신 팀은 더 제한된 스토리 / 태스크 세트에 중점을두고 각 항목을 더 빨리 완료합니다. 단일 스레드 시스템과 다중 스레드 시스템의 차이점으로 생각하십시오. 사용자 스토리에 10 개의 작업이 있고 각 작업이 8 시간 인 경우 합병증이 없다고 가정하면 한 개발자가 각 작업을 순차적으로 작업하여 80 시간 또는 약 2 주 (10 일 스프린트 제공)로 스토리를 완료 할 수 있습니다 하루에 8 시간의 개발 시간). 두 개발자가 작업을 분할하고 동시에 작업하면 어떻게됩니까? 이 방법으로 일주일에 동일한 80 시간의 작업을 완료 할 수 있습니다. 세 번째를 추가하면 3-4 일 후에 완료 될 수 있습니다.

스 워밍은 여러 가지 방법으로 수행 할 수 있습니다.

  1. 페어 프로그래밍 (두 명의 개발자가 코드 작업을 위해 나란히 앉아 있고, 하나는 코드를 작성하는 "드라이버"이고, 다른 하나는 네비게이터이며, 장기 방향을 염두에두고 동시에 코드 검토를 도와줍니다.
    1. 페어 작업 : 개발자와 테스터는 동일한 작업, 한 코딩 및 다른 테스트, 글쓰기 자동화 등에서 동시에 작업합니다.
    2. 위에서 언급 한 것처럼 흔드는 것은 매우 일반적입니다. 일반적으로 팀 구성원은 스토리를 시작했지만이 방법에서는 각각 개별 작업을 소유합니다.
    3. 폭도 프로그래밍 : 전체 팀은 한 번에 하나의 스토리 (또는 작업)에 중점을 둡니다.

모든 개발자에게 스토리를 제공하는 팀은 "진행중인 작업"또는 WIP가 너무 많은 경향이 있으며 종종 많은 스토리가 시작되지만 완료되지는 않습니다. 이것은 안티 패턴이며 모범 사례가 아닙니다.

무리를 짓는 팀은 WIP가 적고 더 많은 이야기를 완성하는 경향이 있습니다. 따라서 이것이 민첩성의 핵심 관행입니다.


1

InfoQ에 대한 다음 기사 는 스웜에 대한 한 가지 접근법을 설명합니다.

  • 팀은 대부분의 코딩 작업에 몹 프로그래밍을 사용합니다.
  • 팀의 일부 또는 개별 팀 구성원은 종종 짧은 간격으로 팀을 분할하고 참여합니다
  • 모두가 모든 역할을 수행합니다 (역할 없음)
  • 팀은 견적을 사용하지 않고 WIP는 항상 하나이며, 스탠드 업 또는 이와 유사한 행사가 필요하지 않습니다.

자세한 설명은 기사를 읽으십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.