무거운 프로세스와 가벼운 프로세스 by 황순삼

마소 8월호 기사를 보다가 다음과 같은 기사가 눈에 들어왔습니다.

"웹 기술 생태계의 씨앗은 HTML의 단순함(Simple) 이었듯이, 단순하고 사용하기 쉬운 기술은 조용히 그 영향력을 펼쳐나갔다. 모든 생태계의 생존 비법은 외부의 변화에도 살아남을 수 있는 적응력과 번식력이다. 웹 기술도 마찬가지이다. 몸집만 거대하고 무거워진 기술과 소프트웨어는 도태되고 비교적 가볍고 쉽지만 본연의 임무에 충실한 기술은 웹 기술 생태계에서 살아남았다." 
- 마이크로 소프트 2007년 8월호: 웹 2.0 기술 다시 보기 (박지강) 중에서 -  

Joel Spolsky도 그의 블로그와 책에서 이런 생각을 잘 전달하고 있죠.

"우연성 있고 단순하면서도 관대한, 그래서 인간의 결점과 약점을 너그럽게 용서해 주는 소프트웨어는 결국 살아남아서 점점 더 발전하는 반면, 추상적이면서 지나치게 빡빡한 시스템은 결국 스스로 붕괴하게 됩니다."
- 소프트웨어 블로그 베스트 29선 (조엘 스폴스키) 중에서 -


프로세스라는 것이 한 개인을 위한 것이 아니라 공동 작업을 수행하는 조직을 위한 것이고 개발 환경과 기술, 개발자가 시대에 따라 변한다는 점에서 과거의 무겁고 엄격했던 방법론이라는 틀에서 보다 가볍고 유연한  practice들의 구성으로의 변화해 가는 것은 아닌가 싶습니다.

Process, Document, Plan, Waterfall 지향적인 
무겁운 프로세스에서 비교적 가볍고 실천적인 People, Working Software, Fast Iterative 지향적인 프로세스로 변화하는 과정은  기술적 발전이라기 보다는  다수의 선택을 통한 진화의 과정이라는 생각입니다. API 프로토콜에서도 스펙 측면에서 보다 완벽한 SOAP보다 간편하고 심플한 REST가 승리한 것이 바로 그런 이유라는 점입니다.  

"Balancing Agility and Discipline: A Guide for the Perplexed"에서 Boehm은  CMMI와 같은 계획 중심의 무거운 프로세스와 Agile의 가벼운 프로세스를 선택하기 위한 기준으로 아래 5가지 요인을 제시하였습니다.

[Boehm과 Turner가 쓴 "Observations on Balancing Discipline and Agility" P4Paper.pdf 논문참조]

1. personnel
2. criticality
3. size
4. culture
5. dynamism


여기서 Agile이 적합한 프로젝트의 특성은 규모가 작고, 덜 치명적인 도메인, 요구사항 변경이 많거나 조직의 자유로운 문화와 더불어 개인의 개발 기술 능력과 성숙(경험) 수준은 높아야 한다고 제시하였습니다. 즉 초보 개발자일수록 상세한 계획과 프로세스와 검토가 많이 필요하고 무거운 방법론에 따라 진행하는 것이 적합하다고 합니다.
참고로 아래는 제약사항을 기준으로 무거운 프로세스와 가벼운 프로세스의 순위를 다룬 표입니다. 스크럼이 가장 가볍고 크린룸이 가장 무거운 프로세스라고 평가하고 있습니다.

핑백

덧글

  • voohjuuytf 2015/01/26 18:58 # 삭제 답글

    여기서 Agile이 적합한 프로젝트의 특성은 규모가 작고, 덜 치명적인 도메인, 요구사항 변경이 많거나 조직의 자유로운 문화와 더불어 개인의 개발 기술 능력과. 유용한 문제는 나는이 웹 사이트를 공개와 관련하여, 그것은, 환상적인 세부 사항뿐만 아니라 아이디어를 포함 그 또는 그녀가 도움이 작업을 수행하는 것처럼, 그것은 좋은 게시물이 나타납니다이 짧은 기사가 주어진 감사를 선호,있을 것입니다.
    writing a company profile
    http://www.companyprofilewriter.com/
댓글 입력 영역