"대체 뭐가 문제야?"(제럴드 M. 와인버그, 도널드 고즈, 2013)는 회사 CTO님의 소개로 읽게 되었다. 이 책은 문제와 해결책에 대한 새로운 접근 방법을 제시한다.
책은 여러 가상의 사례를 다루는데, 구체적인 방법론이나 이론을 나열하기보다는 다양한 사례를 통해 문제와 해결방법을 어떻게 정의해야 하는지 보여준다.각 장을 한 줄로 정리하면 다음과 같다:
책에서 인상 깊었던 부분은, 문제를 여러 관점에서 인식해보는 훈련의 중요성과, "문제의 해결책이 허용 가능한 새로운 문제를 만들어내는가?"라는 질문이었다.
몇 가지 핵심 문장을 소개하자면,
누구의 문제인가? - p22
책은 엘리베이터가 느린 현상을 사례로 든다.
건물주, 청소부, 입주 직원, 기술자 등 각자의 입장에 따라 같은 문제를 다르게 인식하고, 해결 방법도 제각각이다.
단순해 보이던 문제가 여러 이해관계자가 얽히면서 복잡한 문제로 변모한다. 결국 나온 해결책은 거울 설치였고, 이는 낙서 문제를 야기했다. 그 문제를 해결하려다 보니 또 다른 문제가 생겼고... 그런데 사실 엘리베이터는 고장이 나 있어, 느렸던 것 이었다. 수리 후 엘리베이터가 빨라지자 이번엔 지하철역에 사람이 몰리는 새로운 문제가 발생했고, 결국 건물주가 사고로 목숨을 잃는다.
이 사례는 우리가 마주하는 문제의 복잡성과 해결책의 부작용을 잘 보여준다.
문제란 바라는 것과 인식하는 것 간의 차이다. - p31
우리는 결코 문제들을 제거할 수 없다. 문제들, 해결안들 그리고 새로운 문제들이 끝없는 사슬을 구성한다. 우리가 바랄 수 있는 최고의 기대는 새로운 문제가 우리가 해결한 문제보다 덜 성가신 것이었으면 하는 것이다. - p68
각각의 새로운 관점은 새로운 부적합을 야기한다. - p80
문제는 기대치가 현실에 미치지 못할 때 발생한다.
그래서 대안을 만들지만, 그 대안은 또 다른 문제를 야기한다. 심지어 기존 문제보다 더 큰 문제를 만들기도 한다.
프로그래밍을 하면서 이런 이유로 이전 상태로 되돌린 경험이 여러 번 있다.
해결책을 제안할 때, 그 해결책이 야기하는 다른 문제들을 충분히 고려해보고, 그럴때 대처방법에 대해서도 생각해봐야 한다.
각각의 새로운 관점은 새로운 부적합을 야기한다. - p80
한 문제에 대해 여러 관점의 해결 방법을 찾을 수 있지만, 그 해결 방법들은 모두 새로운 문제를 만들어낸다.
문제의 근원은 대부분 당신 안에 있다. - p135
책에서 말하는 문제의 근원은 본인의 태도와 대처 방식이다. 주인공 재닛 자워스키는 폴란드 입국 시 서류 누락 문제에 직면했지만, 범인을 찾거나 관료주의를 비난하는 대신 입국 담당자를 존중하며 대화해 문제를 해결했다.
모든 상황에 적용할 수는 없겠지만, 쉽게 해결할 수 있는 문제도 잘못된 태도로 인해 어렵게 만드는 경우가 많다.
이 책을 읽으며 내가 겪었던 여러 경험이 떠올랐다.
먼저, 문제를 제대로 정의하지 못해 해결하지 못했던 경험들이 있다.
당시에는 기술적 이슈라고 생각했지만, 돌이켜보면 실제로는 이해관계자 간의 기대치 차이나 커뮤니케이션 문제였던 경우가 많았다. 문제의 본질을 잘못 파악하면 아무리 좋은 해결책도 소용이 없다는 것을 배웠다.
또한, 문제를 해결했다고 생각했지만 지금 돌아보면 더 좋은 방법이 있었을 것 같은 경우도 있다.
당시에는 빠른 해결에만 집중했지만, 다양한 관점에서 문제를 바라보고 여러 대안을 충분히 검토했다면 부작용이 적은 해결책을 찾을 수 있지 않았을까 하는 아쉬움이 남는다.
책은 구체적인 방법론을 제시하기보다는, 문제를 바라보는 시각을 넓혀준다.
여러 문제 사례들이 어렵지 않고 재미있게 구성되어 있어서 프로그래머가 아니더라도 읽어보면 좋을 것 같다.
특히 문제 정의의 중요성, 다양한 관점의 필요성, 그리고 해결책이 만들어내는 새로운 문제에 대한 인식은 일과 삶 전반에 적용할 수 있는 통찰이다.