한 대형 식당에서 단체손님에 대한 가격정책을 내놓았다. 1인당 정가는 5000원이지만 한 사람이 증가할 때마다 5원씩 할인해 준다는 것이다. 곧 첫 번째는 5000원, 두 번째는 4995원, 세 번째는 4990원식으로 적용하는 방식이다. 여기에 한 단체가 500명을 예약했다고 할 때 총 얼마를 지급해야 할 것인지에 프로그램을 짜라고 하면 어떻게 할 것인가.
많은 사람이 초기값 5000원에다 5원씩 줄여 나가며 500번을 더하는 방식을 택할지 모른다. 물론 5000+4995+4990+4985+… 이런 방식으로 해도 정답을 내는 데는 전혀 문제없다. 실제로 우리 회사 정보시스템 부서의 금년도 입사자 6명에게 유사한 문제를 놓고 테스트한 결과, 전원이 이와 같은 방식을 택했다. 아무도 초기값 5000, 공차가 (-5), 총 500개의 항을 가진 등차수열이라는 것에서부터 문제를 접근하지 못한 것이다.
컴퓨터에 ‘500명 넘었느냐?’ ‘다시 위로 돌아가라’ ‘5원씩 빼라’ ‘이전의 합에다 지금의 수를 더해라’는 등의 수많은 명령을, 그것도 500번씩이나 루핑(looping)을 돌게 한 다음에 답을 내는 프로그래머와 ‘Sn=n(2a+(n-1)d}/2’라는 간단한 명령문 하나로 끝내는 프로그래머가 각각 기업에 미치는 효율성의 차이는 얼마나 될까? 이 문제 하나만을 놓고 볼 때도 2000여배에 이른다. 더 큰 경우의 문제에서 1000만번, 1억번이라면 그 차이는 매우 심각해진다. 당연히 전자보다는 후자 쪽의 프로그래머가 절대적으로 필요하지만 아쉽게도 현실은 그 반대다.
“요즘 IT는 완전히 3D 업종입니다. 일류대학 출신이요? 아무도 하려 들지 않아요. 자바 명령어만 알고 있어도 일을 시킬 수밖에 없어요. 그러니까 프로그램 품질이 좋을 수 있나요?”라며 한숨짓는 사람이 많다. 요즘 구닥다리라고 치부당하는 코볼, PL/1 등으로 프로그램을 짰던 사장들이다. “우리 때 이렇게 일하면 죽지요. 요즘 플로 차트를 그리는 프로그래머가 얼마나 있나요? 알고리듬이라는 말뜻이나 알까요?”라며 흥분한다. 한 대형 IT교육센터 사장은 “거의 없다”고 단언한다. 6개월간의 교육과정에서 거의 다루지 않는다고 했기 때문이다. “알고리듬의 중요성을 알지만 요즘 수강자나 채용자들이 랭귀지를 더 요구한다”는 그의 얘기에서 우리나라 IT의 답답한 미래를 보게 돼 걱정이다.
동일한 문제의 프로그램을 100단계로 만드는 사람이 있는가 하면 10단계만으로 끝내는 사람도 있다. 이 둘은 당장 프로그램의 개발 생산성에서부터 큰 차이가 있다. 여기에다 수정과 보완, 또 컴퓨터의 효율성까지 더한다면 그 차이는 금방 수천, 수 만배에 이른다. 로직이 있는 것보다는 얽히고 설킨 프로그램이 훨씬 더 어렵고 고생한 것처럼 보인다.
우리 회사 정보시스템 부서의 벽면에는 ‘무엇을 만들든지 규칙이 있다(Whatever we make, That’s the Rule!)’는 문구가 붙어 있다. 정보시스템 인력의 역할은 효율적인 규칙을 만드는 것이다. 사용자 수준에 따라 정도의 차이가 있기는 하겠지만 정보시스템이 필요한 많은 이유는 분석과 예측이다. 그럼에도 이를 수행하는 인력이 최소한의 수학·통계학적 지식과 업무에 대한 이해 수준을 갖추고 있지 못하다면 매우 불행한 일이다. 그래서 더욱 우수한 자원이 요구된다.
인풋 데이터를 주고 분석 가능한 아웃풋과 응용분야를 생각해 보라든지, 반대로 아웃풋을 제시하고 인풋의 종류와 수집방법의 아이디어를 내보라고 하면 이 또한 개인별로 차이가 크다. 곧 창의력의 차이인데 창의력이 높다거나 아이디어가 많다는 얘기를 듣는 사람의 공통점은 타고난 머리가 좋다는 것보다는 그렇지 않은 이들에 비해 관심과 고민 그리고 해결방법에 집중하는 능력이 높다는 것이다. IT인들, 이제는 변해야 한다. 스스로가 자신이 속한 조직 내에서 기여자로서의 역할을 수행하고 있는지를 한 번 생각하는 시간을 가졌으면 하는 바람이다.