스크럼-스프린트 외부에서 작업하는 개발자


12

스크럼 팀

  • 3 x 개발자
  • 2 x 테스터
  • 1 x 자동화 테스트 분석가

우리는 개발자가 테스트하지 않고 테스터가 개발하지 않는다는 점에서 다기능 팀이 아닙니다. 이것이 문제의 근본 원인이라고 생각합니다.

우리는 현재 2 주 스프린트를합니다.

스프린트가 시작될 때 모두가 바쁘고, 개발자는 개발 작업을 시작하고 테스터는 테스트 준비 (테스트 케이스 작성 등)를하고 있습니다.

테스터가 준비를 마치면 개발 작업이 완료되기를 기다리거나 개발 작업이 완료되고 개발자가 피드백 / 버그를 기다리고 있습니다.

개발자는 여기에 가려운 발목을 잡고 현재 스프린트 외부에있는 백 로그의 항목에 대해 작업하기 시작합니다. 이것은 현재 스프린트에서 다음 스프린트 작업을 개발하는 이상한 영향을 미쳤습니다. 나에게 이것은 기분이 좋지 않습니다.

경영진의 관점에서 볼 때 개발자는 책상에 앉아있는 것보다 작업을하는 것이 아니라 스크럼 팀의 목표와 초점이 현재의 스프린트에만 집중해야한다고 생각합니다. 우리 팀이 다기능이지만 불행히도 달성 할 수 없기를 바랍니다. 테스터는 개발 작업을 수행하는 데 필요한 기술이 없으며 대부분의 개발자는 테스트가 그 아래에 있다는 의견을 가지고 있습니다.

이것은 스크럼에서 문제로 간주됩니까? 이것에 대한 해결책이 있습니까? 스크럼은 다기능 팀과 만 작동합니까?

가능한 경우 다른 사람들의 경험을 알고 싶습니다. :)


3
경영진에 동의합니다. 임의의 2 주 기간 동안 사람들이 앉는 것은 끔찍한 생각입니다. 아마도 팀의 책임이 너무 엄격 할 것입니다. 이 작은 팀에서는 모든 팀 구성원이 "교차 기능"을하는 것이 드문 일이 아니므로 현재 스프린트에서 필요한 곳으로 이동할 수 있습니다.
Robert Harvey

... 아마도 2 주 동안 팀을 점령 할 수있을 정도로 스프린트에 충분하지 않을 수도 있습니다.
Blrfl

3
하이브리드 페어 개발 / 테스트 매시업이 실용적입니까? 어떤 점에서 프로세스는 단위 테스트주기와 동일합니다. 약간의 테스트를 조금 작성하십시오. 우리는 공식적으로 이것을 가지고 있지 않았지만, 테스터들은 버그가 발견 될 때 직접 우리에게 오는 습관을 가지고있었습니다. 공식적인 버그 보고서를 통해 통신하지 않았습니다. "나의 테스터"가 테스트를 마칠 때까지 나는 수정을 마쳤다. 웹 앱으로 수정하면 효율적으로 해결되었습니다. 그러나 적어도 실험하십시오. 솔직히 말해서 그것이 더 나쁘지 않더라도 개별 대기 시간을 줄일 수 있습니다.
radarbob

3
스프린트를 위해 처음 계획된 작업이 일반적으로 충분한 품질로 완료됩니까? 아니면 원래 계획에서 반쯤 끝난 이야기가 남아 있습니까?
Bart van Ingen Schenau

2
프로세스를 유지하면서 '스크럼'대신 '칸반'이라고 부르면 프로세스가 스크럼에 적합한 지 걱정할 필요가 없습니다. / 다소 비꼬는하지만, 정말
에릭 왕

답변:


16

이는 파이프 라이닝으로 인해 다소 일반적인 문제 입니다. 이 팀은 다기능이지만 성능을 저하시키는 내부 사일로가 있습니다.

먼저 중요하다고 생각되는 몇 가지 사항에 주목하고 싶습니다.

  1. 개발자가 미리 반복 작업을하는 경우 계획 회의를 선점합니다. 제품 관리자와 팀은 다음 반복에 가장 유용한 것이 무엇인지 논의해야합니다. 우선 순위는 개발자가해야 할 일이 더 없기 때문에 효과적으로 수행해서는 안됩니다.

  2. 반복을 나누고 배열하는 방법에 관계없이 팀에 사일로 작업 전문가가있는 한 모든 사람을 항상 점유하고 단일 계획 회의로 단일 팀을 가질 수는 없습니다. 순수한 폭포 접근 방식을 사용하더라도 "벽에 물건을 던져"피드백을 기다려야합니다.

  3. 또한 단일 스토리에 개발 단계, 테스트 단계, 버그 수정 단계가 필요하다는 문제점이 있습니다. 특히 팀이 비효율적 일 수 있습니다. 컨텍스트 전환이 필요하기 때문입니다.

이 상황에는 분명히 비용이 많이 듭니다. 팀이 협업하고 있지 않습니다. QA 팀이 참여할 때마다이 문제가 발생하여 다른 솔루션을 실험 할 시간이 조금있었습니다.

나를 위해 매우 잘 작동 한 것은 다음 두 가지 도구입니다.

  1. 모든 팀원 이 일을 처리해야 한다는 원칙을 강조하십시오 . 개발자가 "더 이상 내 문제가 아님"이라고 말하는 방식으로 "dev done"스토리를 거부하십시오. 이는 건설적이고 특허 적으로 거짓이 아닙니다. 팀이 수락 한 스토리를 전달하지 않으면 전달하지 않은 전체 팀입니다.

  2. 개발자와 QA 모두의 시간을 점유하려면 페어링하십시오 . 이것은 당신이 선택할 수있는 전문 지식과 도메인 지식을 공유하는 가장 좋은 방법입니다. 개발자는 테스터가 작업을 자동화하도록 도울 수 있습니다. 테스터는 취하기 때문에 코드를 테스트하는 것이 중요한 곳을 개발자에게 보여줄 수 있습니다. 둘 다 협력하고 빠르게 작동하지 않습니다.

이 두 가지 기술을 사용하면 팀의 업무 처리량이 줄어들고 성능이 향상됩니다. 테스터와 개발자는 작업을 교환 할 가능성이 거의 없지만 팀원으로 일하고 서로를 비난하는 대신 내부적으로 문제를 해결할 수 있습니다.


1
답변 주셔서 감사합니다. 개발자와 QA 리소스를 함께 사용한다는 아이디어가 정말 마음에 듭니다. 다음 회의에서 이것을 제안하고 다음 스프린트에서 이것을 시험해 볼 수 있기를 바랍니다. 질문을 업데이트하고 어떻게 진행되는지 알려 드리겠습니다!
fml

@Sklivvz QA 부서가있을 때보 다 더 자주 발생합니다. 품질 보증이 '확실한 사람'만 수행 할 수있는 역할 일 때마다 발생합니다. "다음"우선 순위가 높은 작업을 수행하는 유휴 자원 대신 개발자가 유휴 상태가 된 다음 QA가 개발자 출력에 지속적으로 반응하는 동안 더 많은 작업을 수행합니다.
Edwin Buck

1
위에서 명확하지 않은 경우, "다음 우선 순위가 높은 작업은"QA 백 로그를 줄여서 품목을 선적 할 수 있도록하는 것 "이 될 것입니다.
Edwin Buck

1
전체 팀과 같은 조언은 책임이 있지만 실제로는 좋은 것으로 들리지만 팀에는 도움이되지 않습니다. 그것은 모든 사람이 상호 교환이 가능하다는 것을 암시하며, 투구하지 않는 모든 사람이 부족합니다. 이것은 잘못되었습니다. SDLC에있는 각 사람은 특별한 역할을하며 기술을 연마하기 위해 몇 년을 보냈습니다. 소프트웨어 엔지니어에게 품질을 테스트하는 데 필요한 경험이 없기 때문에 테스트를 요청하는 것은 품질에 해롭고 반쯤 노력할 것입니다. QA 엔지니어가이를 멘토링하더라도 멘토링은 테스트에서 시간이 걸리고 작업 시간이 더 오래 걸립니다.
척 콘웨이

1
@ChuckConway 아무도 당신이 말하는 것을 제안하지 않습니다. 페어링은 대체 또는 멘토링이 아닙니다. 이상적으로는 가동 중지 시간을 최소화하는 가장 좋은 방법을 찾기 위해 팀을 신뢰하며, 이는 서로의 역할과 요구를 이해하는 사람들로만 시작할 수 있습니다. 가장 효율적이고 효율적인 팀은 스스로 조직합니다 (사실 여부는 민첩성의 기본 원칙입니다).
Sklivvz

2

SCRUM 및 스프린트와 관련하여 작업하는 방식에는 문제가 없습니다. 단, 개발자 작업이 더 적은 시간 (그리고 훨씬 더 적은 시간)으로 완료된 후 계획된 시간에 평가 시간에 기록됩니다. 이를 통해 팀은 다음 스프린트를 위해 더 많은 스토리 포인트를 취할 수 있습니다. 결국 스프린트의 요점은 계획을 더 잘 세우는 것입니다. 분명히 당신은 여전히 ​​개선의 여지가 있습니다.

우리는 항상 현재 스프린트에서 다음 스프린트 작업을 개발하고 있습니다

우와! Scrum에서는 기술적으로 불가능합니다. 다음 스프린트에 어떤 백 로그 항목이 있는지, 즉 스프린트 계획 세션에서 다음 스프린트가 시작될 때 설정되어야합니다.

조직이 Scrum을 방해하는 새로운 창조적 인 방법에 대해 배우는 것은 여전히 ​​흥미 롭습니다.


3
"Whoa! 이것은 기술적으로 Scrum에서는 불가능합니다."및 "... 조직이 Scrum을 방해하는 새로운 창조적 인 방법"과 같은 진술의 문제점은 그들이 "Scrum을하는"올바른 방법이 있다는 것을 암시합니다. 올바른 방법이 되려면 스크럼은 설명이 필요합니다. 즉 사람에게 프로세스를 배치해야합니다. 따라서 스크럼을 수행하는 올바른 방법이 있다면 스크럼은 민첩한 프로세스가 아닙니다.
David Arno

@David Arno 훌륭합니다. 기본적으로 모든 방법론은 정의에 따라 민첩하지 않습니다. 민첩한 선언조차도. 예측할 수없는 혼란 만 민첩 할 것입니다. 하지만 잠깐만 .. 누가 날 혼란스럽게하라고 말하는거야? 지금 진지한 문제 : 민첩한 adagium "프로세스 이전의 사람들"이 충돌을 해결하기 위해 존재합니다. 선택해야한다면 반드시 규칙이 말하는 것이 아니라 말이되는 것을해야합니다. OP 팀은 문제없이 Scrum 책으로 갈 수 있습니다. 그리고 아마도 그들이 할 수있는 주요 질문은 그들이 얼마나 투명한 지에 관한 것 같습니다.
Martin Maat

1
@DavidArno는 실제로 스크럼을 수행 하는 특정 잘못된 방법 이 있음을 암시하며 논란의 여지가 없는 것 같습니다. 예를 들어, 민첩한 선언 과 모순되는 것은 객관적으로 부정확 한 것 같습니다.
Sklivvz

1

스크럼 은 개인이 아닌 팀을 위해 최적화합니다 . 스크럼의 요점은 팀이 효율적이되는 것입니다. 개발자가 현재 스프린트 이외의 작업을 시작하면 팀을 무질서하게 만듭니다. 또한 스프링을 채우기 위해 충분한 작업을 계획하지 않으면 계획 프로세스에서 다소 실패하고 있음을 보여줍니다.

개발자가 개발 작업이 부족한 경우 테스터, 기술 작가 또는 디자이너 (팀의 모든 사람)에게 도움을 청해야합니다. 그들은 반드시 (그들은,하지만 실제 테스트를 작성하지 않아도 해야 ),하지만 그들은 여전히 테스트 과정에 참여할 수 있습니다. 테스터의 효율성을 높이는 데 도움이되는 스크립트를 작성하거나 테스터와 문제를 논의하고 해당 문제를 극복하는 데 도움을 줄 수 있습니다 (예 : 웹 페이지 요소에 id 속성 추가, 테스터가 제공하는 후크 또는 API 제공) 테스트 등에 사용할 수 있습니다).

문제의 핵심은 개발자가 항상 현재 스프린트에서 작업하지 않는 경우 아직 팀으로 작업하지 않는 것입니다. 스크럼 마스터는주의를 기울여야하며 팀을 개인이 아닌 단위로 일하게해야합니다.

또한 이것이 관리 문제라고 제안합니다. 개발자가 바쁘게 지내도록 압력을가한다면 스크럼을 완전히 수용하지 않은 것입니다. 이것은 스크럼 마스터가 도울 수있는 또 다른 것입니다. 그들은 경영진과 협력하여 스크럼의 작동 방식을 이해하여 개발 팀을 전복시키는 대신 지원하고 격려 할 수 있습니다.


0

여기서 중요한 문제는 다음과 같습니다.

개발자의 대다수는 테스트가 그 아래에 있다고 생각합니다.

우리가 회사에서이 문제를 처리 한 방법은 개발자가 실제로 작업을 증명할 수 없으면 실제로 작업을 완료했다고 말할 수있는 방법을 물었습니다. 물론, 그것을 증명하는 유일한 방법은 그들이 작성한 코드가 실제로 작동한다는 것을 보여주는 것입니다. 이것은 테스트를 통해 이루어집니다. 테스트에 참여하기로 동의하면 테스트가 더 빨라지고 추가 기능을 코딩하는 데 더 많은 시간이 필요하다는 점을 지적해야합니다 (테스트해야 함).

코드 테스트는 개발자 수준 아래에 있지 않아야합니다. 개발 과정에서 없어서는 안될 부분입니다. 코딩과 분리 할 수 ​​없습니다. 누구나 코딩 할 수 있습니다. 모든 사람이 코딩 한 내용이 실제로 작동한다는 것을 코딩하고 증명할 수있는 것은 아닙니다.

개발자를 바쁘게 만드는 또 다른 방법은 스프린트에서 개발 한 기능에 대한 자동화 된 테스트 코딩 작업을하는 것입니다. 그런 다음이 테스트를 주기적으로 실행되는 회귀 테스트에 사용할 수 있습니다.

어느 쪽이든, 스프린트의 시작 부분에 계획되지 않은 것을하는 것은 큰 아니오입니다. 계획되지 않은 일을하는 것보다 아무것도하지 않는 것이 좋습니다. 이러한 경우에 작성하는 기능은 테스터가 원래 계획된 내용을 테스트하여 바빴 기 때문에 제대로 테스트되지 않았기 때문에 DoD (정의 정의) 기준을 충족하지 않을 가능성이 높습니다. 이것은 버그를 도입하고 제품의 품질을 저하시키는 확실한 방법이며 팀을 하향 회귀 문제 및 컨텍스트 전환으로 유도하여 스트레스, 속도 감소 및 결국 팀으로 인해 팀을 종료합니다.


프로그래머가 코드를 테스트하고 있다고 말하고 자동화 테스트를 만들지 않습니다. 큰 차이가 있습니다.
JeffO

이 특별한 경우에, 나는이 프로그래머들이하는 유일한 테스트는 IDE에서하는 것임을 확신합니다. 실제로 많은 개발자가 솔루션을 설치 패키지에 빌드하고 최종 사용자가하는 것처럼 처음부터 패키지를 배포 한 다음 실제로 솔루션을 테스트합니다. 이는 대부분의 경우 충분하지 않으며 품질이 크게 저하되는 이유입니다.
블라디미르 스토 키

0

이론적으로 SCRUM 팀의 모든 구성원은 동일한 지식을 가지고 있어야 각 구성원이 다른 모든 구성원의 모든 작업을 수행 할 수 있습니다. 그렇지 않은 경우 지식을 전파해야합니다.

그러나 실제로는 항상 어떤 종류의 전문화가 있습니다. 소프트웨어는 복잡하고 팀 구성원마다 다른 기술이 있습니다. 팀을 개발자와 테스터로 나누는 것은 전문화의 한 가지 예일뿐입니다.

지식을 확산시키는 데는 경영진이 수용하는 것보다 시간이 더 걸릴 수 있습니다.

내 경험으로는 몇 가지 일을 할 수 있습니다.

  • 팀을 너무 작게 만들지 마십시오. 예를 들어 4 명의 개발자와 4 명의 테스터가있는 경우 다른 개발자 나 테스터로 작업을 이동하는 것이 훨씬 쉬우 며이 예와 같이 3/2 만 남게됩니다.
  • 더 큰 작업을 분할하십시오. 더 작은 작업이 있으면 더 유연 해집니다.
  • 남은 시간이있을 경우 수행 할 수있는 선택적 작업을 정의하십시오.

이러한 제안은 100 % 스크럼 이론이 아닐 수 있지만 먼저 개발 작업을 계속해야합니다. 스크럼은 도구 상자 일뿐입니다.


0

팀을 비 동기화해야 할 것 같습니다. 그렇게 :

   Test.   -------s1 -----------s2
   Dev.        --------s1 -----------s2

테스트 자동화 담당자가 며칠 일찍 시작해야한다는 것을 이해했다면.

그러나 나는 당신의 팀에서 문제를 느낀다 : 나는 자신의 코드를 테스트하지 않는 개발자들에게 문제가있다. 테스트 담당자가 코드를 검토하지 않고 테스트를 준비하는 경우 개발 된 프로그램의 결정 사항을 고려하지 않은 블랙 박스 테스트 만 수행하고있을 것입니다. 소프트웨어의 품질에 만족하십니까?

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