본문 바로가기
개발방법론

Agile과 CMMI 화해하기 (2) - Agile 이야기

by 랭님 2009. 7. 25.

글쓴이 : 양승익

오늘은 지난 포스팅에 언급했던 Agile 에 대해 조금 깊에 알아보도록하겠습니다.

Agile의 여러 내용 중 중요한 사상은 iterative and incremental design and development (IIDD) 입니다. 
반복적이고 점진적인 개발..   개발을 하는데 경험이 없고 잘 모르기 때문에 여러 번의 iteration을 통해 경험을 쌓고 그 경험을 다시 새로운 iteration을 위한 Input 값으로 전달한다는 것. 어떻게 보면 너무다 당연한 방법인 것 같기도 합니다.

그럼 이러한 방법(IIDD)은 어디서 처음 생겨났을 까요?  혹자는 IIDD가 Agile의 특화된 내용이라고 하지만 제가 아는 것만해도 ‘90 년대 후반 부터 2000년 대 초반까지 한 시대를 풍미했던 RUP의 중심 사상이기도 했습니다.

  • 최근에 아티클*을 보니까 약 75년 전에 Edwards Deming 이 aerospace industry 에서 시스템 개발을 할 때 time-boxed, iterative, and incremental product development cycles 을 사용했다고 합니다. 
    참고로, Edwards Deming 은 일본 제조업에 품질이라는 개념을 도입했고 향후 이것은 도요타 시스템을 만드는 초석이 되었지요 (http://blog.naver.com/puha629/10043481067)

  그 이후에 다음과 같은 IIDD의 발전이 있었습니다.

  • 1976에 Tom Gilb은 그의 책 “Software Metrics” 에서 agile, light, and adaptive development iterations에 대해 역설하였고..
  • 1980년대 SW 엔지니어링이 체계화되면서 Barry Boehm은 나선형 모델로 잘 알려진 “The Spiral Model of Software Development and Enhancement”를 발표하였습니다.
  • 그리고, 1990년대에 와서는 rapid prototyping, rapid application development (RAD), rational unified process (RUP) 를 통해 IIDD가 SW 진영에서 mainstream으로 자리 잡아 가기 시작했습니다.
  • 그 이후, 지금도 왕성하게 활동하고 있는 Kent Beck, Ron Jeffries, Alistair Cockburn, Jim Highsmith, Bob Martin, Mike Beedle, Ken Schwaber, Jeff Sutherland 등이 Utah에 모여서 “Manifesto for Agile Software Development”를 한 것은 너무나 널리 알려진 사실이죠.

지금까지 75년전 부터 최근까지 이야기를 굳이 언급한 이유는 Agile 이 CMMI의 반대편에서 서서 많은 것을 해결할 수 있다는 “Silver bullet”이 아니라는 것을 말하고 싶었습니다. Agile 역시 다른 사상이나 패러다임처럼 기존 것을 잘 받아들였고 계승했으며 현실의 문제를 풀기 위해 더 많은 노력을 하고 있는 중입니다.

다음에는 CMMI에 대해 잘못 이해하고 있는 내용에 대해 포스팅을 하도록 하죠. 그리고 마지막 포스팅은 좀 어려울것 같기는 하지만 CMMI와 Agile이 함께 발전할 수 있는 방법에 대해 고민하도록 하겠습니다.

* Article : CMMI® or Agile: Why Not Embrace Both