익스트림 프로그래밍(XP)은 최근 개발방법론 중에서 급부상하고 있는 애자일 소프트웨어 개발론(Agile Software Development)의 하나로, 단순성, 상호소통, 피드백, 용기 등의 원칙에 기반해서 "고객에게 최고의 가치를 가장 빨리" 전달하도록 하는 경량 방법론이다. 요구사항 등의 변화가 자주, 많이 있거나 개발자가 소규모(10명 내외)이고 같은 공간을 사용하는 경우에 높은 효과를 볼 수 있다고 알려져 있고, 다른 규모나 원거리 XP 등의 적용이 꾸준히 시도되고 있다. ''&[From [유월], ExtremeProgramming, 월간 마이크로소프트웨어 6월호 컴퓨터 용어 사전2&]'' 여기서 말하는 '''개발 방법론'''이란 프로그램을 개발하는 전체 과정(process)을 형식화해 놓은 것을 말한다. 예를 들어, ''하루 동안 고객과 "원하는 프로그램"에 대해 이야기를 하고 다음 일주일 동안 컴퓨터랑 씨름을 하고, 다음날 고객에게 일차 데모를 한 뒤에 "불만 사항"을 받고, 다시 삼일간 프로그램 수정을 해서 최종 데모를 하고, 고객이 만족하면 제품으로 포장해서 넘긴다.''는 하나의 과정을 좀 더 구체적인 부분을 언급하면서 일반화 되도록 하면 원시적이긴 하나, 개발 방법론의 하나라고 말할 수 있다. 이 ExtremeProgramming의 온전한 이해를 위해서는 [위키위키]와 위키문화에 대한 이해가 필수적이다. --[유월] see also http://no-smok.net/june ---- ==== [위키위키]와 ExtremeProgramming의 관계 ==== 의 이해를 위해서는 우선 [위키위키]를 처음 만든 WardCunningham의 사상 궤적을 따라가 볼 필요가 있다. 그가 처음 [위키위키]를 만든 것은, 건축가 ChristopherAlexander의 [패턴언어]를 컴퓨터 프로그래밍에 적용하는 시도를 하면서 다양한 사람들의 소프트웨어 개발 관련 경험을 한군데 모아서 그 지혜의 공통분모를 증류해 내려는 생각에서였다. 그래서 오리지날 위키위키의 본래 이름인 PortlandPatternRepository라는 말이 생기게 되었다. 그런데 [패턴언어]는 말 그대로 언어일 뿐이지, 그것이 글을 쓰는(즉, 프로그램 개발을 하는) 과정을 안내해 주는 것은 아니었다. 따라서, 수년에 걸쳐 많은 사람의 경험을 축적한 PPR은 스스로(집단적으로) 어떤 개발 방법론의 필요를 느끼고 있었다. 이때, WardCunningham과 KentBeck은 자신이 평소에 사용해오던 방법들을 잘 엮으면 하나의 체계화된 방법론이 나올 수도 있겠다는 가능성을 보았다. 그것은 Ward와 Kent가 평소에 가진 철학과 사상에서 우러나온 것으로 위키위키와 패턴을 일관되게 관통하는 것이었다. 그것이, ExtremeProgramming으로 현현하게 된 것이다 -- [위키위키]라는 모체에서의 성장을 통해. Ward와 Kent가 이렇게 시작한 ExtremeProgramming은 대부분 PPR에서 자체진화해 나가기 시작했고, 이러는 과정에서 [위키위키]의 도움을 크게 받았고, 그 철학을 포함하게 되었다. 이런 공통점 중 몇가지만 예를 들자면, CollectiveAuthorship은 XP에서 CollectiveCodeOwndership이라는 말로 바뀌고, 마치 위키의 텍스트가 공유되듯이 프로그램을 함께 공유해서 개발하고, 남의 것 내 것 구분없이 마음대로 수정하는, 또 그것을 환영하는 개념으로 발전되었다. (이것은 현재 프로그래머들이 갖고 있는, 자신의 프로그램에 대한 집착이나 프라이드 등을 볼 때 완전히 난센스로 받아들여질 수 있을 만큼 혁명적인 패러다임 쉬프트다. 위키위키 역시 현재의 인터넷 게시판 문화와는 정반대 가치를 추구한다. 사람들이 하지 말라고 하고, 하기 싫어하는 것을 "적극적으로 장려하고, 추구"해서 그런 제약은 물론 그 너머의 문제까지도 해결하거나, 초월하는 것이다.) 또 이러한 Collective-X를 할 때 가능하면 표준(CodingStandard)을 지키도록 해서, 결국에는 이 부분을 누가 썼는지 분간할 수 없는 상태가 되도록 하는 것이 양자의 지향점이기도 하다. (현재의 개발론 전통으로 봤을 때, 이렇게 책임소재가 불분명한 방식은 늘 전근대적인 것으로, 피해야할 무엇으로 인식되어 왔다) [다큐먼트모드]나 간략한 글을 선호하고 "실질적 가치"를 우선시하는 위키의 분위기는 XP의 Simple Design, Once And Only Once 등과 상응한다. 그리고, IncrementalDevelopment에 대한 선호도 공통적이다. 하지만 XP에서 위키위키라는 기술적인 시스템을 이용하는 것은 아니다. 대신 그 바탕이 되는 철학이 비슷하고, 추구하는 가치에 교집합이 많으며, 실행법에 있어 유비적으로 대응되는 것이 상당수 있고, 또 역사적 사실 관계 때문에 연관이 있다고 할 수 있는 것이다. see also Wiki:WikiHistory, Wiki:WikiDesignPrinciples ---- [과학기술분류]