원문 : http://martinfowler.com/bliki/RollerSkateImplementation.html

롤러스케스 구현 agile 2007년 9월 9일 반응

애자일 개발의 핵심 요소는 어떻게 하면 조그마한 기능 집합으로 시스템을 가동할 수 있을지를 도모하는 것이다. 우리는 비즈니스 가치를 목적으로 소프트웨어를 만든다. 따라서 빠르게 시스템을 가동할수록 그로 인한 비즈니스 가치를 조금이라도 더 빨리 얻을 수 있다.

나의 동료 Dave Leigh는 이런 류에 해당하는 이야기를 해줬다.(이 이야기를 예로 들기 좋아한다.) 중개 회사에서 일을 하고 있을 때였다. 그들은 시장에 들여놓고 싶어하는 새로운 종류의 상품을 가져왔다. 소프트웨어가 할 일은 웹 페이지를 제공해서 고객들이 입력을 하면 뒷단의 시스템에 필요한 거래를 생성하는 것이었다. 그러나 Dave는 그보다 더 빨리 제품을 시장에 들여놓는 방법을 생각해냈다.

•    버전 1은 정적인 웹 페이지로 제품을 설명하고 연락을 할 수 있는 전화번호를 제공한다. 몇몇 임시직을 고용하여 고객의 전화를 받고 주문 정보를 뒷단의 시스템에 입력하도록 한다.
•    버전 2는 고객이 정보를 입력할 수 있는 웹 양식이다. 하지만 이 버전에서는 데이터를 뒷단의 시스템으로 이동시키지 않는다. 그 대신 웹 양식은 팩스를 생성한다. 그들은 임시적으로 팩스기기로부터 주문을 받을 사람을 더 고용하여 팩스의 정보를 가지고 뒷단의 시스템으로 정보를 입력하도록 한다. 팩스 기기가 좀 멀리 떨어져있기 때문에 롤러스케이트라는 용어를 붙였다.
•    버전 3은 웹 양식을 읽어서 뒷단의 시스템으로 직접 연결한다.

처음 두 개의 버전은 최고로 멋진 해결책이 아닐 수도 있다. 그러나 그들은 제품을 시장에 훨씬 더 빨리 내놓을 수 있었다. 롤러스케이트를 사용한 점진적인 개발의 또 다른 예는 생각이 나질 않는다. 그러나 그 이유는 필요가 없어서라기 보다는 상상력의 부족 때문일 것이다.