KLDP에서.


좋은 프로그래머란 무엇인가에 대한 다양한 논점을 풀이한 노트이다.

초보자에게 맞는 다음과 같은 이야기를 알려준다.

디버그에 대한 얘기를 서두로 하여, 로그 및 성능, I/O, 메모리 관리, 설계 능력, 실행 하는 법을 얘기하고 있다.
시간 추정하는 법(일정 스케쥴), 정보를 찾는 법, 문서화하는 법과 같이 쉽게 지나칠 수 있는 부분을 다시 한 번 꼼꼼하게 챙기고 있다. 특히 재미있는 것은 막힐 때는 쉬라고 하고, 집에 갈 시간을 인지하는 방법도 나온다는 것이다. 특히, 가를 죽이고 싶은 충동이 있으면 집에 가라는 문구는 동감하는 바이다.
수동적인 성향이 강한 초보자에게 제대로 설명이 되어 있다.

중급자에게 알려주는 이야기는 다음과 같다.
역시 의욕문제, 신뢰 받는 법, 균영 잡는 법, 압박 검사를 하는 법, 간결성/추상성의 균형을 잡는 법, 신기능을 배우는 법, 통합검사를 하는 법, 의사소통을 하는 법등을 알려주고 있다.
또한 개발 시간을 관리하는 법, 타사의 위험부담을 아는 법, 컨설턴트를 아는 법, 적당하게 회의하는 법, 의존성을 관리하는 법, 완성도를 판단하는 법, 구입과 개발 사이를 결정하는 법, 전문가로 성장하는 법, 면접 대상자를 평가하는 법, 화려한 전산교육을 적용할 때를 아는 법등을 제시하고 있다.

이중, 재미있는 것은 요구사항과 관련된 부분이다. 비기술자들과 같이 일할 때, 기술자가 무질서에서 질서를, 혼동됨에서 명확함을 찾아내도록 훈련받은 부분에서 빠질 수 있는 더 좋은 종합적 해결책을 찾는 데 큰 도움을 받을 수 있다는 점이다. 아이디어와 그에 대한 비용 추정을 신속하게 짝지어서 비용과 이득이 최상으로 결합되는 아이디어를 찾을 수 있게 해 줄 수 있다는 것이다.

상급자에게 알려주는 글은 다음과 같다.
성공에 때한 뚜렷한 정의가 없다면 성공할 수 없다라는 것은 명제에 두고 있다.
내장 언어를 활용하는 방법을 제시하고 있다. 새로운 것을 만들기 전에 항상 기존에 쓰이던 언어가 있는 지 판단하고, 잘 사용하는 법이 좋을 수 있다는 것이다.
언어를 잘 선택해야 한다. 언어에 대한 독재는 그것이 주는 유익보다 거기에 드는 비용이 더 크다라는 사실이다.
사용자를 이해하는 법을 알아야 한다. 사용자들의 말을 듣는 것에 더하여 그들이 무엇을 하는지 관찰하는 것의 중요성을 강조한다.
진급하는 법을 알려주고 있다. 높은 직위로 진급하고 싶다면, 그에 걸맞는 그 직위에 기대되는 것이 무엇인지 파악하여 그것을 행해야 한다는 것이다. 스스로 무엇이 필요하다고 인식하는 것과 상사가 필요한 것이 다를 수 있기 때문에 명확히 하는 것이 중요하고, 그에 걸맞은 업무지식을 쌓아야 한다.

재능을 개발해야 한다. 이는 리더쉽을 의미한다. 자신뿐 아니라, 자신을 거느리고 있는 팀원에게 동기 부여와 긴장유지를 위해서 힘써야 하고 칭찬은 공개적으로, 비판은 사적으로 해야 한다라는 간단한 원리를 머리속에 집어넣줘야 한다.
능력있는 팀원은 좀 더 어려운 과제를 줄 수 있어야 하는 부분을 통해서 팀원의 모두를 윈윈할 수 있는 전략을 넣어야 한다. 최대한 능력을 발휘할 수 있도록해야 한다. 자주 칭찬하되 분별없이는 하지 말구, 의견이 달라도 칭찬할 수 있는 용기 있는 사람이 되도록 해야 한다.
문제를 잘 나눌 수 있어야 한다. 따분한 과제를 다루는 법, 프로젝트 지원을 얻는 방법, 시스템이 자라게 하는 방법을 잊지 않도록 해야 한다.


이 글 전체적으로 상당히 경험에서 우러 나오는 말을 하고 있다. 이 하나하나를 마음 속에 두고, 제목을 볼 때마다 항상 내 자신에게 채찍질하며 열심히 프로그래머로서 살 수 있도록 노력해야 겠다..

Posted by '김용환'
,