개발자라면 이미 디자이너라 생각합니다.
다만 좋은 디자인의 추구에 있어서 시각차이가 많은것 같습니다.
실제 코드 작성에 관한 많은 책들이 디자인적 측면을 강조하고 있습니다.
이것이 의미하는것은 결국 거시적으로 코더가 디자이너를 흡수할것임을 암시합니다.
디자이너가 좋아보인다고 무조건 달려가는것 보단 코더에서 실력을 쌓아 디자인은 기본인
마스터로 성장하는데 중심을 두어야한다고 생각합니다. (경쟁력을 원하는분이라면...)
지금의 시대는 웬지 코더보다 디자이너가 좋아보입니다.
결국 코더와 디자이너의 구분이 뚜렷한 정도가 큰 만큼 마스터 계층이 없다는걸 의미합니다.
바로 우리 시대가 마스터 시작시대이기때문입니다.
주정섭 님이 쓰신 글 :
: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
: [일러두기]
:
: 델파이 관련 블로그에서 매우 기막힌 글을 하나 봤기에 여러분께 소개하려 한다. 사실, 국내에서 여러 개발자들을 만나 이야기해 보면서, 이 글을 올린 사람과 매우 비슷한 생각을 많이 해 온 나로서는, 우리나라보다 월등히 소프트웨어 개발 역사가 긴 미국도 이런 부류의 개발자들이 많은가 신기하기도 하다.
:
: 귀하는 어떤 부류의 개발자에 속하는지 한번 판단해 보시라. 짧은 영어실력이기에 번역이 난해한 부분은 과감하게 삭제했고, 문맥에 별로 중요하지 않다고 생각되는 부분도 가차없이 삭제했음을 알려둔다. 그러나 가급적 원문에 충실하게 번역하려 애를 썻다. 믿거나 말거나!!!!
:
: 원문 사이트 주소 :
:
http://blogs.borland.com/abauer/
:
http://blogs.borland.com/abauer/archive/2006/06/02/25145.aspx
:
: 이하 본문 내용 시작
: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
:
: 제목 : The Curse of the Code-Writer
:
: 여러 개발자들을 보아왔고, 그들의 코드를 분석하고, 버그를 잡아주면서 함께 일하면서, 나는 개발자들을 몇종류로 분류할 수 있음을 알게 되었다. 내가 사람들을 분류하는 행위에 대해서 탐탁치 않게 여기고 분노하는 사람들이 많이 있을 수도 있다. 그러나 직시하자. 우리는 항상 분류당하면서 산다. 동의하던 말던 좋다. 그러나 대부분의 사람들은 여기에 매우 관여되어 있고, 비슷한 현상을 보았으리라고 생각한다. 이 분류방법 중에 어떤 것도 절대적이지는 않다. 대부분 개발자들은 이 분류의 조합 성향을 가진다.
:
: ---------------------------------------------------------------------------------
: 코드 작성자(Code-Writer)
: ---------------------------------------------------------------------------------
:
: 개발자의 첫번째 부류는 코드 작성자이다. 이런 개발자는 같은 팀에서 일할 때 가장 위험한 존재이다. 처음에는 이런 부류의 개발자가 매우 뛰어나 보인다. 이 부류는 엄청난 량의 코딩을 해치우고, 실제로 동작하는 코드를 만들어 낸다. 그럼 뭐가 문제일까? 첫번째 버전은 매우 호평이 좋고, 별로 문제도 없다. 그러나 단지 버전 1 뿐이다. 이제 버전2를 만들려 한다고 치자. 이 때 코드 작성자들이 자기 본색을 드러내기 시작한다. 새로운 기능을 추가해 달라고 요청하면 놀랍게도 이 부류가 가장 먼저 하는 말이 "전체 시스템을 새로 만들어야 합니다!" 리팩토링을 한다거나, 디자인을 조금 바꾸는 것이 아니라, 기존 전체 코드를 버리고 새로 만들어야 한다는 것이다.
:
: 이 부류의 문제는 이들이 단순히 코드 작성자라는 것이다. 이 부류는 전체 코드를 보지도 못하고 효과적으로 버전을 유지하고 기능 개선을 할 수 있는 대책을 가지고 있지 않다는 것이다. 심지어 본인이 스스로 만든 코드에 대해서도 마찬가지다. 이 부류의 개발자는 자신이 만든 것이 아닌 남이 만든 소스를 수정할 때 특히 취약하다. 대부분의 경우, 리팩토링한다거나 디자인을 고치는 것 보다 소스 전체를 새로 만드는 것은 매우 나쁘다. 결국 개발 시간은 과도하게 소요되고, 유닛 테스트를 새로 해야 하고, QA는 믿을 수 없고 전체 프라젝트의 전반적 후퇴현상이 발생한다.
:
: ---------------------------------------------------------------------------------
: 코드 읽기전용자(Code-Reader)
: ---------------------------------------------------------------------------------
:
: 다음 부류는 코드 읽기전용자다. 이런 개발자는 개발팀에서 가장 필요없는 존재이다. 이름이 의미하듯이 자신이든 남이 만든 소스 코드를 이해하거나 분석은 잘 한다. 이름이 의미하듯이 이들은 실제 코드를 절대로 작성하지는 않는다. 때로 이들은 코드를 작성하기는 하나, 컴파일은 자신의 컴에서만 되고 실행될 뿐이다. 이들이 작성한 코드는 실제 실행 파일에는 절대로 포함되지 않는다. 이 부류의 개발자들은 여러 팀에서 어스렁거리고 돌아다니는 골치거리들이다. 코드를 작성하기는 하나 버전관리에 결코 체크인(check-in)되지 않는다. 이들은 체크인하기를 두려워한다. 왜냐면 기존 빌드를 망가뜨릴까 두려워하고 다른 사람들이 자신이 작성한 코드를 좋아하지 않을까 두려워한다. 아니면 다른 팀원들이 믿지 못하기 때무에 이런 개발자들이 체크인하는 것을 금지하기 때문이다. 대부분 팀장들은 이런 팀원에게 일 맡기기를 차차 꺼려할 것이다. 이런 개발자들은 팀에서 결국 겉돌게 된다.
:
: ---------------------------------------------------------------------------------
: 코드 설계자(Code-Designer)
: ---------------------------------------------------------------------------------
:
: 마지막 부류는 코드 설계자이다. 이 부류는 인터뷰를 잘하고 대부분의 경우 상위 직책을 가진다. 이들은 사장과 다른 개발자들에게 매우 감동을 준다. 문제는 이들이 단지 엄청난 생각하는 사람(Great Thinker)일 뿐이란 것이다. 이들에게 킬러 어플리케이션의 디자인과 구조를 이루는 실제 코드를 작성하라고 요청하거나 전체 개발을 지휘해 달라고 요청하면, 맙소사! 이들은 실제로 코드를 작성한다. 체크인도 한다. 심지어 유닛 테스트도 통과한다. 그러나 이들이 작성한 코드를 들여다보면 매우 끔찍하다. 코드 포맷팅의 엉망은 다반사고, 혼자 만든 소스임에도 불구하고 20명의 개발자들이 함께 만든 듯한 일관성이 없는 코드 형태를 취한다. 결국 이들이 작성한 코드는 피상적으로 디자인과 일치할 뿐이다. 이들이 작성한 워드나 파워 포인터 문서는 끝내준다. 결국 문서만으로 이들의 코드는 존재할 뿐이다.
:
: ---------------------------------------------------------------------------------
: 혼합자(The Blender)
: ---------------------------------------------------------------------------------
:
: 자! 개발자들의 세 부류를 알아봤다. 다행스런 것은 대부분의 개발자들은 이 세 부류의 혼합성향을 가진다는 것이다. 가장 바람직한 개발자는 코드 작성자와 코드 읽기전용자의 혼합형태이다. 이들은 굳건한 중상급 개발자들이다. 이들이 실제 코드를 대부분 만든다. 대부분의 코드 작성자 겸 읽기전용 성향 개발자들은 디자인에도 뛰어나며 따라서 개발 관련 문제를 매우 현명하고 간결하게 풀 수 있다. 이들은 리더쉽도 있으며 정신 성향도 좋다. 이런 코드 작성자겸 읽기 전용 성향 개발자들이 팀에 많이 있어야만 한다.
:
: 코드 작성자-읽기자-설계자 혼합 형태는 다음으로 매우 유용한 부류이다. 이름이 의미하듯이 이들은 관록있는 개발자들이며 뛰어난 기술적 리더쉽으로 문제를 잘 해결한다. 이들은 여러 개발 분야에 참여하며 매우 생산적이다. 팀에 이런 멤버를 가지고 있다면, 팀의 장래 성장 가능성이 매우 좋을 것이다.
:
: 어떤 팀은 실제로는 코드 설계자만 가진 경우가 있다. 이들은 분석가 컨설턴트 혹은 설계자로 불리는데, 이들은 실제 코딩 작성 보다는 파워포인터, UML, Visio, 이메일 작성에 시간 쓰기를 더 좋아한다.
:
: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
: [역주] 개인적으로 내가 가장 싫어하는 부류의 개발자가 Code-Designer 이다. 정말로 실제 개발에는 개뿔도 도움 안되며, 팀원들 사기 저하의 일등 공신이다. 개발 회의 시간을 쓸데없이 주리장창 길게 만드는 원흉들이기도 하다. 이런 부류는 영업쪽에서 공갈 제안서 만드는 부서로 보내 버려야 한다.
: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++