민첩하게, 프로젝트 시작시 기본 인프라 작업은 어떻게 TFS 온라인과 같은 엄격한 관리 프레임 워크를 사용하여 계획되고 할당됩니까?


9

여기에서는 비교적 작은 새 소프트웨어 개발 프로젝트의 범위를 정하고 추정하는 과정에 있습니다. 나는 고객이 제안한 사용자 스토리를 겪고 각각의 작업에 대해 작업을 수행하는 방법에 대한 견적과 간단한 메모를 작성했습니다. 수락 기준이 있습니다. 모두 세상에 좋을 것입니다.

여기에 이미지 설명을 입력하십시오

계획 한 작업을 살펴보면 뭔가 빠진 것이 있다는 것을 깨달았습니다. 단순히 기능을 강화할 수있는 것들을 설정하는 데 초기 비용이들 것입니다. 하나의 특정 사용자 스토리가 아닌 모든 사용자 스토리에 속하는 것.

예를 들어이 응용 프로그램의 일부는 XML을 구문 분석하는 서비스입니다. 사용자 관점에서 XML의 내용에 따라 다른 작업을 수행해야하는 구체적인 사례가 있습니다. 실제로 파일을 찾고, 파일을 읽고, 내용과 관련하여 무엇을할지 결정하기 전에 관련 데이터를 꺼내는 XML 파서를 작성하는 것은 모든 이야기의 일부입니다. 설치 프로그램 등을 사용하여 Windows 서비스에 래핑하는 것처럼 사용자와 직접적인 관련이없는 개발자 중심 작업입니다.

이 특정 응용 프로그램의 또 다른 관련 예는이 응용 프로그램의 기능에 유용한 가난한 레거시 코드 블록을 가져와 다시 작성하는 것입니다. 다시 말하지만 이것은 사용자에게 즉각적인 결과는 없지만 필요한 작업입니다. 사용자 스토리에 중점을 둔 프로젝트 계획에서이 작업의 계획 및 실행은 어디에서 "실제"입니까?

사람들이 "개발자로서하고 싶습니다"라는 사용자 스토리를 작성하여이 문제를 해결하는 것을 보았지만 다른 곳에서 논의 된 것처럼 이것은 사용자 스토리 가 아닙니다 . 개발자입니다.

TFS 온라인과 같은 엄격한 관리 프레임 워크를 사용하여 프로젝트를 계획하는 데 도움이되는 구체적인 답변을 찾고 있습니다. 이들은 "이해 관계자의 이야기"나에 대한 답변에 언급 된 다른 모호한 메타 솔루션을 만들 수있는 기능을 가지고하는 경향이없는 계획 회의에서 인프라 작업을위한 스크럼 팀 계정을 수행하는 방법을?


2
컴퓨터 나 서비스를 "사용자"처럼 취급 할 수 있다고 말하면 분석이 변경됩니까?
Robert Harvey


1
@mmathis 나는 그 질문을 보았고 비슷하고 관련이 있습니다. 그러나 실제로이 질문에 대한 답변은 없습니다. 특히 TFS와 같은 기존 프레임 워크 내에서 수행하는 방법에 초점을 둔 경우.
밥 트웨이

@RobertHarvey는 부분적으로 그렇습니다. 이 경우에는 서비스를 다루지 만 레거시 코드는 다루지 않습니다. 그 접근 방식이 요구 사항을 충족하지 못하는 다른 상황을 생각할 수 있습니다. 나는 그것이 얼마나 널리 받아 들여지고 있는지 알고 싶다. "개발자로서"문제를 해결하기위한 의미 론적 변화처럼 보인다.
밥 트웨이

2
당신은 시스템 사용자와 iteration0 치트 또는 케이크를 다르게 잘라 치트 수 있습니다. 첫 번째 기능은 일부 사용자 기능과 기능을 작동시키는 데 필요한 인프라를 제공합니다. 그런 다음 더 많은 인프라를 제공하는 기능 2를 사용하면 필요하지 않은 인프라를 설정하는 데 시간을 낭비하지 않아도됩니다. 지금 비명을 지르고 있지만 다시 계획해야한다는 의미라면 민첩하지 않은 것입니다.
ctrl-alt-delor

답변:


12

반복 0에 최대한 많은 "도구"코드를 넣는 다른 답변이 마음에 듭니다. 그러나 때때로 이러한 종류의 도구는 프로젝트가 이미 시작된 후에 나타납니다. 아마도 Iteration 3에서는 앞으로 다양한 스토리에 사용될 일반화 된 XML 파서 위젯이 필요하다는 것을 알고있을 것입니다.

이 경우 이러한 내부 아키텍처 조각을 사용하는 첫 번째 사용자 스토리는 이들이 속한 것 입니다. Story # 345 작업을하려고하는데 XML 구문 분석기가 '완료'로 계산되기 전에 XML 구문 분석기에 의존하는 경우 재사용 가능한 구문 분석기는 해당 스토리를 완료하기위한 작업으로 첨부됩니다.

우리 팀은 위의 접근 방식을 사용했으며 우리에게 잘 작동하는 것 같습니다.


나는 이것과 비슷하게 대답하려고했습니다. 이야기가 무언가를 필요로한다면, 그것은 이야기의 일부입니다. 일부 스토리는 인프라를 구축 한 또 다른 스토리를 따르는 이점을 얻을 수 있습니다. 그러나 스토리의 우선 순위가 높은 경우를 대비하여 필요한 모든 스토리를 유지해야합니다. 첫 번째 것이 무엇인지 확신 할 수 없습니다.
Jay S

1
+1 좋은 지적입니다. iteration 0, 1 또는 bagatelle이 무엇이든간에. 가장 비합리적이거나 알지 못하는 사람을 제외한 모든 사람들은 일부 기초가 필요하다는 것을 이해합니다. 페인트를 칠하면 벽을 준비하고, 요리를하고, 자르고, 음악가라면 연습을합니다.
Robbie Dee

6

인프라 스트럭처 인 경우 일반적으로 Iteration Zero에 배치됩니다. 반복 제로 란 무엇입니까? 일반적으로 실제 반복이 시작되기 전에 시작과 계획 사이의 시간입니다.

예를 들어, 새로운 웹 서비스가 필요하다고 가정하십시오. 따라서 프로젝트를 생성하고, 지속적인 통합을 설정하고, 소스 제어 리포지토리를 설정하고, 빌드 스크립트 및 자동 배포를 설정하는 등의 작업을 수행해야합니다.

따라서이 작업은 반복 0에서 수행됩니다. 반복 1이 시작될 때 이미 컴파일되고 자동화 된 빌드 스크립트가 있으며 배포 할 새 프로젝트 셸이있을 것입니다. 이제 사용자 기능은 없지만 준비가되었습니다.

반복 작업의 일부로이 작업을 계속 추적하고 계획합니다.

리팩토링 은 어떤 반복에서도 진행될 수 있는 기술적 인 이야기 처럼 들립니다 .


4
+1도 사용하기 때문에 +1이지만 실제로 Interation Zero는 새로운 Iteration One입니다. 비즈니스 이해 관계자가 실제로 신경 쓰지 않는 반복 일 뿐이지 만 이해 관계자가 관심을 갖는 것에 도달하기 위해 필요합니다.
Greg Burghardt

선의의 반복 0을 가질 수는 있지만 1 일부터 가치를 제공 할 수는 없습니다. 코드 절단을 시작하기 위해 빌드 서버, 자동 배포 및 소스 코드 저장소가 필요하지 않습니다. 나중에 발생할 수 있습니다. (또는 심지어 병렬로).
Robbie Dee

3

인프라에 따라 다릅니다.

인프라가 매우 중요하거나 복잡한 규정 준수 규정을 준수해야하는 경우 별도의 인프라 팀이있을 수 있습니다. 민첩 할 수도 있고 폭포 일 수도 있습니다. 이 경우 인프라 구축은 프로젝트에서 외부 종속성 으로 관리됩니다 .

팀에서 인프라를 관리하고 한 번만 설정하려는 경우 Jon이 설명하는 반복 0 기술을 사용할 수 있습니다.

인프라 설정이 여러 번 반복되는 경우 (예 : 지금 빌드 서버를 설정했지만 QA 및 사전 제작 서버를 약간 나중에 빌드 할 예정인 경우) 빌드 아웃은 작동하지 않는 PBI로 관리 할 수 ​​있습니다. 기능적 PBI에는 이들에 대한 특정 종속성이있을 수 있으며, "전임자"링크를 사용하여 TFS에서 코드화 할 수 있습니다.

물론 위의 모든 내용을 혼합하여 사용할 수 있습니다. 예를 들어, 연속 빌드 서버 없이는 많은 작업을 수행 할 수 없으므로이를 반복 0에 넣을 수 있습니다. 한편 사전 prod 서버는 반복 2 및 3의 태스크로 정의 될 수 있으며 DBA 팀에 외부 종속성이있을 수 있습니다 ( 데이터 센터에 DB 인스턴스를 할당 할 사람은 민첩하지 않습니다. 또는 특정 기능에 대해 SSL 인증서가 발행 될 때까지 기다려야 할 수도 있습니다. 4 번 반복 할 수 있으며 해당 인증서를 사용하는 모든 기능 항목은 선행 작업 / 성공자 관계로 연결되어야합니다.

모든 경우에 다음을 기억하십시오.

  1. 항상 명확한 수용 기준을 정의하십시오. 하드웨어 사용자는 서버를 세우고 전혀 검증되지 않았을 때 서버를 호출하는 성가신 경향이 있습니다.
  2. 팀의 반복 킥오프 동안 팀은 PBI 또는 작업 항목을 커밋하기 전에 종속성 및 가용성을 검사해야합니다.

하드웨어 사용자는 서버를 세우고 서버의 유효성이 전혀 검증되지 않았을 때 전화를 거는 성가신 경향이 있습니다. 따라서 최근 DevOps가 보급되었습니다.
Robbie Dee
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.