민첩하게
나는 다음을 제안 할 것이다 :
동일한 파일 편집
먼저 Git (또는 유사한 동시 버전 관리 시스템)을 사용하십시오. 동일한 파일의 다른 부분을 편집하는 한 충돌이 발생하지 않습니다. 충돌이 발생하면 명확하게 표시됩니다.
Git없이 멀티 개발자 프로젝트를 관리하는 것은 푸딩 보울없이 푸딩을 만드는 것과 같습니다. 가능하지만 꽤 지저분해질 것입니다.
의견에서 지적했듯이 Git은 만병 통치약이 아니며 자동화 된 테스트와 결합되어 확실히 큰 도움이됩니다.
모든 기능을 나열
둘째, 프로젝트를 사용자가 볼 수있는 기능으로 나눕니다. 예를 들어 "사용자가 가입 할 때 이메일을 받아야합니다"또는 "사용자가 항목을 추가 할 수 있습니다". 여기에 모든 이해 관계자를 참여 시키십시오. 방에있는 모든 사람을 데리고 모든 사람이 자신의 기능을 외치도록하십시오.
이들은 사용자가 볼 수있는 기능이어야하며 나중에 구현 전략에 대해 이야기 할 수 있습니다.
색인 카드, 심지어 멍청한 것들까지 모든 제안을 쓰십시오. 목록을 신속하게 합리화하여 중복을 제거하고 큰 카드 또는 바닥에 모든 카드를 배치하십시오.
필요한 추가 카드를 추가하십시오. 애플리케이션이 SMS 문자 알림을 전송한다고 가정합니다. 그렇게하는 방법을 모를 수도 있으므로 질문이 있습니다. 카드에 "SMS 포털 조사"를 작성하십시오. 다른 큰 미지의 경우에도 마찬가지입니다. 나중에 포장을 풀어야합니다. 이러한 기능은 아마도 첫 스프린트에 들어 가지 않을 것입니다.
이제 카드를 그룹으로 분류하고 섞어서 느낌 을 얻으십시오 . 이것이 프로젝트 범위입니다.
포커 계획
포커를 계획하십시오. 여전히 모든 사람과 함께 "1 점", "2 점"등의 모든 개발자 카드에 최대 "4 점"을 부여하십시오. 또한 "더 많은"카드. 포인트는 대략 1 시간과 같습니다.
기능 목록을 하나씩 살펴보십시오. 기능을 읽으면 모두가 카드를 재생해야합니다. 한 사람이 1을 재생하고 다른 사람이 4를 재생하면 통신 문제가 있습니다. 한 사람은 다른 사람과 다른 것을 의미하는 기능을 이해합니다. 토론하고 실제로 의미하는 바를 해결하고 카드에 적어 둡니다.
기능이 "추가"인 것에 동의하면 해당 기능이 너무 큽니다. 이 기능을 분해해야합니다. 이전과 같은 방법으로이 작업을 수행하십시오.
동의 한대로 카드에 다른 색 펜으로 숫자를 쓰십시오.
시간이 시간보다 낫다
시간 대신 포인트를 사용하면 개발자가 자주 참여하는 사소한 "코드 작성 속도"를 파악할 수 있습니다. 미묘한 차이가 있지만 실제로는 효과가 있습니다.
이제 스프린트를 작성하십시오
스프린트는 목표를 향한 빠른 파열입니다. 스프린트 길이, 아마도 5-10 일을 결정하십시오. 일 수에 개발자 수에 일일 포인트 수를 곱하십시오.
처음에는 개발자 당 하루 6 포인트를 가정합니다. 이것은 달성 가능한 숫자입니다. 5 명이 있다면 5 * 5 * 6 = 150 포인트입니다. 모든 개발자 및 관리와 함께 목록에서 최대 150 포인트까지 기능을 선택하십시오. 그게 당신의 스프린트입니다.
맞는 것보다 더 많이 짜내려고 유혹하지 마십시오. 지나치게 약속하면 장기적으로 모든 사람을 해칠 수 있습니다.
여기에서 종속성을 고려해야합니다. 예를 들어, 환경 설정은 분명히 첫 스프린트에 포함되어야합니다. 이것은 모두가 참석할 때 실제로 비교적 쉽습니다. 당신은 방에 6 개의 두뇌가 있고, "이것은 이것에 의존합니다"등을 말합니다. 그런 다음 카드를 뒤섞어 의존성을 보여줄 수 있습니다.
스프린트가 완료되면 아무 것도 추가 할 수 없으며 5 일 동안 잠 깁니다. 피처 크립은 팀에게 스트레스를주고 사기를 손상 시키며 모두를 느리게합니다. 결국 크리프는 프로젝트를 중단시킬 것입니다. 팀 리더는 팀을 피처 크롤링으로부터 보호해야합니다. 새로운 기능 요청이 들어 오면 다음 스프린트에 추가해야합니다. 다음 스프린트가 이미 가득 차면 다른 것을 꺼내야합니다.
엑스트라로 짜내려고 유혹하지 마십시오. 과잉 약속은 약 1 일 분량의 행복한 고객과 4 일 간의 팀 스트레스, 그리고 결국 팀이 제 시간에 전달할 수 없을 때 불행한 몇몇 고객을 제공합니다.
이제 가십시오.
카드를 나누어주고 누가 무엇을하고 싶은지 물어보십시오. 수행중인 작업을 완전히 파악할 수 있으며 점을 0으로 카운트 다운 할 수 있습니다. 매일 시작할 때 일어 서서 모든 사람이 누가 무엇을하고 있고 무엇을했는지 알 수 있도록하십시오.
명확하게 정의 된 관리 가능한 목표를 달성하기 위해 5 ~ 6 명의 동기 부여 된 개발자가 하나의 단위로 함께 작업하면 5 일 동안의 스프린트에서 꽤 많은 양의 물건을 얻을 수 있습니다.
가시성 유지
모든 사람이 프로젝트 상태를 확인할 수 있도록하십시오. 모든 카드를 벽에 붙입니다. 왼쪽에는 아직 작업하지 않은 카드가 있습니다. 오른쪽에는 카드가 있습니다.
개발자가 카드를 작업 할 때는 벽에서 꺼내 책상에 놓습니다. 이렇게하면 가시성이 유지되고 사람들이 발가락을 너무 밟지 않게됩니다.
색인 카드에 대한 기술적 대안이 있지만 벽에 프로젝트 상태를 대규모로 표시하는 것은 아무것도 아닙니다.
가능하면 프로젝트 기간 동안 모두 같은 방에 두십시오. 이해 관계자에게 가능한 한 매일 매일 이상적으로 의견을 제시하십시오.
타 버리다
번 다운 차트에서 0을 향한 점을 그래프로 표시 할 수 있습니다. 시간 제한에 도달하기 전에 가장 잘 맞는 선이 0을 넘어 가면 궤도에있는 것 같습니다. 그렇지 않은 경우 마감일에 너무 가까워지기 전에 지금 고객에게 알려야 할 수도 있습니다.
실패 할 경우 일찍 실패하십시오.
소프트웨어를 사용하여 번 다운을 할 수 있지만 벽에 큰 종이 조각을 선호합니다. 그 위에 모든 것을 그리고 쓰십시오.
자동화 된 테스트
여러 개발자가 동일한 작업을 동시에 수행하는 경우 때때로 서로의 코드를 손상시킬 수 있습니다. 의사 소통과 가시성에 도움이되지만 문제를 찾는 데 도움이되는 몇 가지 기술을 소개하려고 할 것입니다.
단위 테스트는 코드베이스의 각 개별 부분 (이상적으로 각 방법)에 대한 테스트를 작성하는 프로세스입니다. 가능하면 모든 저장과 함께 단위 테스트를 자주 실행해야합니다. Karma 또는 Rspec과 같이이를 도울 수있는 많은 도구가 있습니다.
엔드 투 엔드 테스트는 내부를 블랙 박스로 취급하여 프로젝트 전체를 테스트합니다. 이러한 테스트는 높은 수준의 비즈니스 요구 사항 (예 : "사용자가 가입 할 수 있음"또는 "사용자가 항목 목록을 볼 수 있음")을 기반으로합니다. 각도기는 엔드 투 엔드 웹 기반 테스트 프레임 워크의 좋은 예입니다.
테스트에 관한 책은 모두 있지만, 최소한 몇 가지 수락 테스트를 실시하면 프로젝트를 진행할 때 아무것도 깨지지 않도록 할 수 있습니다.
기술 부채 방지 및 완료
기술 부채는 나중에 정리해야 할 사항을 설명하는 개념입니다. 부채의 일반적인 원천은 완료된 것으로 표시되었지만 "완료"된 기능은 아닙니다. 완료된 기능은 Git에 체크인되어 이해 관계자가 승인했으며 테스트를 받았습니다.
완료 될 때까지 기능을 확인하지 마십시오. 그래프를 마사지하지 마십시오. 다시 말하지만, 이것은 당신을 포함하여 장기적으로 모든 사람을 해칩니다.
이것이 처음에 개발자 당 하루에 6 포인트 만 인용하는 이유 중 하나입니다. 완료 작업은 추가 작업이 필요하지만 기분이 좋으며 팀에게 힘을줍니다.