본문 바로가기

카테고리 없음

Extreme Programming - 1. XP란 무엇인가?


Extreme Programming - 1


Chap 1. XP란 무엇인가?


    1. XP는...

     - 과거에는 잘 통했지만 지금은 일을 최고로 잘 하려고 하는데 방해가 되는 습관과 양식을 버리는 것

     - 우리가 할 수 있는 게 무엇인지 공개한 다음 그걸 해내는 것에 대한 이야기

     - 우리가 될 수 있는 최고의 자신을 향해 나아가면서 그 과정에서 개발자로서 최고가 되는 것에 대한 이야기

     - 프로그래밍 기법과 명확한 의사소통, 팀워크를 탁월하게 적용하는 것에 집중하는 소프트웨어 개발의 양식


    2. XP에 포함되는 것들

     - 의사소통, 피드백, 단순성, 용기, 존중 같은 가치들에 바탕을 둔 SW 개발 철학

     - SW개발을 개선하는 데 쓸모가 있다고 증명된 실천방법들의 집합

     - 상호 보완적인 원칙들. 가치를 실천방법으로 옮기는 지적인 기법들의 집합

     - 이 가치들을 공유하고, 동일한 실천방법들 중 상당수를 공유하는 공동체


    3. XP가 여타 방법론과 다른 점

     - 점진적 계획 접근 방법

     - 구현 일정을 유연하게 세워 자주 바뀌는 비즈니스 요구에 대응 가능한 점

     - 자동화된 테스트에 의존하는 점

     - 구두 전달, 테스트, 소스 코드에 의존하여 시스템 구조와 시스템 의도를 전달하는 점

     - 시스템이 존재하는 마지막 순간까지 끝나지 않는 진화적인 설계 절차에 의존하는 점

     - 재능은 평범해도 열심히 참여하는 개인들 사이의 긴밀한 협력에 의존하는 점

     - 팀 구성원들의 단기적 본능과 프로젝트의 장기적 이해관계 둘 다에 함께 적용될 수 있는 

       실천방법들에 의존하는 점


     * XP에 대한 의문점


     - XP에서는 최선을 다하고 그 결과에 대한 책임을 지며, 실패를 준비하지 않는다고 하였다.

       그렇다면 실패 확률이 훨씬 높은 프로젝트를 진행하는 동안 XP를 시도하여 실패에 대한 

       플랜을 세워놓지 않을때와 어느 정도 실패에 대한 대비를 해 놓았을때를 비교하면, 

       실제 프로젝트가 실패했을 때 어떤 것이 더 효율적이고 합리적인 방안일까?


     - 향후 XP적인 방법을 프로젝트에 도입한다고 가정하였을때, XP가 익숙하지 않은 팀원들에게 XP를

       적용하여 발생하는 기회비용은 어느 정도까지 감당하는 것이 합리적일까?

       적응이 된다면 예전에 비해 효율적일 수는 있겠지만, 과연 그 정도 수준에 이르기까지 어느 정도의

       시간적, 인적 비용을 감수해야 할까?


     - 약 5년 전 XP의 등장이후, 현재 XP의 개념이 확장되었듯이, 시간의 흐름에 따라 XP의 개념이 바뀐다면

       어떤 모습으로 변화될 것이며 그 변화주기는 얼마나 걸릴 것인가?