본문 바로가기
개발이야기

뛰어난 개발자의 요건

by ictlab 2011. 7. 20.
이글은 HARD CODE라는 책에서 발췌한 내용입니다.







1. 뛰어난 개발자는 자신이 무엇을 하는지 안다.
뛰어난 개발자에게 "이 행이나 이 변수가 왜 여기 있습니까?"라고 물어보면 이유를 설명한다.

sylee) 자신이 만든 코드를 완전하게 이해하고 왜 그렇게 코딩했는지를 분명하게 설명할 수 있다.

2. 뛰어난 개발자는 마법을 믿지 않는다.
뛰어난 개발자는 블랙박스로 감춰진 API, 컴포넌트, 알고리즘을 불편해 한다. 잘못된 가정이나 허술한 추상화로 골탕을 먹지 않도록 사전에 코드가 돌아가는 방식을 파악한다.

sylee) 남이 만든 코드나 라이브러리를 사용하더라도 그것이 동작하는 방식을 이해하고 개발자의 의도를 파악하여 사용할때 발생할 수 있는 문제점을 충분히 고려해서 작업한다.


3. 뛰어난 개발자는 고객과 비즈니스를 이해한다.
뛰어난 개발자는 무엇이 중요한지 안다.  우선순위를 매겨서 적절한 타협점을 찾는다.

sylee) 아무리 열심히 개발하고 많이 하더라도 중요하지 않은 일만 골라서 하고 있다면, 그 개발자는 자신이 발휘할 수있는  능력의 10%도 인정받지 못할것이다. 스스로 판단하여 효율적인 업무 스케줄을 관리한다.


4. 뛰어난 개발자는 자신보다 고객과 팀을 우선한다.
뛰어난 개발자에게 사소한 업무란 없다. 사소한 고객도 없다. 모든 업무가 중요하고 모든 고객이 중요하다.

sylee) 고객이 잘 표현하지 못한다고 하더라도 문제를 제기하는것은 분명히 원인 있기 때문이라는 것을 충분히 이해하고 있으며, 그 근본 원인을 해결해 줄 방법을 찾아본다.


5. 뛰어난 개발자는 도덕과 윤리를 타협하지 않는다.
뛰어난 개발자는 업무를 달성하는 방법과 다른 사람을 대하는 태도를 중히 여긴다.
알고리즘을 선택하든 이메일을 작성한든, 자신에게 높은 기준을 적용하고 핵심 가치를 타협하지 않는다.

sylee) 자신의 코드에 높은 기준을 적용하여 , 조금 빠르고 쉽게하기 위해서 예외 상황 처리를 게을리하거나 전체 구조 설계를 대충 해서 나중에 근본적인 문제가 발생하지 않도록 한다.


6. 뛰어난 개발자는 우수한 대인기술과 의사 소통 기술을 보유한다.
인기있는 토크쇼 사회자가 될만한 개발자는 별로 없지만, 뛰어난 개발자는 다른 사람과 어울려 일하고, 주변 사람을 존중하며, 자신의 의사를 분명하고 적절하며 효과적으로 전달한다.

sylee) 개발자에게 가장 중요한 덕목이 소통과 공유의 기술이다. 아무리 능력이 뛰어난 개발자라도 다른 사람과 어울려 일할수 없고 자신이 표현하려는것을 제대로 적절하게 표현하고 협의할 수 없다면 그 능력을 제대로 발휘 할 수없을것이다.


7. 뛰어난 개발자는 폭넓고 협조적인 인맥을 보유한다.
뛰어난 개발자는 다른 사람의 능력을 알아본다. 그래서 위대한 사람은 서로에게 끌린다. 그들은 서로를 지지하는 인맥을 순식간에 구축해 개인으로 달성하기 어려운 효율를 발휘한다.

sylee) 자신을 도와줄수 있고 조언을 구할수있는 가능한 폭넓은 인맥을 보유한다.