애자일, 민첩하고 유연한 조직의 비밀

"애자일, 민첩하고 유연한 조직의 비밀 (스티븐 데닝)"

도대체 애자일이라는 게 뭔지 궁금했다. 애자일 그리고 익스트림 프로그래밍, 테스트 주도 개발로 이어지는 콤보가 있다. 난 그것들이 뜬구름 잡는 것 같았다. 예를 들어 테스트 주도 개발 나무위키를 보면 이런 글이 있다.

초기의 설계 비용을 줄이고자 작은 규모의 소프트웨어를 완성한 다음 그것을 점차 보완해가며 복잡한 소프트웨어를 완성하는 나선형 모델(Spiral model)을 도입하는 등 ...

그러니깐 비유를 하자면 설계 비용을 줄이기 위해서 일단 작은 집을 짓고 그 집을 고치고 고쳐서 고층 빌딩을 만들겠다는 것인가?

작은 집을 짓는 것과 고층 빌딩을 만드는 건 매우 다른 일이다. 일단 작은 집 하나를 대충 만들어서 보완하면 고층 빌딩이 될 수 있을까? 불가능하다. 그 집을 부수고 기초공사를 다시 처음부터 해야 한다. 그렇게 되면 비용이 더 들어간다. 애초에 설계를 꼼꼼히 해서 원하는 물건을 제대로 만드는 것이 전체 비용을 줄이면서 완성도를 지키는 방법이다.

소프트웨어란 물건도 마찬가지다. "소프트웨어는 소프트하니깐"이라는 마음으로 작은 집 위에 덕지덕지 층수를 쌓았다고 하자. 결국 완성되는 건 하늘 방향으로 길다란 모양을 한 무언가가 될 것이다. "왜 기대했던 견고하고 멋진 빌딩이 아닌 것이지?"라고 생각했을 땐 이미 늦었다. 애초에 어떻게 하면 견고해질 수 있는지, 어떻게 하면 멋져질 수 있는지 고민하는 설계 비용을 줄였기 때문에 결과물이 그렇지 않은 건 당연한 거다.

설계는 너무 중요한 과정이라 함부로 비용을 줄이면 안된다. 특히 소프트웨어 규모가 크면 더더욱 그렇다. 나중에 보완으로 바꿀 수 있는 건 한계가 있다. 작은 규모의 소프트웨어를 "보완"한다고 큰 규모의 소프트웨어가 완성되지는 않는다.


아무튼, 이 책은 개발 관련 애자일 책은 아니었다. 저자가 경영 컨설턴트라 그런지 주로 회사 운영에서의 애자일을 이야기했다. 어떤 사회적 배경에서 애자일이란 게 나왔는지, 어떤 경제적, 도덕적 문제와 관련이 있는지, 저자의 주장을 펼쳤다.

그래서 애자일은 무엇인가? 책을 읽고 생겨난 내 마음 속 애자일은 "기존 소프트웨어 업체의 비효율적인, 비도덕적인 운영 방식에 대한 반항"이다.

자기가 원하는 게 뭔지도 모르고 일을 의뢰하는 고객, 그 결과 당연히 수시로 바뀌는 명세, 그것 때문에 늘어나는 퇴근 시간, 휴지통에 쌓이는 어제 작성한 코드. 변화가 필요하다. 변화하자!

의도와 뜻은 참 좋다. 하지만 원래 처음 가지고 있던 뜻이랑 그 구현체랑은 차이가 있을 수 있다.

사람의 욕심에서 오는 괴로움을 해결하기 위해 석가모니는 무아(모든 것은 언젠가 내 것이 아니게 됨)를 강조했다. 하지만 어떤 절은 사람의 욕심을 이루어 줌으로써 괴로움을 해결하기도 한다.
어떤 절: blog.kkeun.net/tour/2019-02-10-pal-gong-san

애자일 세계에서도 비슷한 일들이 일어나는 것은 아닐까 생각한다. 다양한 기법들이 자신이 애자일 철학을 이어받았다면서 등장하지만 위에서처럼 가끔은 이해하기 어려운 방법을 제안하기도 한다.


전반적으로 재미있게 읽었다. 근데 작가가 술을 마시며 글을 쓴 것 같다. 했던 말 또 하고, 했던 말 또 하고. 책을 리펙토링 하면 분량이 절반으로 줄 것 같다. 머신러닝 도와줘!

2021-02-13 씀.