brunch

You can make anything
by writing

C.S.Lewis

by 하루습관 Sep 16. 2018

<문제해결 방법>복잡한 문제를 해결하려면?

알고리즘으로 기획하기 #1

사람들은 살면서 복잡한 문제에 직면하게 된다. 여러 사람의 이해 관계를 고려해야하는 일상 속 문제부터 여러 제약 사항을 고려해야하는 회사 업무까지. 문제에서 고려해야할 게 많수록 답이 나오지않는 경우가 많다. 우리는 이러한 복잡한 문제를 어떻게 해결할 수 있을까?


알고리즘 소개 : 제약 조건 완화

어떤 문제에 수많은 제약 조건이 있을 때, 모든 조건을 고려한 "완벽한 답"을 찾기 어렵다. 따라서 먼저 문제를 완화할 필요가 있다.

제약 조건 완화 : 제약 조건들 중 일부를 제거하고 문제를 완화시키는 방법이다.

제약 조건 완화는 문제에서 관련된 제약 조건을 완전히 제거하고 문제를 완화해서 해결하는 방법이다. 제약 조건 제거 후에, 어느정도 문제가 진전된 다음 다시 제약 조건을 추가해서 검토한다. 이 방법은 문제 해결의 불완전함을 어느정도 받아들이고 가장 가까운 해결책으로 문제를 해결한다. 계속 고민만하다 문제를 해결하지못하는 것보다는 불완전한 결과를 얻더라도, 일단 문제를 해결하려는 시도가 먼저 필요하다.


제약 조건 완화 하기 순서

1.복잡한 문제에서 일부 제약 조건을 제거한다.
2.문제를 완화한 상태에서 문제를 푼다.
3.다시 현실로 돌아와 제약 조건을 추가하고 확인한다.

고민만하다 문제를 해결하지못하는 것보다는 불완전한 결과를 얻더라도,
 일단 문제를 해결해보는게 훨씬 낫다.


다양한 케이스를 고려해야하는 기획자

프로젝트에서 기획자는 계속해서 사용자의 문제 해결을 고민하게 된다. "사용자의 문제를 어떻게 잘 해결할 수 있을까?" 끊임없이 생각하고 그 과정에서 다양한 제약 조건을 고려하게된다. 제약 조건에는 기능의 구현 가능성, 다른 기능과의 관계, 프로젝트 일정, 다른 부서와의 협업 등 다양한 조건이 있다. 특히 제품 구조 상 개발 가능한 범위에 맞춰서 기획 범위가 제한적이고, 그 제한된 상황에서 기획이 보통 진행된다.


하지만 '모든 조건'을 고려해서 완벽하게 문제를 해결하기는 쉽지 않다. 모든 조건을 고려한 해결책을 찾으려다보면 오히려 '고객의 문제'에서 멀어지고, 해결 수단에만 집중하게 되는 경우가 많다. 고객의 문제가 A라고하면, 어느 시점부터 A를 해결하기 위한 "방법"에만 집중하게 되는 것이다. 따라서, 먼저 수많은 제약 조건을 걷어내서 문제를 완화하고 문제를 명확히 바라보는게 중요하다.

수많은 제약 조건을 걷어내서 문제를 완화한 다음,
 문제를 명확히 바라보는게 중요하다.


그렇다면 어떤 제약 조건을 제거할것인가?

제약 조건을 완화해서 문제를 해결하려면 먼저 제약 조건을 제거해야한다. 그렇다면 어떤 제약 조건을 제거할것인가? 제약 조건 사이에서도 우선 순위가 존재한다.우선 순위가 낮은 '덜' 중요한 조건을 걷어내고 문제를 완화한다. 이 제약 조건의 우선 순위는 제약 조건이 적용되지 않았을 때, 발생하는 패널티를 생각하면서 꼭 필요한 제약조건만 포함시킨다. 이 조건을 지키지 않을 경우, 어떤 문제가 발생할지 그 심각성을 생각하면 실제로 얼마나 유용하고 필요한 조건인지 파악할 수 있다.


제약 조건이 사라졌을 때, 보다 다양한 범위에서 사용자의 실제 문제에 접근할 수 있다. 처음부터 모든 조건을 고려하다보면 정작 문제 해결과는 멀어지고 조건에만 너무 집중하게 될 수 있다.  제약 조건을 완화하여 문제 해결에 더 집중해보자.






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