프로젝트에 따라 소규모 프로젝트를 단독으로 수행하는 경우 개발의 일환으로 기술 연구 및 조사를 수행하는 것이 좋습니다. 그리고 애자일의 일부는 아니지만, 애자일 방법론을 사용하여 이에 대한 제어를 추가 할 수 있습니다. 그러나 이로 인해 프로세스를 예측하거나 시간 상자를 매우 어렵게 만듭니다. 전적으로 작은 프로젝트에서 혼자 작업하는 경우 요구 사항을 학습하면서 전개 할 수 있습니다. 길을 따라 좋은 원칙을 사용하고 일관성을 유지하면 리팩토링을 많이하지 않아도됩니다.
직장에서는 Kanban, Scrum 및 더 전통적인 폭포 방식을 사용합니다. 프로젝트에 따라 사전 정의 된 사전 요구 사항이있는 복잡한 개발이 애자일에 가장 적합하지 않은 것으로 나타났습니다.
민첩한 프로젝트 (가장 단순하지는 않지만)에서 작업을 시작하기 전에 몇 가지 문서를 작성합니다. 우리는 모의 (ui 집중된 경우), 일련의 요구 사항 및 기능 사양을 가지고 있습니다.
기능 사양에서 기술 사양을 작성하도록 개발이 요청되며이 프로세스 중에 기술을 지정하고 필요한 선행 연구를 수행합니다. 이 프로세스는 요구 사항 / 기능 사양의 차이를 볼 수있는 기회를 제공하고 경험과 시스템 지식을 가진 사람들에게 큰 결정을 내려 결정을 내릴 수 있기 때문에 나에게 매우 중요합니다.
중요한 점은 기능 사양이 글 머리 기호 목록이 될 수 있으며 기술 사양은 일반적으로 일부 글 머리 기호 및 기술 조정 기능이있는 모델이며 경우에 따라 3 ~ 4 페이지 일 수 있다는 것입니다.
애자일 프로젝트를 실행할 때도 문서를 만듭니다.
- 모든 문서에는 비용이 있습니다.
- 이동 및 부정확 한 높은 수준의 요구 사항에 대한 개발에는 비용이 있습니다.
- 위의 정확한 균형은 프로젝트, 문화 및 사람들에 따라 다릅니다.
- 문서화 적시에 문서가 오래되었습니다.
- 우리는 간신히 충분히 / 충분히 문서화합니다.
- 우리는 이러한 문서를 유지 관리하거나 업데이트하지 않으며 많은 노력을 기울이지 않습니다. 그들은 작다. 우리는 그것들을 버릴 것으로 기대합니다.
- 우리는 기술 결정, 흐릿한 요구 사항 및 아키텍처와 같은 큰 미지의 문제를 해결합니다.
- 시작하기 전에 무엇을 개발하고 있는지 알고 있습니다.
- 우리는 개발자들이 문서에 대한 정보에 입각 한 결정을 내리고 문제를 논의 할 것을 신뢰합니다.
- 우리는 관련된 모든 사람들이 자주 의사 소통하기를 기대하므로 문서보다는 의사 소통을 중요하게 생각합니다.
- 우리는 개발 후가 아닌 이전에 시스템 (개요)을 문서화합니다.
민첩한 프로세스에 작은 폭포가 있습니다.
혼자서 작업하는 경우 선행 모델 (다이어그램!)을 작성하고 기술을 가지고 놀면서 기술을 선택한 다음, 높은 수준의 요구 사항에 대한 개념이 있으면 앞서 가서 민첩한 반복 방식으로 개발하지만 좋은 원칙과 갈수록 일관성을 유지하면서 갈수록 리팩터링을 줄이고 리팩터링해야합니다.
그러나 일반적으로 실제 비용이 드는 경우 (취미가 아님) 코드를 작성하기 전에 개발중인 내용을 알고 있지만 마음이 바뀌면 빠르게 중복되는 문서를 작성하는 데 너무 많은 시간을 낭비하지 마십시오. 더 나은 정보를 얻으면서 개발하는 동안 마음을 바꾸십시오. 그리고 프로젝트는 진로를 크게 바꿀 수 있지만 잘 정의 된 기초부터 시작하십시오.