본문 바로가기

길게 쓰기/객체지향의 탄생 (공식)

개발자 대부분 기능 구현 중심인 이유

초보였던 나와 내가 알던 많은 개발자들, 나아가 고객도 객체지향으로 얻는 효과에 대해 크게

알지 못하고 관심도 없었다. 이들의 관심분야는 하나로 모아졌다.

 

소프트웨어의 온전한 기능구현, ‘기능구현이란 고객의 요구사항을 소프트웨어로 고스란히 구현하는 것이다. 기능 구현은 개발자의 당연한 임무이다. 사실은 기능 구현외에 중요한 것이 있고 같이 챙겨야 것이 있다. 그러나 많은 개발자들은 오직 기능 구현 관점만 신경 쓴다. 개발자들은 주어진 요구사항을 어떻하든 구현하여 돌아가게만 하자~! 이것이 가장 관심사이다.

 

나는 신입이었을 실력 있는 개발자로 빨리 인정받고 싶었다. 문제가 주어지면 문제를 빠르고 버그 없이 구현하고 싶었다. 예를 들어 게시판에 답글 달기, 페이징 기능을 구현하라는 지시를 받으면, 나는 수단과 방법을 가리지 않고 기능을 구현하는데 집중했다. 이렇게 기능 구현에 우선 순위를 두었다. 마치 물에 빠졌을 개헤엄이라도 해서 빠져 나오는 것처럼, 상황을 본능적으로 해결하는 방법이다.

 

우리는 주변에서 개발 경력 3 이상이 중급자를 많이 본다. 중급자는 크게 두가지로 나눌 있다. 하나는 중급자 또한 소프트웨어의 기능 구현만 우선순위를 두는 경우다. 기능 구현이란 목표를 위해 코드 품질(=소프트웨어의 유연함) 크게 신경 쓰진 않는다. 다른 중급자는 객체지향이 좋은지 알고 소프트웨어의 유연성도 염두를 한다. 그러나 대부분의 우리나라 프로젝트는 일정 압박이 심하다. 그러니 중급자도 결국 기능 구현 중심으로 치우친다. 사실은 나도 워낙 바쁘다보니 이런 개발자가 되기도 했다. 주변에서, 어떠한 사항에서도 객체지향적으로 우아하게 개발하는 개발자는 10명중에 1명도 보기도 힘들었다. 이렇게 중급자 또한 원래 개발 스타일이 기능 중심 적이거나 열악한 개발 환경 때문에 결국 기능 구현 중심으로 개발하게 된다.

 

프로젝트 현장에는 개발을 의뢰한 고객이 있다. 고객은 개발자보다 기능 구현 중심적이다. 고객은 원하는 기능이 구현되면 만족한다. 고객은 전제 조건을 하나 붙인다. 최대한 빨리 구현해라~! 대부분의 고객은 원하는 기능이 빠른 시간내 구현 되면 만족한다. 그래서 고객은 최대한 빨리 기능 구현라는 목표를 달성하기 위해 개발자를 압박한다. 개발자는 기능 구현 중심적으로 작업할 수밖에 없다.



덧글) 기존 원고보다 원고 품질을 몇배 높여야 해서 많은 내용을 다시 작성하고 있습니다. 내용에 대해 궁금한점은 댓글 주세요.~