Extreme Programming Explained 요약 3
15장 XP 확장
소프트웨어 개발의 규모는 여러 차원에서 확장될 수 있다.
사람숫자 : 대규모 팀이 꼭 필요하다고 생각하더라도 먼저 작은 팀만으로도 문제를 풀 수 있지 않나 생각해봐야 한다.
투자 : 이 문제는 XP와 관련된 문제가 아니라 소프트웨어 개발을 어떻게 회계처리해야 하는지에 대한 문제다.
조직의 크기 : 조직의 다른 부분과 의사소통할 때에는 그들에게 익숙한 형식이 유지되도록 분명히 해두어야 한다.
시간 : XP는 테스트들이 유지보수에서 자주 생기는 문제를 방지하고 개발 프로세스에 대한 이야기를 들려주므로 프로젝트 기간이 길어도 잘 통한다.
문제의 복잡도 : XP는 전문가들의 긴밀한 협력이 필요한 프로젝트에 가장 이상적으로 맞드며 모든 사람이 다른이들의 전문 영역에 대해 조금씩 배워간다.
해결방안의 복잡도 : 제품을 계속 전달하면서 복잡성을 깎아 나가라.
실패의 결과 : 더 중요한 가치에 대한 실천방법을 팀의 매일 작업에 포함시킨다.
결론 : 늘 깨어 있으며 적절히 적응하기만 한다면, XP에도 분명 확장성이 있다.
16장 인터뷰
XP 를 적용한 회사의 임원 인터뷰
Q : XP를 도입할까 고려하는 다른 임원들에게 해주고 싶은 충고가 있습니까?
A : 꼭 XP를 사용하세요.(중략) 폭포수 방식 개발 안에 XP를 끼워 넣어야만 하는 경우에도, XP를 사용한다면 여전히 많은 이익을 얻을 것입니다.
2부 XP의 철학
17장 창조 이야기
XP의 시작에 관한 이야기
컨설턴트로서 할 일 가운데 하나는 답을 아는 사람을 찾아 그 답을 권력이 있는 사람에게 전달하는 일이다.
여러 팀의 많은 생각과 노고가 XP의 가치, 원칙, 실천방법의 관계를 탐구하고 그 아이디어들을 다듬는 데 들어갔다.
18장 테일러주의와 소프트웨어
테일러는 작업하는데 가장 좋은 단하나의 방법(“the One Best Way”)를 선택하고, 그것을 공장 전체에 표준화했다.
우리는 슬그머니 테일러주의의 사회적 구조를 물려 받았으며, 이것은 소프트웨어 개발에 기묘할 정도로 잘 맞지 않는다.
품질 조직을 별도로 둔다는 점에서 많은 소프트웨어 개발 조직이 바로 테일러주의자다.
품질, 아키텍처, 프레임워크가 소프트웨어 개발에서 중요하지 않다는게 아니라, 너무 중요하기 때문에 테일러주의자의 사회적 구조에 맡겨둘 수 없다.
그것은 변화하는 세상에서, 작동하고 유연하며 비싸지 않은 소프트웨어를 만드는 데 꼭 필요한 커뮤니케이션과 피드백의 흐름을 방해하는 구조이기 때문이다.
19장 도요타 생산 시스템
도요타는 자동차 생산 공정의 모든 단계에서 쓸모없이 낭비되는 노력을 제거한다.
TPS(Toyota Production System)의 정신적 지도자인 오노 다이이치는 과잉 생산의 낭비가 가장 큰 낭비라고 말한다.
만약 어떤 물건을 만들었는데 그것을 팔지 못하면, 그 물건을 만드는 데 들어간 노력은 사라져 버린다.
소프트웨어 개발은 과잉 생산의 낭비로 가득 차 있으며, 낭비를 제거하기 위해 필요한 피드백을 받으려면 우리는 활동들의 결과물을 즉시 사용해야 한다.
예를 들어 요구사항 수집은 요구사항 수집 절차를 더 정교하게 만들 때 개선되는 것이 아니라, 요구사항 세부내용을 만드는 일과 명세된 소프트웨어를 배치하는 일 사이의 경로를 짧게 만들 때 개선된다.
20장 XP 적용하기
XP는 문제를 해결해 주는 것은 아니며, 자신이 자기 방법으로 자기 시간을 들여 XP 환경 또는 (어떤 프로세스를 쓰든) 당신이 쓰는 프로세스의 환경 속에서 문제를 해결하는 것이다.
조직의 변화를 시작하는 방법은 여전히 자신부터 변화를 시작하는 것이다.
‘지속적인(continuous)’ 개선이란 단어는 약간 잘못 지은 이름이다. 이 말의 의미는 지속적인 깨어있음, 피드백을 수용하기, 개선에 대해 열린 마음이다.
개선의 경로는 평탄하지도 예측하기 쉽지도 않으며, 빠른 전환을 촉진하는 조건은 잘 합의된 가치들, 모두가 함께 겪은 고통이 있다.
XP는 조직의 진짜 가치가 XP의 가치와 어긋날 때에는 효과를 내지 못한다. (그럴땐 쓰지 말아야 한다.)
21장 순수성
우리의 목표는 성공적이고 만족을 주는 인간관계와 프로젝트이지, XP 클럽 회원이 되는게 아니다.
여러분이 XP의 가치를 지키고 여러분의 일상 실천방법들에 XP의 원칙을 주입한다면 여러분은 XPer다.
22장 해외 개발
해외 개발(offshore development)은 소규모 팀이 같은 장소에 함께 앉아 일한다는 XP의 ‘최적 조건(sweet spot)’이 아닌 상황에서 XP의 가치, 원칙 실천방법들을 어떻게 적용할까에 대한 사례 연구가 된다.
격국에는 한곳에 있지 않아서 생기는 낭비가 다른 이익들을 넘어서지 않는지 저울질하는 사업적 결정을 내려야 한다.
나는 효율성 증가와 다중 사업장 개발 때문에 어떤 곳에서 일자리 손실이 생기든 시장이 커져서 그것을 메우고도 남으리라고 믿는다.
23장 시간이 지나도 변치 않는 프로그래밍 방식(Timeless Way of Programming)
함께 일하는 팀은 각 구성원이 혼자 노력한 것을 합친 것 이상을 이룩할 수 있다.
사람은 천천히 바뀌지만 그 변화의 깊이가 깊다.
XP의 도전은 깊은 변화를 북돋우고 개인의 가치와 상호 관계를 새롭게 바꾸어 소프트웨어에게 다음 50년 동안 참여할 자리를 만들어 주는 것이다.
24장 공동체와 XP
공동체는 소프트웨어 개발에서 귀중한 자산이다.
공동체가 중요한 까닭은 누구나 어느 시점에는 도움이 필요하기 때문이다.
공동체일 때 우리는 고립된 상태에서 이룰 수 있는 것보다 더 많은 것을 성취할 수 있다.
25장 결론
자신을 먼저 개선하지 않고서는 개선이란 없다.
여러분의 가치들을 생각해보고, 그 가치들과 조화되는 삶을 살겠다고 의식적인 결정을 내려라.
XP는 당신의 이상에 대해 생각하고, 행동을 취하는 방법이다.












