오늘 할 애자일 이야기는 애자일의 어떤 방법이라기보다는 또 한번 삼천포로 빠져서 애자일을 하기전에 우리 Domain 말고 다른 Domain에서는 어떻게 목표를 세우고 달성하는지에 대한 이야기이다.
먼저 자의든 타의든 군대이야기 나오면 피가 꺼꾸로 돌거나 피가 끓어 오르는 대한민국 남자들을 대상으로 하고픈 군사 작전에 대한 이야기이다.
군사작전은 크게 2가지의 목표를 가진다.
첫째, 우리가 강제하고자 하는 의지를 거부하는 적대세력의 제거이다.
둘째, 우리의 의지로 점령하고자 하는 목표지역/자원에 대한 점령이다.
첫번째는 점령지역이 무의미한 사막 또는 바다, 하늘에서 적대세력을 찾아서 섬멸한다. 이른바 Search&Destroy
여기서는 점령지역을 얼마나 점령했는지는 전혀 고려대상이 아니다. 적을 얼마나 찾아서 제거했는지가 가장 큰 고려요소이다. 따라서, 적기를 몇기나 격추했고 적함을 몇척이나 격침했고 적전차를 몇대부쉈으며 적병사를 몇명이나 죽였는지가 관건이다.
둘째는 우리가 점유하고자 하는 목표에 대한 강제 점령이다. 물론 이를 거부하기위한 반대 세력이 있을 것이고 이들과 적절한 선에서 크던 작던 분쟁이 발생할 수 있다. 그러나 여기서의 목표는 어디까지나 몇명을 무력화 시켰는지가 관건이 아니라 아군이 얼만큼 점령했는지가 관건이다.
위의 2가지의 범위에서 군사작전은 목표가 설정된다.
여기서 중요한것이 바로 전략과의 연계성이다.
전략은 우리의 목표를 분명히 하는 것이고 각기 다른 능력을 가진 하위 제대들은 각자의 능력에 맞추어 적을 수색 섬멸하는 전술과 적의 총탄을 맞으면서 전진하는 전술로 나뉘어 설정된다.
이러한 목표와 작전간의 유기적인 조합을 통해 목표를 달성해가는 것이 전쟁수행방법이다.
이와 함께 각개 병사에 대한 교육이 병행된다. 여기에는 온갖 심리전술, 전략이 동원되는데
첫째, 예상되는 거부세력에 대한 적개심부터 교육된다.
둘째, 충분한 적개심이 교육되고나면 적을 이기는 방법을 교육시킨다.
셋째, 적을 이기는 방법이 교육되고나면 목표를 하달한다.
이처럼 목표가 부여되고 목표에 대한 달성여부에 따라 공과를 나눈다. 그리고 다시 목표가 하달된다.
이러한 군사작전은 국가의 운명과 직결되기 때문에 국가의 총역량이 동원되는 것이 일반적인 경우이다.
물론 일본과 같이 B-29와 원자폭탄 공포속에 살아 보았던 인간들의 경험과 지성으로 억제되는 경우도 있다.
그들 스스로는 1945년 이미 미래의 전쟁에 살아 보았기 때문이다.
(물론 2009년 현재 일본은 이러한 억지력을 스스로 벗어나려 노력중이고 우리로써는 당연히 우려하고 있는 상황인것은 몰라서 언급하지 않는 것은 아니다.)
물론 여기서 더 하위 부대로 내려가면 온갖 고성과 커뮤니케이션이 일어난다.
소대장은 중대장에게 화력지원해달라고 고래고래 소리지르고 각개 병사들은 적을 사살하거나 총탄에 맞았다고 위생병을 부르고 중대장은 중대장대로 대대에 지원해달라고 난리치고 한마디로 아수라장이 되는 현실이 있지만 여기까지만 논하도록 하자.
군대 이야기가 지겨워졌다면 이제는 스포츠이야기 한번 해보자.
스포츠팀의 목표는 단 한가지이다.
"리그 1위"
이러한 목표는 모든 팀원들이 공유한다. 그리고 상대팀을 분석하고 상대 전술에 맞추어 이길 수 있는 전술을 가지고 팀원에게 교육 및 연습이 1년 365일 일어난다.
치열한 싸움끝에 이기고나면 비디오를 통해 전술상 오류를 찾아내고 보완하며 팀원중에 전술을 소화하지 못하는 팀원은 감독권한으로 방출하고 새로운 피로 수혈된다.
마지막으로 우리 프로젝트 이야기 한번 해보자.
프로젝트 고객사에게 영업을 열심히 하여서 "정보제공요청서(RFI)"를 받았다고 치자 "정보제공서 또는 정보제공요청 답변서"를 제출하면 서류검토 후에 "제안요청서(RFP)"가 오게되고 "제안서"를 작성하며 프로젝트 PM이 팀을 빌딩하게 된다.
계약이후에 "과업내역서"라는 것을 수령하면 제안서 작업팀은 PM을 중심으로 "사업수행계획서"를 작성하고 "착수보고"를 하고나면 일련의 개발을 위한 활동에 돌입하게 된다. 그리고 요구사항수렴과 분석설계를 거치고 "중간보고"를 하고나서 보완후 개발을 진행하고 테스트활동후에 고객대상 교육 수행하면 모든 프로젝트가 완료되고 프로젝트팀은 해산된다.
여기서 잠깐 우리의 프로젝트 팀은 어째 위 2개와 상이한 부분이 존재한다.
첫째, 교육부분이 아주 부실하다는 점이다.
둘째, 정량화된 정확한 포인트가 불확실하다는 점이다.
셋째, 훈련된 팀을 갖추고 있지 못하다는 점이다.
교육부분을 살펴보면 제안활동을 통해서 축적된 교육이 전부인 팀이 프로젝트에 투입되므로 스스로 학습의 기회를 갖지 못한다. 그래서 결과론적으로 개발팀은 현업을 주도하지 못하고 일을 장악하지도 못한다. 다시말해 전문성을 가지지 못하는 팀이 현업으로 부터 신뢰받거나 업무를 잘할거라는 기대를 하고 있다는 점이다.
정량화된 체크포인트가 없다. 거의 모든 PM들의 체크 포인트는 WBS이다. 이게 웃기는 것이다. 일정을 나열하고 그 일정대로만 하면 모든 계약사항이 다 잘될거라는 전재하에 작성하고 체크 하고 있는 것이다.
마지막으로 팀웤은 저절로 생길거라는 믿음으로 팀원끼리 손발한번 맞춰보지 못한채로 투입되는 것이다. 마치 전쟁터에서 총잘쏘면 이길것이라는 믿음과 같다. 총을 엄청나게 잘쏴도 전선유지를 위한 커뮤니케이션이 숙달되지 않는 군대가 전쟁나가서 이길것이라는 믿음과 같은 것이며 슛을 엄청 잘넣는 슈터만 있으면 게임에서 승리할 것이라는 믿음과 같은것이다. 제안 작업을 통해 충분한 Relation이 쌓였을것이라는 믿음만으로 프로젝트에 투입하니 프로젝트 진행간에 모든 문제가 폭발적으로 늘어난다.
왜 애자일의 방법론 혹은 Component를 도입해야 하는지에 대한 해답이 바로 여기 있는 것이다.
나 나름대로는 이러한 고민때문에 여기 저기서 대가들의 방법을 조금씩 따왔었다.
첫째가 바로 가조립 또는 예행연습 또는 교육훈련을 위한 프로토타잎 개발단계를 넣는 것이며
둘째가 CI툴에 Unit Test Tool을 연동하여 정량적으로 직척도를 측정하는 방법을 쓰는 것이다.
셋째는 Wiki 시스템으로 개발과정에서 일어나는 커뮤니케이션 및 업무량을 측정하는 방법을 쓰는 것이다.
이런 Component들은 사용해본 결과 정량적인 수치를 제공해 준다.
전체 설계대비 몇 %의 method가 개발되었는지 Unit Test를 통과한 갯수와
전체 요구사항대비 몇 %의 User Scenario가 개발되어 작동하는지에 대한 System Test를 통과한 갯수
그리고 누가 무슨일을 얼마나 하고 누가 얼마나 defact을 일으키는지에 대해서도 정확하게 측정이 가능하다.
또한 누가 어마나 Performance가 좋은지도 알 수 있다.
이러한 수치들은 "성과평과회의"에서 즉시 공유되어 문제점에 대한 준비를 할 수 있게 하여 준다.
따라서, 애자일을 한다고해서 금새 눈에 띄는 성과 향상 또는 야근이 없어지는 것이 아니라 이러한 문제를 정확하게 인지하고 연습/훈련시킴으로써 부과적으로 성과향상과 야근이 없어지는 것이다. (어느정도 교육된 PM이라면 일끝난 팀원 계속 붙잡고 야근 시켜가면서 서로 피곤해 하는 경우는 없다.-->야근식대와 교통비를 지급해야 하는데 그것도 짜증나는 일이기때문이다.)
또한 애자일을 도입한다고해서 요구사항수렴, 분석설계, 개발, 테스트의 단계를 거치지 않는 것이 아니라 Waterfall을 한다고하더라도 충분히 Agile 방법중에 일부 적용 가능한 Components를 빌려 올 수 도 있으며 우리의 잘못된 문제를 고칠 수도 있다.
그리고 이글을 통해 우리가 얼마나 잘못된 방법으로 일하고 있는지도 알려주고자 했다.
다음에는 본격적으로 툴을 통해 어떻게 일이 진행되는지 공유해보고자 한다.
먼저 자의든 타의든 군대이야기 나오면 피가 꺼꾸로 돌거나 피가 끓어 오르는 대한민국 남자들을 대상으로 하고픈 군사 작전에 대한 이야기이다.
군사작전은 크게 2가지의 목표를 가진다.
첫째, 우리가 강제하고자 하는 의지를 거부하는 적대세력의 제거이다.
둘째, 우리의 의지로 점령하고자 하는 목표지역/자원에 대한 점령이다.
첫번째는 점령지역이 무의미한 사막 또는 바다, 하늘에서 적대세력을 찾아서 섬멸한다. 이른바 Search&Destroy
여기서는 점령지역을 얼마나 점령했는지는 전혀 고려대상이 아니다. 적을 얼마나 찾아서 제거했는지가 가장 큰 고려요소이다. 따라서, 적기를 몇기나 격추했고 적함을 몇척이나 격침했고 적전차를 몇대부쉈으며 적병사를 몇명이나 죽였는지가 관건이다.
둘째는 우리가 점유하고자 하는 목표에 대한 강제 점령이다. 물론 이를 거부하기위한 반대 세력이 있을 것이고 이들과 적절한 선에서 크던 작던 분쟁이 발생할 수 있다. 그러나 여기서의 목표는 어디까지나 몇명을 무력화 시켰는지가 관건이 아니라 아군이 얼만큼 점령했는지가 관건이다.
위의 2가지의 범위에서 군사작전은 목표가 설정된다.
여기서 중요한것이 바로 전략과의 연계성이다.
전략은 우리의 목표를 분명히 하는 것이고 각기 다른 능력을 가진 하위 제대들은 각자의 능력에 맞추어 적을 수색 섬멸하는 전술과 적의 총탄을 맞으면서 전진하는 전술로 나뉘어 설정된다.
이러한 목표와 작전간의 유기적인 조합을 통해 목표를 달성해가는 것이 전쟁수행방법이다.
이와 함께 각개 병사에 대한 교육이 병행된다. 여기에는 온갖 심리전술, 전략이 동원되는데
첫째, 예상되는 거부세력에 대한 적개심부터 교육된다.
둘째, 충분한 적개심이 교육되고나면 적을 이기는 방법을 교육시킨다.
셋째, 적을 이기는 방법이 교육되고나면 목표를 하달한다.
이처럼 목표가 부여되고 목표에 대한 달성여부에 따라 공과를 나눈다. 그리고 다시 목표가 하달된다.
이러한 군사작전은 국가의 운명과 직결되기 때문에 국가의 총역량이 동원되는 것이 일반적인 경우이다.
물론 일본과 같이 B-29와 원자폭탄 공포속에 살아 보았던 인간들의 경험과 지성으로 억제되는 경우도 있다.
그들 스스로는 1945년 이미 미래의 전쟁에 살아 보았기 때문이다.
(물론 2009년 현재 일본은 이러한 억지력을 스스로 벗어나려 노력중이고 우리로써는 당연히 우려하고 있는 상황인것은 몰라서 언급하지 않는 것은 아니다.)
물론 여기서 더 하위 부대로 내려가면 온갖 고성과 커뮤니케이션이 일어난다.
소대장은 중대장에게 화력지원해달라고 고래고래 소리지르고 각개 병사들은 적을 사살하거나 총탄에 맞았다고 위생병을 부르고 중대장은 중대장대로 대대에 지원해달라고 난리치고 한마디로 아수라장이 되는 현실이 있지만 여기까지만 논하도록 하자.
군대 이야기가 지겨워졌다면 이제는 스포츠이야기 한번 해보자.
스포츠팀의 목표는 단 한가지이다.
"리그 1위"
이러한 목표는 모든 팀원들이 공유한다. 그리고 상대팀을 분석하고 상대 전술에 맞추어 이길 수 있는 전술을 가지고 팀원에게 교육 및 연습이 1년 365일 일어난다.
치열한 싸움끝에 이기고나면 비디오를 통해 전술상 오류를 찾아내고 보완하며 팀원중에 전술을 소화하지 못하는 팀원은 감독권한으로 방출하고 새로운 피로 수혈된다.
마지막으로 우리 프로젝트 이야기 한번 해보자.
프로젝트 고객사에게 영업을 열심히 하여서 "정보제공요청서(RFI)"를 받았다고 치자 "정보제공서 또는 정보제공요청 답변서"를 제출하면 서류검토 후에 "제안요청서(RFP)"가 오게되고 "제안서"를 작성하며 프로젝트 PM이 팀을 빌딩하게 된다.
계약이후에 "과업내역서"라는 것을 수령하면 제안서 작업팀은 PM을 중심으로 "사업수행계획서"를 작성하고 "착수보고"를 하고나면 일련의 개발을 위한 활동에 돌입하게 된다. 그리고 요구사항수렴과 분석설계를 거치고 "중간보고"를 하고나서 보완후 개발을 진행하고 테스트활동후에 고객대상 교육 수행하면 모든 프로젝트가 완료되고 프로젝트팀은 해산된다.
여기서 잠깐 우리의 프로젝트 팀은 어째 위 2개와 상이한 부분이 존재한다.
첫째, 교육부분이 아주 부실하다는 점이다.
둘째, 정량화된 정확한 포인트가 불확실하다는 점이다.
셋째, 훈련된 팀을 갖추고 있지 못하다는 점이다.
교육부분을 살펴보면 제안활동을 통해서 축적된 교육이 전부인 팀이 프로젝트에 투입되므로 스스로 학습의 기회를 갖지 못한다. 그래서 결과론적으로 개발팀은 현업을 주도하지 못하고 일을 장악하지도 못한다. 다시말해 전문성을 가지지 못하는 팀이 현업으로 부터 신뢰받거나 업무를 잘할거라는 기대를 하고 있다는 점이다.
정량화된 체크포인트가 없다. 거의 모든 PM들의 체크 포인트는 WBS이다. 이게 웃기는 것이다. 일정을 나열하고 그 일정대로만 하면 모든 계약사항이 다 잘될거라는 전재하에 작성하고 체크 하고 있는 것이다.
마지막으로 팀웤은 저절로 생길거라는 믿음으로 팀원끼리 손발한번 맞춰보지 못한채로 투입되는 것이다. 마치 전쟁터에서 총잘쏘면 이길것이라는 믿음과 같다. 총을 엄청나게 잘쏴도 전선유지를 위한 커뮤니케이션이 숙달되지 않는 군대가 전쟁나가서 이길것이라는 믿음과 같은 것이며 슛을 엄청 잘넣는 슈터만 있으면 게임에서 승리할 것이라는 믿음과 같은것이다. 제안 작업을 통해 충분한 Relation이 쌓였을것이라는 믿음만으로 프로젝트에 투입하니 프로젝트 진행간에 모든 문제가 폭발적으로 늘어난다.
왜 애자일의 방법론 혹은 Component를 도입해야 하는지에 대한 해답이 바로 여기 있는 것이다.
나 나름대로는 이러한 고민때문에 여기 저기서 대가들의 방법을 조금씩 따왔었다.
첫째가 바로 가조립 또는 예행연습 또는 교육훈련을 위한 프로토타잎 개발단계를 넣는 것이며
둘째가 CI툴에 Unit Test Tool을 연동하여 정량적으로 직척도를 측정하는 방법을 쓰는 것이다.
셋째는 Wiki 시스템으로 개발과정에서 일어나는 커뮤니케이션 및 업무량을 측정하는 방법을 쓰는 것이다.
이런 Component들은 사용해본 결과 정량적인 수치를 제공해 준다.
전체 설계대비 몇 %의 method가 개발되었는지 Unit Test를 통과한 갯수와
전체 요구사항대비 몇 %의 User Scenario가 개발되어 작동하는지에 대한 System Test를 통과한 갯수
그리고 누가 무슨일을 얼마나 하고 누가 얼마나 defact을 일으키는지에 대해서도 정확하게 측정이 가능하다.
또한 누가 어마나 Performance가 좋은지도 알 수 있다.
이러한 수치들은 "성과평과회의"에서 즉시 공유되어 문제점에 대한 준비를 할 수 있게 하여 준다.
따라서, 애자일을 한다고해서 금새 눈에 띄는 성과 향상 또는 야근이 없어지는 것이 아니라 이러한 문제를 정확하게 인지하고 연습/훈련시킴으로써 부과적으로 성과향상과 야근이 없어지는 것이다. (어느정도 교육된 PM이라면 일끝난 팀원 계속 붙잡고 야근 시켜가면서 서로 피곤해 하는 경우는 없다.-->야근식대와 교통비를 지급해야 하는데 그것도 짜증나는 일이기때문이다.)
또한 애자일을 도입한다고해서 요구사항수렴, 분석설계, 개발, 테스트의 단계를 거치지 않는 것이 아니라 Waterfall을 한다고하더라도 충분히 Agile 방법중에 일부 적용 가능한 Components를 빌려 올 수 도 있으며 우리의 잘못된 문제를 고칠 수도 있다.
그리고 이글을 통해 우리가 얼마나 잘못된 방법으로 일하고 있는지도 알려주고자 했다.
다음에는 본격적으로 툴을 통해 어떻게 일이 진행되는지 공유해보고자 한다.





494379
23
173





