가진 도구로 모든 문제를 해결하려는 당신
괜찮은 도구가 생기면 모든 문제를 그 도구로 해결하고자 하는 유혹이 생깁니다.
내가 좋은 망치를 가지고 있다고 벽에 구멍 뚫는 것까지 망치로 할 순 없겠죠.
내가 자주 강조하는 말이지만, 모듈러 디자인은 "효율성"을 위한 툴입니다.
어떤 목적을 갖던 지 주어진 환경에서 가장 좋은 효율을 내기 위해서 방법을 찾는 툴입니다.
그런데, 모듈러 디자인이 기대하는 바를 얻기 위해서는 전제 조건이 있습니다.
해당 제품, 해당 제품군이 올바른 방향을 가지고 있는가, 즉 효과성의 문제가 해결되었는가를
먼저 살펴봐야 합니다.
아무리 연비가 좋은 자동차를 몰아도, 가려는 방향이 잘못되면
연료 아끼더라도 목적지는 도달 못하는 상황이 되면 아무 소용 없는 셈이죠.
예전에 소프트웨어 경쟁력을 위해서 모듈러 디자인을 도입해야 한다는 과제를 지시받은 적이 있습니다.
그런데, 사실 그 당시 해당 제품의 소프트웨어는 자사만 소프트웨어 아키텍처를 가지고 있는가,
어떻게 소프트웨어 아키텍처를 개발 또는 확보할 것인가가 시급한 문제였습니다.
먼저 소프트웨어에 대한 전략이 먼저 시급했습니다.
나머지는 그 이후에 생각해 볼 만한 문제였죠.
그런데, 해당 문제를 해결할 방안이 없으니까 당장 손에 쥔 "모듈러 디자인"이란 툴을 휘두른 겁니다.
결과는? 뻔했죠. 당연히 효과가 없었죠.
그 이후에는 뭔가 소프트웨어에 모듈러 디자인을 적용한다는 말을 들으면,
소프트웨어 아키텍처 방향성이 무엇인지, 전략이 무엇인지부터 살펴봅니다.
그게 없으면, 사실 자기 역할을 할 것이 없으니까요.
혹시 모듈러 디자인을 자사 제품에 적용하는 데 관심이 있다면,
방향을 먼저 생각해 보길 바랍니다. 우리 제품은 과연 방향성을 가지고 있는가,
그 방향성에 모듈러 디자인이 어떻게 기여할 수 있는지...
나는 과연 망치로 구멍을 뚫으려는 사람은 아닌지...