프로그래밍 씽킹 방법론

Seungwon Go
3 min readJan 30, 2021

--

프로그래밍 씽킹 방법론의 핵심은 이미 결과를 정의한 후 정해진 결과를 이끌어 낼 수 있는 최적의 방안을 찾는 것에 있다. 그래서 프로그래밍 씽킹 방법론은 가장 첫번째로 고객으로 부터 고객이 원하는 결과가 무엇인지를 듣는것에 부터 시작한다.

디자인 씽킹을 비롯한 많은 비즈니스 방법론이 문제가 무엇인지를 파악하고 그 문제를 해결하는 방법에 초점을 맞춘다면 프로그래밍 씽킹은 문제가 무엇인지를 파악하는것 보다, 고객이 원하는 정해진 결과를 이끌어 내는 방법에 초점을 맞추게 된다.

문제 해결을 목표로 하는 것과 고객이 원하는 결과를 만들어 내는 것을 목표로 하는 것은 확실히 다르다.

그래서 프로그래밍 씽킹은 모든 곳에 적용하기 보다는 원하는 결과가 명확한 곳에 적용할 때 가장 큰 효과를 볼 수 있다.

프로그래밍 씽킹 방법론

1. 결과 정의하기

2. 문제 정의하기

3. 입력 정의하기

4. 잘못된 입력에 대한 대응책 찾기

5. 최적의 방안 찾기

결과 정의하기

고객과의 인터뷰를 통해 고객이 원하는 결과를 정의하는 단계이다.

결과는 명확하고 확실해야 한다.

문제 정의하기

정해진 결과를 만들어 내기 위해서 해결해야 할 문제를 정의하는 단계이다. 이때 문제 해결에 초점을 맞추는 것이 아니라, 설사 문제를 완벽하게 해결하지 못하더라도 고객이 원하는 결과를 만들어 내기 위한 관점에서 문제를 정의해야 한다.

문제를 반드시 해결해야 원하는 결과가 나오는 것은 아니다. 때로는 문제를 그대로 남겨둔채 위기 관리를 효율적으로 하는 것이 더 효과적일 수 있다.

문제를 정의할 때 해결할 수 있는 부분과 해결하지 못하는 부분을 구분하고, 해결하지 못하는 부분에 대해서는 어떻게 관리를 해야 할지에 대한 정의를 한다.

입력 정의하기

정해진 결과를 만들어 내기 위해서 어떤것이 필요한지를 정의하는 단계이다.

이때 중요한 것은 필요한 것이 무엇인지 정의하는 것과 동시에, 필요하지 않은 것 그러니까 예상치 못한 것들은 어떤 것들이 발생할 수 있을지를 모두 정의해야 한다는 것이다.

이 단계에서는 올바른 입력과 잘못된 입력을 정의하게 된다.

잘못된 입력에 대한 대응책 찾기

모든 예외사항에 대한 대응책을 마련하는 단계이다.

프로그래밍 씽킹 방법론에서는 정해진 최적의 결과를 만들어 내는 것과 동시에 결과를 만들어 내는 과정에서 발생할 수 있는 모든 예외사항을 도출하고, 각각의 상황에 대한 대응책을 마련한다.

정해진 결과를 이끌어 내기 위해서 발생하면 안되는 변수가 무엇인지 모두 찾아내고, 이런 상황이 발생했을 때 취해야 할 행동을 정의한다.

최적의 방안 찾기

정해진 결과를 이끌어 낼 수 있는 최적의 방안을 찾는 단계이다.

결과가 정의가 되고, 결과를 이끌어 내기 위해 해결해야 할 문제는 무엇이며, 필요한 것은 무엇이며, 발생하면 안되는 것은 무엇인지가 명확하게 정의 된다면, 이를 바탕으로 정해진 결과를 낼 수 있는 최적의 방안을 찾아 낼 수 있다.

나는 20년이 넘는 시간을 IT에 종사하면서 훌륭한 프로그래머는 단지 소프트웨어 프로그램을 개발하는 역량을 넘어서 프로그램 뿐만 아니라 모든 문제에 대한 접근 방법 및 이를 해결하는 방법에 있어서 탁월한 모습을 보게 되었다. 그래서 프로그래머가 문제를 해결하는 방법에 대해서 관찰하고, 이를 비즈니스에 적용할 수 있는 방법을 고민하게 되었고 “프로그래밍 씽킹” 이라는 방법론을 만들게 되었다.

--

--