익스 트림 프로그래밍과 SCRUM의 차이점

Anonim

Extreme Programming vs SCRUM | XP vs SCRUM

수년 동안 폭포 개발 방식, V-Model, RUP 및 몇 가지 다른 선형, 반복 및 결합 된 선형 반복 방법과 같이 소프트웨어 업계에서 사용 된 여러 가지 소프트웨어 개발 방법론이 수년 동안 사용되었습니다. 애자일 모델 (또는보다 정확하게, 방법론 그룹)은 전통적인 소프트웨어 개발 방법론에서 발견 된 단점을 해결하기 위해 민첩한 선언문에 의해 도입 된보다 최근의 소프트웨어 개발 모델입니다.

민첩한 방법은 반복 개발을 기반으로하며 사용자의 피드백을 주요 제어 메커니즘으로 사용합니다. 애자일은 전통적인 방법보다 사람 중심적 접근 방식이라고 할 수 있습니다. Agile 모델은 시스템을 매우 작고 관리하기 쉬운 하위 부분으로 나누어 초기에 제품의 작동 버전을 제공하므로 고객은 초기에 몇 가지 이점을 실현할 수 있습니다. 애자일의 테스트 사이클 시간은 테스트가 개발과 동시에 이루어지기 때문에 전통적인 방법에 비해 상대적으로 짧습니다. 이러한 모든 장점 때문에 민첩한 방법이 현재의 전통적인 방법보다 선호됩니다. 스크럼과 익스트림 프로그래밍은 애자일 방식 중 가장 인기있는 변형 중 두 가지입니다.

SCRUM이란 무엇입니까?

앞서 언급했듯이 SCRUM은 점진적이고 반복적 인 프로젝트 관리 프로세스로서 Agile 메서드 계열에 속합니다. SCRUM은 개발주기 초반에 고객 참여를 최우선 적으로 고려한 것입니다. 고객의 테스트를 가능한 한 조기에 통합 할 것을 권장합니다. 안정적인 버전을 사용할 수있게되면 각 지점에서 테스트가 수행됩니다. SCRUM의 기초는 프로젝트 초기부터 테스트를 시작하고 프로젝트가 끝날 때까지 계속됩니다.

SCRUM의 핵심 가치는 소프트웨어의 품질이 테스트 팀뿐만 아니라 전체 팀의 책임이라는 것을 강조하는 "품질이 팀의 책임"입니다. SCRUM의 다른 중요한 측면 중 하나는 소프트웨어를 관리가 용이 ​​한 작은 부분으로 나누어 고객에게 신속하게 전달하는 것입니다. 작동중인 제품을 제공하는 것이 가장 중요합니다. 그런 다음 팀은 계속해서 소프트웨어를 개선하고 각 주요 단계에서 지속적으로 제공합니다. 이것은 매우 짧은 릴리즈 사이클 (스프린트라고 함)을 얻고 각 사이클의 끝에서 개선을 위해 피드백을 얻음으로써 달성됩니다.

SCRUM은 개발 팀의 원활한 운영을위한 몇 가지 중요한 역할을 정의합니다. 그들은 제품 소유자 (고객을 대표하고 제품 백 로그를 유지함), 스크럼 마스터 (스크럼 회의를 실시하고, 스프린트 백 로그를 유지하며 차트를 태움으로써 팀의 주최자 및 코디네이터 역할을 함) 및 기타 팀원입니다.팀은 전통적인 역할로 구성 될 수 있지만 대부분 자체 관리 팀입니다. 메인 스크럼 아티팩트는 제품 백 로그 / 릴리스 백 로그 (희망 목록), 스프린트 백 로그 / 결함 백 로그 (모든 반복 작업), 차트 다운 (남은 작업 대 날짜)입니다. 주요 SCRUM 행사는 제품 백 로그 회의, 스프린트 회의 및 회고 회의입니다.

익스 트림 프로그래밍이란 무엇입니까?

Extreme Programming (약식 XP)은 애자일 모델에 속하는 소프트웨어 개발 방법론입니다. 익스트림 프로그래밍은 기존의 방법에 비해 아주 작은 연속 단계로 단계를 수행합니다. 1 일 또는 1 주일 정도 소요되는 첫 번째 패스는 의도적으로 불완전합니다. 소프트웨어 개발을위한 구체적인 목표를 제공하기 위해 처음에는 자동화 된 테스트를 작성합니다. 그런 다음 개발자가 코딩을 수행합니다. 초점은 쌍으로 프로그래밍하는 것입니다. 모든 테스트가 통과되면 코딩이 완료된 것으로 간주됩니다. 다음 단계는 디자인과 아키텍처로, 동일한 프로그래머 세트로 코드를 리팩터링하는 것을 다룹니다. 이 단계가 끝나면 불완전한 (그러나 기능적인) 제품이 이해 관계자에게 제시됩니다. 그 직후에 다음 단계 (가장 중요한 기능의 다음 세트에 초점을 맞추기)가 시작됩니다.

익스 트림 프로그래밍과 SCRUM의 차이점은 무엇입니까?

익스트림 프로그래밍과 SCRUM은 매우 유사하고 일관된 방법론입니다. 그러나이 두 가지 방법간에 미묘하지만 중요한 차이점이 있습니다. SCRUM 스프린트는 2-4 주 동안 지속되지만 XP 반복은 더 짧습니다 (지난 1-2 주). 일반적으로 SCRUM 팀은 스프린트 변경을 허용하지 않지만 XP 팀은 반복 내에서 변경 사항에 유연성이 거의 없습니다. 예를 들어, 스프린트 계획 후에는 스프린트 항목 세트가 변경되지 않지만 XP에서 작업을 시작하지 않은 기능은 언제든지 다른 기능으로 바꿀 수 있습니다. XP와 SCRUM의 또 다른 차이점은 XP에서 개발 된 기능의 순서는 고객이 엄격하게 우선 순위를 정하는 반면 SCRUM 팀은 SCRUM의 제품 소유자가 제품 백 로그를 우선 순위를 정한 후에 항목의 순서를 결정한다는 것입니다.

XP와는 달리 SCRUM은 공학적 관행을 내려 놓지 않습니다. 예를 들어, XP는 TDD (Test-Driven Development), 페어 프로그래밍, 리팩토링 등과 같은 방법으로 실행됩니다. 그러나 일부에서는 자체 구성 팀에 일련의 관행을 적용하면 부정적인 영향을 미칠 수 있다고 생각합니다. XP의 단점. 익스 트림 프로그래밍의 또 다른 단점은 경험이 부족한 팀이 자동화 된 테스트 또는 TDD (또는 단순히 해킹)없이 리팩터링하는 경향이 있다는 것입니다. 따라서 SCRUM은 킥오프를하기에 더 좋다고 제안합니다 (집중적 인 타임 박스 반복을 통해 큰 개선을 가져옴). XP는 위에서 언급 한 실천의 가치를 발견 한 약간 성숙한 팀에 적합합니다. 그렇게하기 위해).