문제의 역사:
IT 프로젝트에서 긴 개발 주기를 가진 경우 요구 사항이 자주 변경될 수 있으며 문서는 빠르게 노후화됩니다. 이로 인해 개발자와 고객 간의 불일치가 발생하고 지원 비용이 증가하며 변경 사항 도입이 복잡해집니다.
문제:
부정확하거나 불완전하거나 노후화된 요구 사항 설명은 팀 내 오류 및 오해, 기술 부채 증가 및 QA의 낮은 효율성을 초래하는 데 충분합니다.
해결책:
시스템 분석가는 살아있는 문서화 프로세스와 산출물의 정기적인 검토 프로세스를 구현합니다. Documentation as Code (git 리포지토리를 통한 문서화), 작업 관리 도구(Jira, Confluence)와의 긴밀한 통합, 요구 사항과 작업 및 테스트 사례의 자동 연결, 문서 검토 및 요구 사항 검토 회의 조직과 같은 접근 방식을 사용하는 것이 중요합니다. 모든 이해관계자에게 "진실의 단일 출처" 문화를 발전시키는 것이 중요합니다.
주요 특징:
살아있는 문서(Living Documentation)와 단순히 좋은 사양의 차이점은 무엇입니까?
살아있는 문서는 적시성뿐만 아니라 개발 도구와의 통합(예: BDD에 따른 테스트가 최신 문서를 자동으로 생성할 수 있음), 변경 사항의 자동 확인 및 이력 감사 용이성을 포함합니다.
사용자 스토리와 백로그 티켓만 사용하여 공식 문서를 완전히 포기할 수 있습니까?
아니요, 사용자 스토리는 최대한 세부적으로 통합 인터페이스, 비즈니스 규칙 세부 사항 및 엣지 케이스 시나리오를 다루지 않으므로 사양의 간결성 및 완전성 간의 조화가 필요합니다.
요구 사항이 변경되면 Confluence의 텍스트만 업데이트하는 것이 충분합니까?
아니요, 이 업데이트를 모든 관련 산출물(테스트 사례, 작업, 데이터 스키마)과 동기화하는 것이 중요합니다. 이러한 관계의 자동화는 좋은 관행이 될 것이며, 그렇지 않으면 비동기화 및 오류가 발생할 수 있습니다.
부정적인 사례:
대규모 핀테크 프로젝트에서 요구 사항은 Word 문서로 유지되었고 이메일로 배포되었으며 단일 이력을 갖지 않았습니다. 릴리스 후 일부 기능은 고객의 기대와 일치하지 않았고 일부 버그는 사양에 반영되지 않았습니다.
장점:
단점:
긍정적인 사례:
다른 프로젝트에서는 문서가 코드와 동일한 리포지토리에서 유지되었고(Asciidoc + Gitlab), 모든 변경 사항은 코드 리뷰를 거쳤습니다. 요구 사항, 테스트 사례 및 작업 간의 연결된 관계가 설정되었습니다.
장점:
단점: