이분법적 사고를 가지고 프로그래머를 크게 두 그룹으로 나눠본다면,
개념이 충만하고 아키텍트 레벨을 다루고, 글을 잘 읽고, 잘 쓰고, 계층화된 구조를 좋아하며, 논리적인 사고를 잘하고, (숙련되지는 못하더라도 최소한 잘하려는 욕심이 있고) 구현에 급급하기보다는 충분히 심사숙고하여 작품을 쓰려는 프로그래머 요구사항이 얼마나 복잡하든지, 사용할 기술의 적합성과 크게 상관없이 요구사항에 맞춰 빠르게 그것을 구현하여 만족시켜주는 프로그래머
로 나눠볼 수 있겠다.
후자의 경우 프로그래머의 성능은 요구사항에 의존적이지만 상대적으로 목표가 명확하기 때문에 근성이 충만하다. 전자의 경우 올바른 요구사항과 설계안을 도출하는데 신경을 곤두세우고 있기 때문에 상대적으로 구현은 중요하지 않다. 올바른 요구사항과 적절한 설계가 나오고 난 뒤에 그것을 구현할 시간이 돌아오면, 그저 시간이라는 리소스만 충분히 투입하면 적절히 해결된다고 생각하기 때문이다.
이 두 종류의 프로그래머는 서로 만나기 어렵다. 왜냐하면 서로 중요하다고 생각하는 것이 다르기 때문이다. 중요하게 생각하는 것이 서로 다른만큼 서로를 비방하고 무시하기도 쉽다. 그런데 어느정도 이상의 성공을 거두려면 두 종류의 프로그래머가 함께 있어야 된다. 혹은 두 분야에 모두 능한, 최소한 관심이라도 있는 프로그래머가 1명이상 있어야 된다. 중재를 해야하기 때문이다.
첫번째 그룹에서는 개념이 충만하고 구조적이고 논리적인 사고를 하는 사람이면서 동시에 구현을 잘하는 사람을 찾는다.
두번째 그룹에서는 요구사항 분석이 능하고 구현을 대단히 잘하는 사람이면서 동시에 논리적인 사고를 잘하는 사람을 찾는다.
이러니까 프로그래머 구하기가 어려운 것이다.
많은 경우 이러한 문제를 해결하는 것은 중간관리자의 몫이다. 만약 두가지를 동시에 다룰 수 있는 프로그래머가 있다면 많은 그룹에서 환영을 받을 것이다. 또한 처절한 외로움도 느끼게 될 것이다.
Comments
4 thoughts shared
와우~ 너무 어려운 문제군요~ 저는 후자에 가까운 개발자로 생각됩니다만, 전자와 같은 개발자들에 대하여 우리(?)와 다르다고 생각하지 않습니다. 결국에는 같은 배를 탔다는 것 만으로 충분한 이유가 되지 않나 생각합니다. 또한 rath님의 의견에도 공감하고 있습니다.
음 이래 저래 짱구를 굴려보아도 아무래도 전 중간관리자의 역할인가 봅니다. ^^
간만에 들렀네요~ 재미나게 잘 읽고 갑니다~
Continue Reading
Discover more thoughts and insights
술 취한 Claude Code 길들이기
최근 시작한 외주 이야기. 이 일은 오픈소스 프로젝트에 필요 없는 기능 뜯어내고 K 스타일로 새로 꾸미는 그런 작업이다. 그 오픈소스는 백엔드가 Go 4만, 프론트 리액트 코드가 4만 줄인 스타 수 10k 정도의
MSN 타자봇 - 거의 다 만들었음~!
ㅎㅎ 생각나거나, 아이디어 노트에 적은 것 거의 다 만들었습니다. 그럼 아래에 도움말~ 황장호 님의 말: \#도움 TAJACHAT - MSN 타자방 님의 말: 이 타자봇은 나우누리 VT시절 타자방을 너무나도
Java 5 에서 xml transform시 indent 안먹는 문제
http://bugs.sun.com/bugdatabase/view\_bug.do?bug\_id=6296446 조합에 어거지가 보이지만 -\_- 시키는대로 하니 인덴트가 잘 먹는다. 링크 클릭하기 귀찮은 사람을