Size: 2618
Comment:
|
Size: 3398
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 16: | Line 16: |
* '''Communication''': Keep the right communications flowing by employing many practices that can't be done without communicating. Problems with projects can invariably be traced back to somebody not talking to somebody else about something important. * '''Simplicity''': What is the simplest thing that could possibly work? Make a bet that it is better to do a simple thing today and pay a little more tomorrow to change it if necessary than to do a more complicated thing today that may never be used anyway. * '''Feedback''': Concrete feedback about the current state of the system is absolutely priceless. Optimism is an occupational hazard of programming. Feedback is the treatment. * '''Courage''': Have the courage it takes to develop good software, which may mean throwing away code and changing direction, even late in development. What's to say that you won't ever develop yourself into a corner? Courage. |
커뮤니케이션:: Keep the right communications flowing by employing many practices that can't be done without communicating. Problems with projects can invariably be traced back to somebody not talking to somebody else about something important. 단순성:: What is the simplest thing that could possibly work? Make a bet that it is better to do a simple thing today and pay a little more tomorrow to change it if necessary than to do a more complicated thing today that may never be used anyway. 피드백:: Concrete feedback about the current state of the system is absolutely priceless. Optimism is an occupational hazard of programming. Feedback is the treatment. 용기:: Have the courage it takes to develop good software, which may mean throwing away code and changing direction, even late in development. What's to say that you won't ever develop yourself into a corner? Courage. 존중:: == 원칙 == * 인간성 * 경제성 * 상호 이익 * 자기유사성 * 개선 * 다양성 * 반성 * 흐름 * 기회 * 잉여 * 실패 * 품질 * 아기 발걸음 * 받아들인 책임 == 실천방법 == 기초 실천 방법 * 함께 앉기 * 전체 팀 * 정보를 제공하는 작업 공간 * 활기찬 작업 * 짝 프로그래밍 * 스토리 * 일주일별 주기 * 분기별 주기 * 여유 * 10분 빌드 * 지속적 통합 * 테스트 우선 프로그래밍 * 점진적 설계 보조 실천 방법 * 점진적 배치 * 팀 지속성 * 팀 크기 줄이기 * 근본 원인 분석 * 코드 공유 * 코드와 테스트 * 단일 코드 기반 * 매일 배치 * 범위 협상 계약 * 사용별 지불 |
eXtreme Programming
배경
이렇게 소프트웨어 개발의 조직이나 프로세스를 잘 추진하기 위한 식견을 각가의 경험이나 다양한 프로젝트로부터 수집해서 PatternLanguage로 형식화하고, 커뮤니티 안에서 공유하고, 다듬어 만들어가려는 움직임이 발생하고 있었습니다. 그 중심에는 OOPSLA나 HillsideGroup, PLoP에서 형성되어온 PatternCommunity, 그 중에서도 특히 KentBeck이나 WardCunningham, JimCoplien 등이 있었습니다. - 패턴, 위키, XP 중에서
1996년, KentBeck은 크라이슬러 회사가 진행하는 프로젝트에 참여하게 된다. 당시 크라이슬러에는 코볼로 작성된 급여계산 프로그램이 있었다. 이 시스템은 메인프레임에서 작동하며, 십여개의 프로그램으로 나누어져 복잡하게 되어 있었다. 당시 KentBeck은 시스템을 처음부터 다시 작성할 것을 제안했고, Chrysler Comprehensive Compresation project, 줄여서 C3 프로젝트라고 불리우는 프로젝트가 시작되었다. 여기에는 KentBeck, RonJeffries, MartinFowler 등이 참여했다. 이 프로젝트에서 Beck은 프로젝트 리더로 활동하게 되고, 거대한 프로젝트를 성공적으로 이끌기 위해 팀 내에서 지금은 XP의 프랙티스로 알려진 실천법들을 실천하도록 했다. 당시 C3 프로젝트에서 실천된 프랙티스는 28여개이다.
가치
- 커뮤니케이션
- Keep the right communications flowing by employing many practices that can't be done without communicating. Problems with projects can invariably be traced back to somebody not talking to somebody else about something important.
- 단순성
- What is the simplest thing that could possibly work? Make a bet that it is better to do a simple thing today and pay a little more tomorrow to change it if necessary than to do a more complicated thing today that may never be used anyway.
- 피드백
- Concrete feedback about the current state of the system is absolutely priceless. Optimism is an occupational hazard of programming. Feedback is the treatment.
- 용기
- Have the courage it takes to develop good software, which may mean throwing away code and changing direction, even late in development. What's to say that you won't ever develop yourself into a corner? Courage.
- 존중
원칙
- 인간성
- 경제성
- 상호 이익
- 자기유사성
- 개선
- 다양성
- 반성
- 흐름
- 기회
- 잉여
- 실패
- 품질
- 아기 발걸음
- 받아들인 책임
실천방법
기초 실천 방법
- 함께 앉기
- 전체 팀
- 정보를 제공하는 작업 공간
- 활기찬 작업
- 짝 프로그래밍
- 스토리
- 일주일별 주기
- 분기별 주기
- 여유
- 10분 빌드
- 지속적 통합
- 테스트 우선 프로그래밍
- 점진적 설계
보조 실천 방법
- 점진적 배치
- 팀 지속성
- 팀 크기 줄이기
- 근본 원인 분석
- 코드 공유
- 코드와 테스트
- 단일 코드 기반
- 매일 배치
- 범위 협상 계약
- 사용별 지불