내가 이해하는 바와 같이, Agile 방법론의 아이디어는 기능적인 것을 제공하고 자주 제공한다는 것입니다. 응용 프로그램은 증분 후 최종 모양 증분에 들어갑니다.
그러나 초기 반복에서는 응용 프로그램이 서있는 프레임 워크 또는 기초를 구축하여 중요하지만 사용자에게는 보이지 않습니다.
이 첫 번째 반복에서 고객에게 무엇이 전달됩니까? 스캐 폴딩 코드를 빌드 할 때 올바른 방향으로 진행 상황을 어떻게 표시합니까?
내가 이해하는 바와 같이, Agile 방법론의 아이디어는 기능적인 것을 제공하고 자주 제공한다는 것입니다. 응용 프로그램은 증분 후 최종 모양 증분에 들어갑니다.
그러나 초기 반복에서는 응용 프로그램이 서있는 프레임 워크 또는 기초를 구축하여 중요하지만 사용자에게는 보이지 않습니다.
이 첫 번째 반복에서 고객에게 무엇이 전달됩니까? 스캐 폴딩 코드를 빌드 할 때 올바른 방향으로 진행 상황을 어떻게 표시합니까?
답변:
2 주 스프린트를하는 것이 일반적입니다.
나에게있어, 첫 스프린트 또는 2는이 정확한 이유 때문에 "스레드"에 대한 이후의 스프린트보다 "보이지 않는"특징을 가질 것이다.
즉, 스캐 폴드 전체를 제작하는 데 2 주가 걸리지 않으며 UI에 표시 할 항목이 없습니다.
첫 스프린트 또는 2에서 모든 발판 품목을 깎아 내지 않을 수도 있습니다. 부품이 기다렸다가 나중에 추가 될 수도 있습니다.
첫 번째 스프린트에 "더미 데이터로 웹 페이지 X 만들기"가있을 수 있으므로 고객에게 빛나는 것을 얻을 수 있습니다. 그리고 다음 스프린트에는 "데이터베이스의 데이터를 사용하도록 웹 페이지 X 변경"이 있습니다.
Agile Manifesto는 Working Software가 포괄적 인 문서보다 가치가 있다고 제안하고 Scrum 프레임 워크는이 개념을 바탕으로 비즈니스 가치가있는 테스트되고 작동하는 소프트웨어를 모든 스프린트에서 요구하는 것으로 제시합니다.
왜? 글쎄, 무엇보다도 디자이너와 개발자는 종종 YNNI (필요하지 않을 것입니다) 항목에 많은 시간을 소비하게됩니다. 불행히도, 당신이 이야기하고있는 프레임 워크는 종종이 분야에서 큰 책임입니다. 개발자들은 프레임 워크가 지원해야 할 모든 것을 구축하기 시작하고 갑자기 3 개월이 지나서이를 보여줄 비즈니스 가치가 없습니다. 그런 다음 프레임 워크가 실제로 필요한 것을 지원하지 않는 것으로 나타났습니다.
따라서 제안 된 접근 방식은 현재 실제로 필요한 것만 빌드하고 지금 제공하는 것입니다.
이것은 재사용 가능한 부품 등을 만들 수 없다는 것을 의미하지 않으며 항상 현재 요구 사항을 지원하기 위해 수행합니다. 또한, 도로에서 내려 오는 것에 대해 블라인더를 완전히 착용해야한다는 것을 의미하지는 않습니다. 그러나 핵심은 항상 비즈니스 가치를 제공하는 것입니다.
환경 설정 등과 같이 무엇이든 전달하기 전에 반드시 설정해야하는 몇 가지 주요 사항이 있습니다. 이를 위해 많은 팀이 기초를 다지는 "스프린트 0"을 갖는 것이 유용하다는 것을 알게되었습니다. 스프린트 0은 제품의 백 로그 나 번 다운에 적용되지 않기 때문에 다른 스프린트보다 약간 길 수 있지만 여전히 적절한 시간 간격을 유지해야합니다.
이 첫 번째 반복에서 고객에게 무엇이 전달됩니까?
사용자에게 가장 큰 비즈니스 가치가있는 것. 예를 들어, 응용 프로그램에 복잡한 비즈니스 규칙이있는 경우 첫 번째 반복에는 코드 형식으로 인코딩 된 해당 비즈니스 규칙 만 포함됩니다. 해당 비즈니스 규칙에 대한 코드가있는 한 고객은 만족해야합니다. (실제로 고객이 그러한 일을 받아들이도록 설득하는 문제는 완전히 다른 문제입니다.) 예를 들어, 고객의 비즈니스 전문가에게 도메인이 수행해야하는 작업을 나타내는 단위 / 수락 테스트를 보여줄 수 있으며 해당 코드는이를 녹색으로 표시 할 수 있습니다. 또는 비즈니스 전문가가 테스트 작성을 돕도록하십시오.
의 질문도 있습니다
당신은 프레임 워크 또는 기초를 구축 할 수 있습니다
내가 실제로 전달하는 것보다 훨씬 더 중요하다고 생각합니다. Evolutionary Design 에는 아키텍처를 처음부터 작성하는 대신 시간이 지남에 따라 작성해야한다는 큰 문제 가 있습니다. 기본적으로 이것은 일반적으로 일종의 데이터베이스 또는 UI 프레임 워크를 의미합니다. 어떤 경우에는 " 좋은 아키텍처는 중요한 결정을 연기 할 수있는 것 "이라는 아이디어가 있습니다 . 그리고 데이터베이스 나 UI를 선택하는 것은 중요한 결정입니다. 예를 들어, 첫 번째 반복에서 DB를 사용하려고 시도하는 대신 인 메모리 스토리지로 데이터를 저장하는 것이 좋습니다.
우리가 시도하는 것은 가능한 한 가장 간단한 응용 프로그램 (우리가 제공하는 것의 hello world 버전)을 첫 번째 반복으로 제공하는 것입니다. 우리는 이것에 3 가지 중요한 이점이 있습니다 :
그러나 초기 반복에서는 응용 프로그램이 서있는 프레임 워크 또는 기초를 구축하여 중요하지만 사용자에게는 보이지 않습니다.
나중에 사용할 수있는 프레임 워크를 구축 할 필요가 없기 때문에 이것은 잘못된 것입니다. 아이디어는 필요한 것만 빌드하는 것입니다 ( YAGNI 참조 ).
스프린트 제로에서는 실제 작업을 준비해야합니다. 많은 사람들이이 스프린트에서 무엇을해야하는지 논쟁하지만, 제 생각에는 백 로그의 항목에 대한 작업을 시작할 수있을 때 완료됩니다. 이 단계에는 PC 설정, 빌드 프로세스 설정, 프레임 워크 선택 등이 포함됩니다.
스프린트 제로 (또는 반복 제로)를 완료하면 애플리케이션 작업을 시작할 수 있습니다. 백 로그에서 항목을 가져 와서 하나씩 완료하십시오. 반복 1을 마치면 유용한 무언가가 생길 것입니다. 첫 번째 반복에는 일반적으로 가장 중요한 기능 중 일부가 포함됩니다.
이 첫 번째 반복에서 고객에게 무엇이 전달됩니까? 스캐 폴딩 코드를 빌드 할 때 올바른 방향으로 진행 상황을 어떻게 표시합니까?
반복 제로 후에는 분명히 전달할 것이 없습니다. 결과물은 반복 후 나온다. 반복에 대해 설정 한 기능이 포함되어 있습니다.
질문이 "반복 X에 들어가는 것을 선택하는 방법"이라면 이 비디오 캐스트 (반복 0A 및 B의 비디오)를 살펴보십시오 .
원하는 것을 거의 제공 할 수 있습니다. 인프라 아이디어 구축은 단순히 잘못되거나 민첩하지 않고 지속 불가능합니다.
예를 들어, 모든 기능을 갖춘 Hello World 앱을 몇 시간 안에 구축 할 수 있습니다. 클라우드에서 또는 VM으로 서버를 일시적으로 가동시키는 작업은 몇 시간 내에 완료 할 수 있습니다.
이것들은 개발을 시작하기에 충분합니다 . 그런 다음 CI가 필요한 경우 CI 스토리를 추가 할 수 있습니다. 실제 서버가 필요한 경우 스토리를 추가하십시오.
그러나 1 일째부터 배달을 시작하고 멈추지 마십시오!
초기 반복, 특히 첫 번째 반복에는 최소한의 발견 시간과 아키텍처 프로토 타입이 포함 된 아키텍처 스파이크가 포함되거나 계획되어야합니다.
말했듯이, 일반적으로 이해 관계자 / 고객에게 큰 의미는 없지만 강력한 플랫폼 또는 패턴 방향을 형성해야하는 구조적 요구 사항이 있습니다. A가 완료 될 때까지 B 빌드를 시작할 수 없으므로이 문제를 해결할 수 없습니다.
민첩한 접근 방식의 일부는 고객을 닫는 것이므로 전화를 받거나 이메일을 보내기 만하면되기 때문에 문서가 필요하지 않습니다. 고객의 기대는 적절하게 설정되어야하며 완료된 모든 작업은 매우 간결하고 필요 합니다. 금도금, "필요한 것"등이 없습니다. A에서 B로 옮기기 위해 필요한 것을 만드십시오.
프로젝트를 어떻게 공격하고 있는지에 따라 특정 모듈을 완성하기 위해 필요한 기초 만 구축 할 수 있으므로 스프린트 계획 회의 중에는 현재 스프린트 계획을 우선 순위에 따라 배치해야합니다. 고객은 해당 스프린트에 필요한 사항에 따라 몇 가지 기본 요구 사항이있을 수 있으므로 스프린트 1에 들어가게됩니다. 첫 번째 스프린트가 완료되고 A가 빌드 된 후 B를 완료 할 계획입니다.
고객과의 타임 라인에 동의 한 경우 해당 계약을 충족하기 만하면 고객은 1 차 또는 2 차 업무에 신경 쓰지 않을 것입니다. 단위 테스트 결과를 항상 표시 할 수 있지만, 스프린트 2 (또는 3) 이후에 볼 수있는 내용이 있고 전달하면 강력한 우선 순위가 설정됩니다. 고객은 개발자만큼 합리적이어야하며 둘 다 동일한 목표를 향해 노력하고 있습니다. 고객의 요구를 충족시키고 예상대로 작동하는 완성 된 프로젝트. 고객이 스프린트 20 이후에 프로젝트가 완료되도록하기를 원하기 때문에 스프린트 1 이후에는 볼 것이 없다고 걱정합니다.