-
[ 펌 ] '평범하되 위대하게' 개발자 생산성 습관 7가지Technique/Column 2016. 7. 4. 12:41반응형
이 글의 원문 : http://www.ciokorea.com/news/29950
좋은 코드를 작성하는 데 꼭 많은 시간이 필요한 것은 아니다. 여기 개발자들이 좋은 코드를 만들기 위해 필요한 습관들을 정리했다.
펄(Perl) 프로그래밍 언어를 처음 개발한 래리 월(Larry Wall)은 위대한 프로그래머들이 가지는 공통점으로 '게으름', '조급함', '오만함'이라는 3가지 특징을 지목했다.
그에 따르면 '게으름'은 노동 시간을 절약하는 프로그램을 개발하고, 이를 문서화해 질문에 답할 필요가 없도록 해주는 역할을 한다.
그리고 '조급함'은 니즈(필요 사항)을 예상해 프로그램을 개발하도록 동기를 부여한다. 마지막으로 '오만함'은 다른 사람들이 비판할 수 없는 프로그램을 개발하도록 만든다.
그러나 위대한 프로그래머라고 해서 반드시 생산성이 높은 프로그래머인 것은 아니다. 사실 조직 생산성 측면에서는 일상의 업무를 훌륭히 처리하는 개발자가 간헐적으로 최고의 능력을 발휘하는 개발자보다 더 우수할 수 있다.
또 위대한 개발자는 누구나 되고 싶다고 해서 될 수 있는 존재가 아니지만 효과적인 개발자는 노력을 기울인다면 누구나 될 수 있다. 다음은 조직과 동료에게서 환영 받는 개발자가 되는데 도움을 주는 7가지 습관이다. 관리자들도 참고할 만한 것들이다
1. 매일 4시간 이상 코딩을 한다
대단할 것 없는 '팁'으로 들릴지 모르겠다. 매일 최소 8시간 이상, 아니 10시간 이상 책상 앞에 앉아있는 개발자가 많기 때문이다. 그러나 이메일 관련 스타트업 카피인(Copyin)을 창업한 피터 닉시 CEO는 자신을 포함해서 개발자들이 실제 개발에 투자하는 시간은 많지 않다고 지적했다.
그는 "아마 모든 개발자들이 미팅, 탁구, 점심 등에 헛되이 시간을 낭비하는 프로젝트에서 일한 경험이 있을 것이다. 방해가 많은 사무 환경에서 온전히 4시간 이상 개발에만 매진하기란 쉽지 않다"라고 말했다.
4시간을 일하기 위해서는 이런 업무 방해를 피해야 한다. 닉시에 따르면, 업무에 집중해 '뇌'가 각종 변수들을 처리하고 있을 때, 단 한 번의 방해로 집중이 흐트러지면 이를 되찾는데 최대 1시간이 소요될 수 있다.
2. 팀 문화에 적응한다
효과적인 개발자가 되기 위해서는 동료들과 잘 어울리는 팀 플레이어가 되는 것이 중요하다. 개발자 네트워크인 스케일러블 패쓰(Scalable Path)의 데미언 필라트로 CEO에 따르면, 이는 우수한 코딩 능력과 다년간의 경력보다 훨씬 더 중요한 요소다.
그는 건방진 사람과 일하는 것이 얼마나 불쾌한지 생각해보라고 지적하며, 능력과 별개로 일단 '함께 즐겁게 일할 수 있는 사람'이어야 한다고 강조했다. 그렇지 않은 사람은 전체 팀의 사기에 영향을 준다.
거만한 성격의 사람만 문제를 일으키는 것은 아니다. 어떤 이유든 팀 환경이 불편한 사람도 문제가 될 수 있다고 지적했다. 그는 "이를 테면 일부 문화권의 국가에서 온 개발자들은 갈등을 피하고, 할 수 없는 일, 문제가 될 수 있는 일을 솔직히 말하지 않는 경향이 있다. 이런 태도도 문제가 될 수 있다"라고 말했다.
3. 남는 시간에도 개발을 한다
현실을 직시하자. 개발자가 업무 시간에만 개발을 한다면, 새로운 기술을 배우거나 새로운 분야의 경험을 쌓기 힘들다. 웹 개발사인 애디드 바이트(Added Bytes)를 창업한 데이브 차일드는 이런 이유로 여유 시간에 코딩을 하는 것이 중요하다고 강조했다.
그는 "내가 알고 있는 최고의 개발자들은 모두 사이드(곁가지) 프로젝트를 갖고 있었다"라고 말하며, "사이드 프로젝트에 업무용 기술을 활용하는 개발자는 단 한 명도 없었다"라고 강조했다.
4. 너절한 코드를 쓰는 방법을 배운다
유능한 개발자가 아주 우수한 코드를 개발해야만 하는 프로젝트는 사실 극소수다. 통상은 일반적인 플랫폼 위에 특정한 기능을 구현한다.
닉시는 이를 가장 훌륭하게 달성하는 방법은 제 기능을 하는 코드를 재빨리 개발하고, 이를 보강하는 방법이라고 말했다.
그는 "코드가 지저분하고, 반복되고, 네이밍이 나빠도 상관 없다. 코드로 솔루션의 토대를 만들고, 이를 보강하면 된다. 처음부터 완벽을 추구하면 실제 달성한 성과가 극소수에 불과할 수 있다"라고 말했다.
5. 같은 일을 너무 오래하지 않는다
개발 직종의 한 일자리를 얻어, 여기에 '정착'해 버리면 개발 역량을 잃어버릴 수 있다. 필요한 업무를 완벽하게 터득하면 '막다른 골목'에 도달, 자신의 역량을 발전시키지 못하기 때문이다. 그 결과 더 유능한 프로그래머가 되지 못한다.
닉시는 "스스로에게 계속 도전해야 한다. 몇 년 동안 같은 일을 했다면, 배울 것을 모두 배웠을 것이다. 여기에 안주해서는 안 된다. 새로운 도전을 찾아 떠나야 한다"라고 말했다.
6. 최신성을 유지한다
소프트웨어 기술은 빠른 속도로 끊임없이 변한다. 이는 지금 당장은 유용한 코딩 기술이 미래에는 쓸모 없게 될 수도 있다는 의미이다. 소프트웨어 개발 부문에서 오랫동안 커리어를 유지할 계획이라면, 새 트렌드와 언어가 등장할 때마다 이에 뒤지지 않게 준비를 해야 한다.
개발사인 프로그레스 소프트웨어(Progress Software)의 토드 앵글린 최고 에반젤리스트는 "지금 갖고 있는 지식을 남은 커리어 내내 활용하는 것은 불가능한 일이다. 계속해서 학습을 해야 한다. 지금 알고 있는 것만으로는 살아남을 수 없기 때문이다"라고 말했다.
그는 그러나 모든 것에 정통하려 하지 말고, 관심 있는 분야에 집중하는 것이 중요하다고 덧붙였다. 그는 "중요한 것은 계속해서 배우려는 갈망과 열정이다. 그러나 더 깊은 전문성을 획득할 분야를 결정해야 한다. 모든 것을 배우려 시도하지 않는다. 불가능한 일이기 때문이다. 집중이 필요하다"라고 말했다.
필라트로도 여기에 동의했다. 그는 "개발 업무 중 절반은 과거 해보지 않은 업무이기 마련이다. 따라서 정작 중요한 것은 학습 방법, 정보 획득 방법일 수 있다. 스스로에게 필요한 지식을 가르칠 수 있어야 한다"라고 말했다.
7. 중요하다고 생각하는 것을 위해 코딩한다
'비 어 베터 디벨로퍼(Be a Better Developer)'라는 블로그의 운영자인 그레고 리글러는 열정을 갖고 있는 프로젝트에 참여, 코딩에 모든 것을 쏟아 붓는 것이 아주 중요하다며, 이를 위해서는 개발 대상이 중요하다고 말했다.
그는 "중요하게 생각하는 코딩에 매진해야 동기가 부여된다. 이는 특정 방식으로 앱을 작동시키는 개발, 또는 머신을 작동시키는 개발 등 다양하다. 어느 쪽이든 의미를 발견할 수 있고 즐길 수 있는 일이어야 한다. 즐길 수 있다면, 아주 좋은 코드를 개발하게 될 것이다"라고 말했다.------------------------------------------------------------
주관적인 생각
지난 4년간 주니어 엔지니어로 일해오면서 비슷하게 느낀점이 상당히 포함되어 있어서 놀랏다.
그리고 매번 하겟다고 생각만하고 제대로 실천하지 못한 내자신에 대한 멍청멍청함에 대한 생각도 가지게 해 주는것 같다.
요즘 5번의 의미에 대해 많은 생각을 가지고 있다.
같은일의 지속됨은 정말 많은 지루함과 무료함 그리고 이 세대에 뒤떨어지는 것이 아닌가 싶은 불안감마저 가지고 온다.
사이드 프로젝트도 결국엔 사이드 프로젝트이므로 많은 만족감을 느낄수 없다.
메인 으로 하는 일도 벅찬데 사이드 프로젝트에 힘을 쏟아 부을 능력도, 시간도 부족하다
그렇지만 이것또한 나의 변명이다...
할수 있음에도 하지 아니하는 것과 같다.
항상 부족하단 마음으로 노력하겟다고 다짐한게 2년전..
이런 기사를 볼때마다 조금더 내 자신의 마음을 굳게 다짐하도록 해야겟다.
반응형'Technique > Column' 카테고리의 다른 글
[ 펌 ] [번역] 더 나은 개발자가 되는 8 가지 방법 (0) 2016.08.16 [ 펌 ] 개발자의 의사소통 능력 (0) 2016.07.19 [ 펌 ] 프로그래머 생산성을 떨어뜨리는 15가지 (0) 2016.04.23 [ 펌 ] 개발자를 위한 10가지 철학 (0) 2016.02.22 [ 펌 ] 프로그래머의 경력을 말아먹는 12가지 방법 (0) 2015.12.28