애자일 히틀러

Developer 2011/10/11 15:28
대부분의 애자일 프로세스는 이렇게 되고 말지요.



제발 애자일을 방법론이라 부르지 말아 주세요.
최근 애자일 한다는데, 그거 방법론 아니야?라는 이야기를 들어서 상처 받고 있네요.
애자일 선언을 뜯어보면,

애자일은 가치는 도구보다 상호협력, 문서보다 작동하는 실체, 계약보다 협력, 계획보다 변화에 대한 대응을 더 가치 있게 생각한다라는 대목이고 이 그 밑에 자세히 보면, "단순함--하지 말아야 할 일을 최대화하는 기술--이 핵심이다.(Simplicity--the art of maximizing the amount of work not done--is essential.)"라고 명시되어 있습니다.


애자일을 한다고 해서, 해야할 일이 늘어난다면 하지 말아야 합니다.

지금까지 하던일을 단순화하고 병합해서 일을 하자는 것이 애자일입니다.
그러나, 한국 개발문화는 최소한 해야 할 것도 안하고 있지요.

이게 바로 애자일을 확산하는데 문제가 되는 부분입니다.

예를 들어, 설계서를 보면 누구도 보지 못할 고객도장용 설계서를 만들어 놓고는 업데이트를 안해서 나중에는 전혀 인식하지 못하는 문서를 만드는 분에게 UML로 문서만드시면 간단합니다.라고 하면 정말 간단하게 받아 들일까요?
혹은, 문서를 전혀 안만드는 개발자에게 UML을 들이밀면 그게 간단하다고 생각할까요?

또는, 회의를 전혀 안하는 조직에 스텐드업 미팅을 하라고 하면 그게 쉬운 걸까요?


애자일 프렉티스를 가만히 보면, 한국의 개발 문화와 안맞는 부분이 바로 이런 부분입니다.

철두철미하게 문서화하고 그 문서를 철저히 검증한뒤 구현시간을 최소로 가면서 철저한 테스트를 하는 양키들에게는 애자일은 신이 내려주신 선물이지만, 대충 문서만들고 대충 테스트 하는 한국개발자에게는 애자일은 신이 내린 재앙입니다.

더 신랄하게 예를 들면, 양키들 테스트는 품질관리 시그마 6수준입니다.
요구사항을 철저히 검증하고 사소한 버그에서 벗어나 직관적이지 않은 UX마저도 Reject시키는데다가 유닛테스트 조차도 테스트 모듈 만들어서 철저하게 검증합니다.
이들에게 유닛테스트 자동화도구는 행복이지만, 대충 눌러보고 에러없으면 그것도 시나리오대로만 입력하기도 벅차하면서 대충 눌러보는 한국 개발자에게는 자동화 테스트 코드 자체가 재앙이지요.

그래서, 요즘은 애자일에 대해 도움을 바라는 분들께 회고만 강조하고 있습니다.
일하는 중에는 스텐드업 미팅만 하시고 일 끝내고 나서 회고하세요.
애자일에 대한 도움을 이렇게 드리는데, 이게 진짜 애자일이냐?라고 하시는 분도 있으시죠.
그런 분들께 이렇게 말씀드리고 있습니다. "님이 생각하시는 애자일이 구체적으로 뭐죠?"
대부분이 방법론이라고 이야기하시는데, 그럴때는 그냥 익숙한 방법론 쓰시고 애자일 도입하지 마세요. 합니다.
바로 위의 사례처럼 변질되고, 협력은 고사하고 변화에 대응하지 못하는 히틀러 같은 PM만 양산하기 때문입니다.


ps. 발번역 본입니다. 개발번역하다 말았어요. -_-;;

이터레이션 #6 계획회의에 잘 오셨습니다.
알고 계시겠지만 이터레이션#5에서 베를린에 있는 고객이 요청한 몇가지 요구사항이 아직 남았습니다.
고객은 유즈케이스로 계산했던 경우의 수를 많이 벗어나 있습니다.
그리고 자동 유닛테스트는 우리 기대보다 더 버틸수 없는 상황입니다.
 
그래, 물론, 당신은 Mock객체로 코드의 90%를 커버하고 있고 Check-in전에 테스트는 매일 작동하고 있지.

음.. 저기.. 저는..

테스트는 빌드에서 제외했습니다. 그건 실패했기 때문입니다.
이터레이션 #3 부터 입니다.

시니어 개발자는 남고 나머지는 방에서 지금 나가시오.

이게 무슨 시발같은 소리야?
우린 테스트 드리븐 개발을 추구하기 위해 지속적인 통합을 약속했다고!!!
테스트코드는 모든 케이스와 메소드와 우리가 테스트하려는 모든 행위를 테스트하기 위해 작성되어야 한다고, 상태뿐만 아니라!!
지금, 나는 우리가 이터레이션#3부터 싱글 테스트가 작동하지 않고 있다는 보고를 들었어!
너는 네 지랄같은 어플을 개같이 짜지 않게 더 신경쓰면서 만들었어야 했다고!
내 Mock객체는 도대체 어딪는거야? 이 게으른 자식들아!

지킬려고 노력했습니다. 하지만, 너무 빨리 변했다고요!

매일하는 스텐드업 미팅때도, 아무런 상세 보고도 없었잖아?!?!

우리 잘못이 아니라고요, 고객이 너무 많이 변경했어요.

그게 니가 알고 있는 시발같은 거라고!
물론, 걔네들이 많이 바꿨지, 그게 왜 애자일이라고 불리는 이유라고!
우리가 변화를 수용했잖아!
니가 지금 우리 개발속도를 엿먹이고 있는고 있다고!
지금부터 모든 코드에 대해 10라인마다 테스트해!
그리고 그지같은 빌드를 매시간마다 해!
만약에 내가 또 이런 시발같은 어렵다는 보고를 들으면... 신이여 도와주소서.
나는 진짜 애자일 개발자들을 찾아서 이 일을 시킬테다!
우린 됭하고 테스트하고 코딩하고 테스트하고 이걸 반복할거야!
그리고 넌, 모든 유닛테스트가 매시간 작동하지 않을때는 더이상의 스토리포인트를 얻을 수 없어!
난 아직 애자일선언을 믿고 있어. 나는 이게 잘 된다는 걸 안단 말이야.
그런데, 내 생각이 바꿨어. 도대체 너희 같은 병신들하고 내가 더 무엇을 할 수 있단 말이야?
그리고, 네 시발같은 의견은 나한테 워터폴로 돌아가자는 이야기를 하고 있단 말이지!!
근데, 난 그러기 싫어! 비록 내 번다운 차트가 꼴보기 싫더라도 말이지.

괜찮아. 우린 QA테스트를 잘하고 있잖아.

난 항상 네가 점심을 원할때 마다 베이글과 도넛을 샀지.
근데, 뭐가 문제지? 아니면, 작은 차이가 왜 생겼지? 뭘한거야?

네, 거기까지 생각못했네요.

난 정말 우리가 이일을 잘해낼줄 알았다고, 우리는 애자일로 킬러어플을 만들어 세상을 정복할 줄 알았다고.
근데, 우린 졸라 시박일 뿐이야.

 
2011/10/11 15:28 2011/10/11 15:28

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다