익스트림 프로그래밍이란 무엇이며 어떻게 사용합니까?
극단적인 프로그래밍 소프트웨어 개발 방법론을 개선하도록 설계된 품질의 소프트웨어와 해당하는 기능을 제대로 변화하는 요구에 적응의 고객 또는 클라이언트입니다. 하는 동안 중순과반에서 작업하는 동안,크라이슬러 포괄적인 보상 시스템(C3)를 관리하는 데 도움이 되는 회사의 급여,소프트웨어 엔지니어 켄 Beck 처음 개발된 극단적인 프로그래밍 방법입니다., 에서는 1999 년,그는 게시된 극단적인 설명 프로그래밍,디테일이 전체 방법 및 다른 사람들 곧 그 이후 공식 웹 사이트로 시작되었습니다.
유사한 다른 민첩법의 개발,극단적인 프로그램을 제공하는 것을 목표로 반복적이고 자주 작은 자료에 걸쳐 할 수 있도록 프로젝트 팀 구성원 모두와 고객에게 검사하고 검토는 프로젝트 진행 전반에 걸쳐 SDLC.,
이 문서에서,우리는 정확하게 시험할 것입니다 무엇을 극단적인 프로그래밍고 어떻게 작동하는지,에서 가치와 원칙을 있는 그 뒤에,규칙 및 절차의 모범 사례를 구현하는 데 사용되는 새로운 극단적인 프로그래밍 프로젝트,그래서 시작하자!,/td>
극단적인 값
이 다섯 가지 기본적인 가치를 제공하는 기반 전체의 프로그래밍 패러다임을 구축할 수 있는 사람들에 관련된 프로젝트를 자신감을 느낄 방향으로 프로젝트를 복용하고 이해하는 자신의 개인의 피드백과 통찰력이 필요하고 오로 다른 사람.,
단순성:우리는 필요하고 요구되는 것을 할 것이지만 더 이상은 할 수 없습니다. 이것은 현재까지 만들어진 투자를 위해 창출 된 가치를 극대화 할 것입니다. 우리는 목표에 작은 간단한 조치를 취하고 일어날 때 실패를 완화 할 것입니다. 우리는 우리가 자랑스러워하는 것을 만들고 합리적인 비용으로 장기적으로 유지할 것입니다.
커뮤니케이션:모두가 팀의 일원이며 매일 얼굴을 마주 보며 의사 소통합니다. 우리는 요구 사항에서 코드에 이르기까지 모든 것을 함께 작업 할 것입니다. 우리는 우리가 함께 할 수있는 우리의 문제에 대한 최선의 해결책을 만들 것입니다.,
피드백:우리는 작업 소프트웨어를 제공함으로써 모든 반복 약속을 진지하게 받아 들일 것입니다. 우리는 소프트웨어를 일찍 시연하고 종종 신중하게 듣고 필요한 변경 사항을 적용합니다. 우리는 프로젝트에 대해 이야기하고 우리의 과정을 다른 방법이 아닌 그것에 적응시킬 것입니다.
존중:모든 사람들은 소중한 팀원으로서받을 가치가있는 존경심을주고 느낍니다. 모두가 단순히 열정 일지라도 가치를 기여합니다. 개발자는 고객의 전문 지식을 존중하며 그 반대도 마찬가지입니다. 경영진은 책임을 받아들이고 자신의 업무에 대한 권한을받을 권리를 존중합니다.,
용기:우리는 진보와 추정에 대해 진실을 말할 것입니다. 우리는 성공할 계획이기 때문에 실패에 대한 변명을 문서화하지 않습니다. 아무도 혼자 일하지 않기 때문에 우리는 아무것도 두려워하지 않습니다. 우리는 그들이 일어날 때 변화에 적응할 것입니다.
극단적인 규칙
처음 출판 돈 웰스,1999 년에는 권리자가의 극단적인 프로그래밍,웹사이트 이 설정의 극단적인 프로그래밍의 규칙은 원래 의도하는 데 도움을 카운터는 클레임 극단적인 프로그래밍 실패를 지원하는 눈에 띄는 몇 가지 분야에 필요한 최대한 즐기시기 바랍니다.,
기획
- 사용자 스토리가 작성됩니다.
- 릴리스 계획은 릴리스 일정을 만듭니다.리><리>자주 작은 릴리스를 확인합니다.
- 프로젝트는 반복으로 나뉩니다.
- 반복 계획은 각 반복을 시작합니다.
관리
- 팀에게 전용 오픈 작업 공간을 제공합니다.리><리>지속 가능한 속도를 설정합니다.
- 스탠드 업 회의가 매일 시작됩니다.
- 프로젝트 속도가 측정됩니다.리><리>주변 사람들을 이동합니다.
- 이 깨질 때 극단적 인 프로그래밍을 수정합니다.
설계
- 단순성.,
- 시스템 은유를 선택하십시오.
- 디자인 세션에 CRC 카드를 사용하십시오.
- 위험을 줄이기 위해 스파이크 솔루션을 만듭니다.
- 기능이 일찍 추가되지 않습니다.
- 가능한 한 언제 어디서나 리팩터링하십시오.
코딩
- 고객은 항상 사용할 수 있습니다.
- 코드는 합의 된 표준에 작성되어야합니다.
- 단위 테스트를 먼저 코딩하십시오.
- 모든 생산 코드는 쌍 프로그래밍됩니다.
- 한 번에 한 쌍만 코드를 통합합니다.
- 자주 통합하십시오.
- 전용 통합 컴퓨터를 설정합니다.
- 집단 소유권을 사용합니다.,
테스트
- 모든 코드에는 단위 테스트가 있어야합니다.
- 모든 코드는 릴리스되기 전에 모든 단위 테스트를 통과해야합니다.
- 버그가 발견되면 테스트가 생성됩니다.
- 수락 테스트가 자주 실행되고 점수가 게시됩니다.
극단적 사례
을 사용하여 만든 것으로 간주되었 모범 사례의 소프트웨어 개발에 시간 이 열 둘을 극단적인 프로그래밍 모범 사례를 자세히 특정 절차를 따라야 하는 경우 구현 프로젝트를 사용하여 극단적인 프로그래밍입니다.,
미세한 규모의 의견
페어 프로그래밍
본질적으로는 한 쌍의 프로그래밍을 의미는 두 사람들이 사전에 동일한 시스템을 개발할 때 생산 코드입니다. 팀 전체에서 파트너를 자주 회전시킴으로써 익스트림 프로그래밍은 더 나은 의사 소통과 팀 구축을 촉진합니다.
게임 계획
자주 이 형식의 회의에서 자주 잘 정의 간격(각 중 하나 또는 두 개의 주),대부분의 계획을 위해 프로젝트 장소입니다.,
이 절차 내에서 임박한 릴리스에 필요한 것에 관한 결정이 내려지는 릴리스 계획 단계가 존재합니다. 섹션 릴리스의 계획을 포함한다:
- 탐사 단계:이 카드를 사용하여 세부 사항에 가장 귀중한 요구 사항에서 고객입니다.
- 투입:단계를 계획하고 약속 팀에서 만들어의 필요를 충족시키는 다음 일정에 놓고서 그것을 얻을 시간.,
- 스티어링 단계:이전에 개발 계획 조정에 따라 변화하는 요구 프로젝트의 비슷한 다른 많은 민첩 모델 방법론에 대한 연구로 진행됩니다.
다음과 같은 방출을 계획 또한 반복 계획 섹션으로 구성되어 같은 세 가지 하위 단계 그 자체만으로 개에서 자신의 구현:
- 탐사 단계:모든 프로젝트 요구 사항은 아래로 기록됩니다.
- 투입 단계:필요는 아직 작업을 완료할을 만나 다가오는 반복 릴리스는 할당을 개발자 및 예정입니다.,
- 스티어링 단계:개발이 이루어지고,따라 완료되면,그 결과 반복을 설명한 이야기를 만든 카드에서 시작한 계획 절차입니다.
테스트 기반의 개발
는 전체 문서를 작성할 수 있습니에 대한 테스트 기반의 개발,이 개념은 개발자들이고 효과적으로는 것을 의미한 테스트를 위해 생성된 각각의 요구 사항의 프로젝트,그리고 다음은 코드 개발하는 것이 성공적으로 전달러 테스트합니다.,
전체 팀
로와 다른 많은 SDLC 방법 및 사례,극단적인 프로그래밍을 촉진함의 고객을하고 클라이언트는 전체 프로세스를 사용하여 그들의 의견을 형성하는 데 도움이 프로젝트에서 모든다.
지속적인 과정
지속적인 통합
또 다른 일반적인 방법에 현대적인 개발,생각 뒤에 지속적인 통합되는 모든 코드를 개발한 전체에 걸쳐 팀으로 병합되 하나는 일반적인 저장소를 여러 번 하루입니다., 이를 통해 전체 프로젝트에서 통합과 관련된 모든 문제를 발견하고 가능한 한 빨리 처리 할 수 있습니다.
코드 refactoring
또 다른 매우 일반적인 관행,아이디어 뒤에 코드 리팩터링은 단순히 개선하고 재설계의 구조는 기존의 코드의 수정하지 않고,그것의 기본적인 동작입니다. 간단한 예제의 리팩터링 포함 고정 부적절하게 이름을 변수 또는 방법,줄이고 반복되는 코드 하나의 방법은 작업을 수행할 수 있습니다.,
작은 자료
아주 많이 라인에서의 관행을 반복적 모델,이 개념은 프로젝트의 기능을 반복되는 작 릴리스에 자주 기준으로 할 수 있도록,고객 뿐만 아니라,모든 팀원들을 어떻게 프로젝트 개발하고 있습니다.
공유 이해
코딩 표준
코딩 표준은 단순히 설정의 모범 사례에 코드 자체와 같은 형식과 스타일,전체 팀이 준수하고 라이프 사이클에 걸쳐 프로젝트의., 이것은 현재 회원뿐만 아니라 미래의 개발자에게도 코드의 더 나은 이해와 가독성을 촉진합니다.
단체 코드를 소유권
이 연습 할 수 있습에 대한 모든 개발자가 팀에서 변경 어떤 부분의 코드로 필요합니다. 이 연습할 수 있도 위험을 일부,그것은 속도가 개발 시간 및 잠재적인 문제를 진압될 수 있으로 적절한 단위 테스트입니다.
단순한 디자인.
가 이 일을 복잡하게 할 때마다 간편한 옵션이 사용할 수 있습니다., 이 기본적인 실천을 유지하는 모든 구성 요소 및 코드 간단 될 수 있다는 것을 보장 전체가 팀은 항상을 평가하는지 여부를 것을 할 수 있는 쉬운 방법입니다.
시스템은 유
좋은 생각의의 일환으로 코딩 표준,시스템 비유는 아이디어는 모든 사람 팀에 볼 수 있어야에 높은 수준의 코드 개발,그리고 명확한 이해의 어떤 기능을 하는 코드입니다.,
프로그래머 복지
지속가능한 속도
주요 개념에 대한 더 나은 일과 삶의 균형으로 개발자에 극단적인 프로그래밍 프로젝트 개념은 아무도 해야 될 필요에서 일을 초과하는 일반 예약 된 있습니다. 초과 frowned 개념의”위기간”개발자들이 예상하는 작업 극단적인 시간 근처의 모든 것을 얻을 완성 시간에 있습니다.피>