본문 바로가기

정보상자/IT

[column] 프로그래머의 생산성을 떨어뜨리는 15가지

http://www.ciokorea.com/slideshow/19128

내용 요약

1. 회의
- 가장 많은 불평의 주범은 회의
- 자질구레한걸 떠드는 회의는 불필요

2. 모든 이메일 답장하기
- 끝없는 이메일을 확인하는 것 또한 고역

3. 생산성 측정 시도하기

- 수정된 라인 수, 커밋 수, 버그 횟수 등등 생산에 관련된 양적인 요소에 집중은
과도한 기능이 적용된 코드로 가득 찬 긴 파일만 조장
- 개발이라는 우아함을 측정하는 것은 애초부터 불가능

4. 프리마돈나 개발자
- 마지막 버전을 개발했으면서도 더 이상 프로젝트에 참여하지 않는 개발자
(이는 다음 개발자에게 생산성을 기대하기 힘들다는 뜻인듯)
- 또한 프리마돈나적인 태도는 자부심과 사리사욕 때문에
프로그래머들이 각자의 "올바른 방식"으로 적절한 코드를 버리고 재구성하면서 프로젝트가 지연

5. '나중에 고치자' 기술적 부채 문제
- 다음 세대를 황당하게 만드는 것은 마지막 세대가 개발하지 못했던 것을 개발해야 하는 것

6. 프로그래머 출신이 아닌 관리자

- 그들은 제대로 된 안내를 하지 못하며, 기껏해야 품질 시험 정도가 가능

7. 때론 프로그래머 관리자가 더 나쁘다.

- 전문 지식을 가진 관리자는 도리어 자신이 세운 새로운 목표에 맞춰 프로젝트를 너무 세부적으로 관리하며,
때로는 코드를 대폭 수정하기도 한다.
- 자신의 본연의 임무를 잊은 채 전체적인 그림 보다는 기술적인 세부사항에 더욱 집착

8. 마초 프로그래머 '브로그래머'(brogrammers)
- 고객이 다른 것을 원하는지 여부는 상관 없다. 그저 기술적 논쟁에 매달리는 개발자

9. 이기적이거나 고독한 코드 개발자 
- 자아도취에 빠진 개발자 (자아도취에 빠져 충분한 확인을 하지 않는 개발자), 0으로 나누기 오류를 확인하지 않기 때문

10. 형편 없는 문서화
- 문서 작성에는 시간이 필요
- 코드를 작성하느라 문서를 미루다보면, 지난 세대의 코드의 문서를 작성해야하는데 그 쯤 문서를 작성하게 된다면, 그 코드는 곧 수정될것이다. 

11. 문서화에의 맹종 
- 문서 기록량에 따라 비용을 지급하는 경우
- 요약이나 요점 없이 아주 세세한 부분을 포함하여 끝 없이 문서를 작성하는 경우

12. 집중력을 저하시키는 환경 
- 어떤 고객은 사무실을 방문해 자신의 컴퓨터를 사용해 개발하기를 요청
그러나 그 컴퓨터를 원하는 환경으로 설정하는 데만 1주일이 소요

13. '문화적 적합성' 
- 비슷한 사람들이 모인 팀들이 더 나은 결과물을 도출해 낸다.
공통점을 찾을 수 없는 팀은 금방 실패한다.
의사소통은 절대로 이루어지지 않으며 결국 중구난방으로 일하게 된다.

14. 레거시(Legacy) 기술에의 집착 
- 보통 시스템 리뉴얼을 비용 때문에 꺼려하는데, 오래된 시스템이 유지비용이 더 만만치 않으며,
- 오래된 레거시 기술은 새로운 로직을 작성하기보다는 중간 로직을 개선하는데 더 많은 시간을 보내게 된다.

15. 최신과 최고에의 욕망 
자바를 "할아버지 세대의 것"으로 치부하고, Node.js 는 너무 오래된 2012년의 것으로 여기는 사람들..