brunch

You can make anything
by writing

C.S.Lewis

by 안영회 습작 Dec 02. 2021

오늘의 문제만 우아하게 해결하기

애자일을 습관으로 9

XP(익스트림 프로그래밍)에서는 5개의 가치를 내세운다. 그중 두 번째가 단순성이다.


오늘의 문제만 우아하게 해결하기

Kent Beck은 책에서 이렇게 말한다.

단순성은 <중략> 가장 강력하게 지적인 가치다. 오늘의 문제만 우아하게 해결할 만큼 단순한 시스템을 만드는 것, 그것은 어려운 일이다.

단순성이 왜 지적 가치인가? 작동하는 선에서 최대한 단순하게 하기란 쉽지 않다. 가장 효과적이면서 경제적으로 하라는 뜻이 아닌가?

도올선생이 유튜브에 올리는 <동경대전> 일부가 생각난다. 그는 역사를 진보라는 하나의 직선처럼 이해하는 일을 무지 비판했다.

비슷한 맥락의 직선이 아닌 발전에 대해 최근에 물류회사 사장님과 IT 시스템 개선에 대해 말을 나눌 , 계단식 성장 대해 설명해야 한다고 메모한 경험을 기억해냈다.


계단식 성장과 빙산의 일각

조직이나 시스템 모두 확장을 이야기할 때, 단위(order)가 중요하다. 직원이 10명으로 늘어나느냐 아니면 100명으로 늘어나느냐는 전혀 다른 문제다. 이걸 그냥 조직의 확장으로 설명하면, 상대를 모호함에 빠뜨릴 위험에 있다.


공부의 성과도 마찬가지란 생각이 들지만, 유기체의 성장은 계단식으로 하는 경향이 있는 듯하다. 그래서, 나는 빙산 메타포를 오랫동안 써왔다. 눈에 보이는 부분()과 보이지 않는 부분()이 공존한다는 사실을 알아야 현실을 제대로 볼 수 있다.

출처: https://msolo021015.medium.com/jpa-persistence-context-deep-dive-2f36f9bd6214


단순한 문제 정의가 주는 명확성

KT와 페이스북의 장애에서 배운 리스크 관리의 중요성이란 기사에서 인터넷 장애로 벌어진 혼란을 패킷의 문제로 정의했다. 이러한 문제 정의는 본질을 뽑아내는 지적인 과정이다. 때로는 문제의 본질을 알기 위해 빙산의 일각만 드러나게 하는 일이 실용적일 수 있다.

인터넷을 가능하게 하는 네트워크 기술의 주인공은 패킷, 즉 정보가 들어 있는 캡슐의 알갱이들이다. 우리가 주고받는 정보들은 이 작은 입자들이 모여서 구성된 것, 스트리밍조차 마치 폭포수 속 H2O의 분자들처럼 작은 입자로 그 흐름이 구성되어 있는 것이다. 이 알갱이들은 클라우드 위 서버와 우리들의 스마트폰 사이를 왔다 갔다 해야 한다. 앱을 띄워 영상을 고르는 명령도 알갱이고, 그 결과 쏟아져 내려오는 정보들도 패킷이다.

출처: https://economist.co.kr/2021/11/14/column/expertColumn/20211114103003911.html


내가 함수를 일상 행동에 활용하는 습관도 정확히 같은 이유다.


MVP와 단순성의 가치

작년도에 올해의 책이라 할만한 <아이디어 불패의 법칙>은 '될 놈'을 찾기 위한 고급 지식을 다룬다. 스타트업의 기본 생산 방식인 MVP(Minimum Viable Product)를 낭비 없이 올바로 찾는 방법을 설명하는데, 바로 MVP가 패턴이 된 오늘의 문제만 우아하게 해결하기 사례일 수 있다.


Refactoring or Digital Transformation

오늘의 문제를 해결하다가 우아해지지 않을 경우, 단순성을 회복하기 위한 노력을 해야 한다.

단순성을 회복하기 위해 변화를 만들어야 할 때에 <중략> 단순성을 성취하면 그만큼 의사소통해야 할 것도 줄일 수 있다.

코드를 다룰 경우 이를 리팩토링(refactoring)이라고 한다. 그러나 코드를 넘어서 사람과 조직의 문제라면 습관을 바꾸는 활동인 디지털 트랜스포메이션을 해야 한다.


한편, 디지털 트랜스포메이션같이 막막한 문제를 다룰 때 아래와 같은 질문은 매우 유익하다.

제대로 작동할 만한 (효과가 있을 법한) 가장 단순한 것은 뭘까?

인터넷 사업부장이 되신 임원께서 인터넷 사업의 본질을 명쾌하게 정의한 자료를 볼 때 내가 받은 영감은 아마 영원이 잊지 못할 것이다.


단순성은 또한 낭비를 제거하는 일과 관련이 있다. 그래서, 단순성 회복을 위해 어렵더라도 낭비를 제거하는 노력을 기울이면 효과가 있다.

불필요한 복잡성을 제거하는 쪽으로 기울이라


리팩토링: 육아하는 개발자만 보시오

주말에 종종 아들이 부품을 찾지 못해 나에게 찾아 달라고 한다. 매일 가지고 노는 자신도 못 찾으면 내가 찾을 수 있으랴? 물론, 아직 어린아이들이라 부모를 전지전능하다 생각할 때이긴 하다. 이렇게 상자를 내려다보다가 문득, 과거에 일주일 내내 영향도 분석만 하고 개발을 하지 못하던 어떤 개발 조직을 떠올랐다.



애자일을 습관으로 이전 글 읽기


8. XP의 제1가치는 의사소통

7. XP 혹은 점수와 성과와 책임 분배

6. 낭비를 막고 팀을 만드는 XP의 가치

5. 나만 잘하면 전체가 나아지는 XP

4. 귀찮음 vs 정성 - 무엇이 빠졌을까?

3. 나의 애자일 정리: 안영회-gile

2. 소속감을 돕는 조직 만들기와 미션 분배

1. 협업 조직에서 함께 앉기 구현하기

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari