프로그래밍에 대한 올바른 태도와 접근 방법 기르기
코드 멍키 주식회사
- 각 유형의 코드 멍키가 흥미를 갖는 것은?
- 각 유형의 코드 멍키와 함께 일하는 방법
- 각 유형의 코드 멍키가 발전할 수 있는 방법
- 각 유형의 코드 멍키로부터 우리가 배울 수 있는 것들
나 자신에게 질문하기
- 당신은 어느 유형에 속하는 프로그래머입니까? 여기에 있는 설명이 당신의 프로그래밍 스타일과 얼마나 가깝게 매치됩니까? 이 설명에서 당신의 코딩 태도를 발전시키는 데 도움이 될 만한 어떤 교훈을 얻었습니까?
- 당신은 이런 유형에 속하는 사람을 얼마나 많이 알고 있습니까? 그 사람은 가까운 동료입니까? 어떻게 해야 그들과 일을 더 잘 할 수 있을까요?
열성적인 코더
- 강점
- 자기 일을 사랑하고, 좋은 코드를 작성하기를 진심으로 원한다
- 약점
- 성급하고, 생각을 먼저 하지 않고 코드 에디터에 달려들기부터 한다
- 항상 생각했던 것보다 오래 걸린다
- 우리가 여기에 속한다면 해야 할 일
- 멈추어서 생각하라. 서두르지 마라. 포스트잇에 THINK라고 써서 모니터에 붙이기!
- 이들과 함께 일하는 방법
매일 같이 열성적인 코더에게 무엇을 할 것인지, 앞으로의 계획은 무엇인지 물어보라
코드 멍키
- 강점
- 열성적인 코더와는 달리 시간 추정을 잘한다. 체계적이고 철저하다
- 약점
- 틀 안에서만 생각을 한다
- 우리가 여기에 속한다면 해야 할 일
- 몇 권의 책을 집어 들고 새로운 테크닉의 연구를 시작하라
- 이들과 함께 일하는 방법
- 이들의 코드를 칭찬하고, 테크닉을 가르쳐서 일을 더 잘하게 만들라
권위자
혼자서 근본이 되는 중요한 일을 한다
- 강점
- 훌륭한 권위자는 아주 훌륭한 멘토이다
- 약점
- 왜 다른 사람들이 자시처럼 많이 알지 못하고, 빠른 속도로 생각하지 못하는지 알 수 없다고 생각한다
- 우리가 여기에 속한다면 해야 할 일
- 구름 밖으로 걸어 나와서 현실 세상 속에서 생활하라
- 이들과 함께 일하는 방법
- 될 수 있는 한 많이 배워라
되다만 권위자
가장 위험한 유형의 코드 멍키
- 강점
- 아무런 강점도 없고, 위대한 자산이라고는 자기 자신에 대한 믿음 뿐
- 약점
- 잘못된 설계와 지나치게 교묘한 코드의 결과는 당신과 함께 남는다
- 우리가 여기에 속한다면 해야 할 일
- 지금 당장 자신의 스킬을 정직하게 평가하라
- 이들과 함께 일하는 방법
- 필터링 해야하고, 결함있는 형편없는 코드를 점검해야 한다
거만한 천재
자신의 스킬에 대해 너무너무 잘 알고 있기 대문에 건방지고, 생색을 내고, 품위가 없다
- 강점
- 기술적으로 강력한 선도 역할을 하고, 팀의 촉매 역할을 할 것
- 약점
- 절대 모른다는 말을 할 줄 모른다
- 우리가 여기에 속한다면 해야 할 일
- 겸손해지는 연습을 하고, 다른 사람의 의견을 존중하라
- 이들과 함께 일하는 방법
- 당당히 맞서고, 압도당하지 마라
카우보이
적극적으로 힘든 일을 피해 다니는 나쁜 프로그래머
- 강점
- 새로운 것을 배우는 것을 좋아하지만, 배우려고 시작하는 일은 거의 드물다
- 약점
- 진정한 엔지니어링 스킬은 가지고 있지 않다
- 우리가 여기에 속한다면 해야 할 일
- 자신의 결점을 인정하고, 개선을 하기 위해 노력하라
- 이들과 함께 일하는 방법
- 코드를 리뷰 할 계획을 세우고, 페어 프로그래밍에 동참시켜라
계획가
"적적한 개발 프로세스"를 잘 알고 있지만, 데드라인에 맞추거나 일을 끝마치는 데 약한 사람을 말한다
- 강점
- 설계를 잘한다
- 약점
- 많은 것을 알고 있지만 이론에서 실천으로 뛰어오르는 일은 하나도 없다
- 우리가 여기에 속한다면 해야 할 일
- 계획과 행동 사이의 균형을 더 잘 맞춰 보라
- 이들과 함께 일하는 방법
- 설계 완료 이정표를 끼워 넣어라
노친네
보수적인 생각을 가진 고참 프로그래머
- 강점
- 상당한 경험과 지혜가 있다
- 약점
- 새로운 테크닉을 선뜻 배우려고 하지 않는다
- 우리가 여기에 속한다면 해야 할 일
- 한 때는 당신의 코드도 굉장한 것이 아니었다고 인지하라
- 이들과 함께 일하는 방법
- 고참이 흥미를 느끼는 것이 무엇인지 알아둬라
광신도
새로운 버전이 나오자마자 바로 업그레이드해야 한다고 생각한다
- 강점
- 제품에 기초해서 정말 훌륭한 설계를 한다
- 약점
- 객관성이 없고 실용주의적이지도 않다
- 우리가 여기에 속한다면 해야 할 일
- 다른 접근 방법과 새로운 사고방식도 받아들여라
- 이들과 함께 일하는 방법
- 당신의 접근 방법의 강점과 상대의 접근 방법
일편단심 프로그래머
전형적인 기크(geek)이고, 기술을 먹고 호흡하는 친구
- 강점
- 일편단심 프로그래머는 목표가 뚜렷하고 단호하다
- 약점
- 문제점에 너무 가까이 살다보니까 세상일에 무관심하다는 점
- 우리가 여기에 속한다면 해야 할 일
- 일만 하고 놀지 않으면 바보가 된다
- 이들과 함께 일하는 방법
- 하룻밤 쉬는 것이 가장 좋은 설계 툴이다
게이름뱅이
일하기 싫어하고 게으름을 피우는 사람
- 강점
- 최소한 즐길 줄은 안다
- 약점
- 어떤 문제는 너무 어려워서 해결에 시간이 좀 걸린다. 아니면 문제를 빨리 풀만한 충분한 스킬이 없어서 그러는 것일 수도 있다
- 우리가 여기에 속한다면 해야 할 일
- 양심껏 일을 하고 조금이라도 노력을 하기 시작하라
- 이들과 함께 일하는 방법
- 사람은 곧 자기가 받아야 할 업보를 받게 된다
- 체계적으로 업무일지를 쓰는 것이 도움이 된다
마지못해 하는 팀장
대개 상당히 부드러운 태도를 가졌고 우유부단하다
- 강점
- 프로그래머의 어려운 처지에 진정으로 공감을 한다
- 약점
- 조직 구성을 잘 할 능력도 없고, 일어난 일을 관리자에게 설명할 능력도 없고, 팀 멤버를 올바르게 관리할 능력도 없다
- 우리가 여기에 속한다면 해야 할 일
- 팀장 역할에 대한 훈련을 받아라
- 고급 개발자의 다음 단계가 관리자가 되면 안 된다는 것을 회사에 인식시켜라
- 우리 회사의 경우 이런 점을 고려하는 거 같음
- 이들과 함께 일하는 방법
- 팀장을 불쌍하게 생각하고, 도움이 될 수 있는 모든 일을 하라
이상적인 프로그래머
정치적이고 (Politician)
대인관계가 좋고 (Relational)
예술적인 (Artistic)
기술상의 천재 (Technical genius)
그래서 뭐?
당신이 어떤 유형의 프로그래머인지 알아야 한다. 자신의 강점을 어떻게 활용해야 할지, 약점을 어떻게 보완할지 결정하라
변화하기 위해서는
팀 플레이어이고 (Team player)
정직하고 겸손하고 (Honest and Humble)
끊임없이 발전하고 (Improving constantly) - 진정한 지식이란 얼마나 모르는지를 아는 것이다
주의 깊고 (Considerate)
열심히 하는 (Keen)
간추림
좋은 프로그래머는…
얼간이(PRAT)이다.
뚱뚱(THICK)하다.
나쁜 프로그래머는…
좋은 코드의 작성에 관심이 없다
팀에 속해서 일을 잘 하지 못한다
실제의 자신보다 더 능력 있는 사람처럼 보이려고 애를 쓴다
활기가 없다 - 자신을 발전시키려고 하지 않는다
액션 시트 (Action Sheet)
'프로그래밍 > Code Craft' 카테고리의 다른 글
[4부 프로그래머의 무리] Chapter18 안전한 소스 습관 (0) | 2017.11.26 |
---|---|
[4부 프로그래머의 무리] Chapter17 여기 우리 함께 서 있네 (0) | 2017.11.24 |
[3부 코드의 모습] Chapter15 소프트웨어의 진화 또는 혁명? (0) | 2017.11.18 |
[3부 코드의 모습] Chapter14 소프트웨어 아키텍처 (0) | 2017.11.17 |
[3부 코드의 모습] Chapter13 웅대한 설계 (0) | 2017.11.16 |
댓글