[애자일의 핵심가치와 키 프랙티스]
Ⅰ . 소프트웨어 개발 프로세스의 차이점과 공통점
세상에는 다양한 소프트웨어 개발 프로세스가 존재하고 차이점도 분명합니다 . 그러나 소프트웨어 개발 프로세스가 효율적이며 품질 좋은 소프트웨어의 개발이라는 공통적 목표를 갖고 있기 때문에 차이점뿐만 아니라 공통점도 있게 마련입니다 .
UP(Unified Process) 객체지향 프로세스와 UML(Unified Modeling Language) 모델링 표준 언어를 공동으로 창시한 이바 야콥슨 (Ivar Jacobson) 박사는 개발 프로세스들이 공통성을 부정함으로써 개별 프로세스만의 특징들을 부각시키지만 실제로 개발 프로세스들은 많은 공통성에 기반하고 있다고 지적하였습니다 (Jacobson, 2007).
어느 누구도 소프트웨어 개발의 모든 것을 다 알 수는 없고 한정된 부분에서의 전문가이기 때문에 소프트웨어 개발 프로세스에는 경험을 통하여 유용하다고 인정되는 공통된 프랙티스가 존재한다는 것입니다 . 애자일과 같은 가벼운 프로세스 (light process) 에 반하는 무거운 프로세스 (heavy process) 로 잘 알려져 있는 RUP (Rational Unified Process) 을 살펴보면 둘 다 반복적이고 점진적인 (Iterative and Incremental process) 개발을 핵심사항으로 담고 있습니다 . 이처럼 소프트웨어 개발 프로세스들을 대립적인 관점에서 이해하기보다는 개발 프로세스들이 담고 있는 차이점과 공통점을 이해하고 자신의 상황에 적합한 방법을 가려내고 포용하려는 실용적인 관점이 유용하고 적절합니다 .
프로세스 , 문서 , 계획 중심의 워터폴 지향적이던 무거운 프로세스에서 사람 , 작동하는 소프트웨어 , 반복적 개발을 지향하는 가벼운 프로세스로 진화하는 배경에는 기술적인 우위보다는 심플한 실용성의 승리라는 생각이 듭니다 . 마치 스펙 측면에서 보다 완벽한 SOAP(Simple Object Access Protocol, 단순 객체 접근 프로토콜 ) 보다 간편하고 심플한 REST(Representational State Transfer) 방식의 프로토콜을 개발자가 선호하는 것처럼 말입니다 .
Ⅱ . 애자일로부터 얻은 것
자세히 보기 →
댓글 없음 :
댓글 쓰기