내가 초보자였을 때부터 한창 프로젝트 하던 최근으로 돌이켜보면, 초보자뿐만 아니라 중급자, 더 나아가 고객도 객체지향으로 얻는 효과에 대해 잘 알지 못하고 크게 관심도 없었다. 이들의 관심분야는 대부분 하나로 모아졌다.


소프트웨어의 ‘기능’ 구현, 소프트웨어의 ‘기능’ 구현이란 고객의 요구사항을 프로그래밍으로 고스란히 구현하는 것이다. 기능 구현은 개발자의 당연한 기본 임무이다. 문제는 기능 구현외에 더 중요한 것이 있고 같이 챙겨야 할 것들도 있는데, 개발자들 대부분은 오직 기능 구현 관점만 신경 쓴다. 대부분의 개발자들은 어떻게든 주어진 요구사항을 구현하여 돌아가게만 하자~! 이것이 가장 큰 관심사고 해결 대상이다.


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


개발 경력 3년 이상이 된 중급자는 내 주변에서 많이 본다. 중급자는 크게 두가지로 나눌 수 있다. 하나는 중급자 또한 소프트웨어의 기능 구현만 우선순위를 두는 경우다. 일단 기능 구현이란 목표를 위해 버그나 소프트웨어의 유연성은 크게 신경 쓰진 않는다. 다른 중급자는 객체지향이 좋은지 알고 소프트웨어의 유연성도 염두를 한다. 그러나 프로젝트를 진행하면서 결국 기능 구현 중심으로 치우쳐 정해진 기능 구현에 집중한다. 사실은 나도 이런 케이스에 해당됐다. 내 주변에서 어떠한 사항에서도 객체지향적으로 우아하게 개발하는 개발자는 10명중에 1명도 보기 힘들었다. 그래서 중급자 또한 원래 스타일이 그렇거나 주변의 열악한 환경 때문에 결국 기능 구현 중심으로 개발하게 된다.


소프트웨어 개발 현장, 프로젝트 현장에는 개발을 의뢰한 고객이 있다. 고객은 개발자보다 더 기능 구현 중심적이다. 고객이 원하는 기능이 구현되면 되는데 전제 조건이 하나 더 붙는다. 최대한 빨리~! 대부분 고객은 원하는 기능이 최대한 빨리 구현만 되면 만족한다. (여기서 말하는 고객은 우리나라에서 제가 주로 겪은 고객들 입니다.) 그래서 고객은 최대한 빨리라는 목표를 달성하기 위해 개발자를 더 닥달하고, 개발자는 더 기능 구현 중심적으로 작업할 수밖에 없다.



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


Posted by 산골
산골 블로그 소개 저는 하얀머리 개발자와 작가를 꿈꾸는 블로거 산골 입니다. 프로그램 개발자로서 저의 관심사는 개발자의 숨통을 트여준 아이폰 개발, 철학과 같은 깊이가 있는 객체지향 방법론입니다. 글쓰기와 수영을 좋아합니다. 블로그를 통해 관심사를 공유합니다. 제 블로그에 관심 있으시면 아래 RSS나 즐겨찾기로 편하게 구독하세요.

rss Bookmark and Share

댓글을 달아 주세요

  1. intermediate 2018.07.25 21:34 신고  댓글주소  수정/삭제  댓글쓰기

    쓰시는글 흥미롭게 보고 있습니다. 그럼 출간일은 올해말보다 더 늦춰지는건가요? 지금까지 작성하신 글 보면 흔치않은 좋은서적이 출간될 것 같군요.

    • BlogIcon 산골 2018.07.26 22:38 신고  댓글주소  수정/삭제

      아 피드백 감사합니다.~ 원고 마감은 8월 말이고.. 차질 없으면 올해 말즈음 나올것 같습니다.~
      격려 감사합니다.~
      제가 글을 자주 올려야 할텐데요.~
      근데 이전보다는 자주 올리겠습니다.~!~