“직접 나서서 일일이 코딩하지 말고, 팀원을 시키란 말이야!”
10년이 지나 프로그램이 무엇인지 알 때쯤 되니 회사에서 또 다른 임무를 준다. 더 이상 혼자서 키보드와 모니터에 빠져있지 말고, 뒤따라오는 후배들을 도와주라고 말이다. 사실 팀을 관리하라고 하는 것이 맞을 듯싶다. 아직 소스코드와 못다 한 로맨스가 남아있어서, 프로그래밍에 대한 미련을 버리지 못해서 예전처럼 코딩을 할 때면 상사에게 구박을 받곤 한다.
안타깝게도 우리나라 IT업계에서는 프로그래머를 위한 커리어 패스가 '주니어 프로그래머 → 시니어 프로그래머 → 고급 프로그래머'가 아니라 '프로그래머 → 중간관리자 → 경영진'으로 이뤄져 있다. ‘프로그래밍만’ 잘하면 되는 것이 아니라, ‘관리도’ 잘해야 하는 것이다. 그래서 프로그래머는 중간관리자로 넘어가지 못하면 도태되고 만다. 이러한 구조로 인해 프로그래머가 어느 순간 중간관리자가 되는 일은 피할 수 없다. 그리고 이때 가장 부족하다고 느끼는 점이 바로, ‘리더십’이다.
이 책은 ‘백발이 성성할 때까지 프로그래머로 남고 싶다’고 생각했던 저자가 중간관리자가 되어 겪은 지식, 경험, 노하우, 그리고 리더십에 대한 얘기다.
【어떤 독자를 위한 책인가?】
【이 책의 구성】
이 도서는 리더십을 위한 지식이 아니라 시니어 프로그래머와 프로젝트 관리자(PM)로 저자가 프로젝트를 진행하면서 경험한 내용을 담고 있다. 그래서 교과서처럼 전반적인 내용을 담고 있는 것이 아니라 주관적으로 중요하다고 느낀 점들을 옴니버스식으로 담고 있다. 지금부터 프로그래머의 특성을 알아보고, 프로그래머에게 지지를 받기 위한 리더십에 대해 구체적으로 알아보자. 프로그래머가 리더십을 발휘하기 위한 필수 요소로 다음 네 가지가 중요하다.
1장에서는 리더십의 필요성과 의미, 영향력의 원천에 관해 다룬다. 또, 프로그래머의 성향과 특수한 문화를 알아본다. 이런 특수성으로 인해 발생하는 문제와 대응방법을 통해 리더십을 어떻게 발휘할 것인지에 대해 알아본다.
2장은 프로젝트를 성공하기 위한 자원관리 방법과 유용한 팁으로 구성했다. 많이 알고 있는 소프트웨어 공학의 교과서적인 접근보다 프로젝트 진행 시 경험하고 공유하고 싶은 내용으로 설명한다.
3장은 조직관리를 효율적으로 하는 방법과 커뮤니케이션 방법을 다룬다. 리더로서 필요한 마음가짐, 팀원들과 원활한 의사소통을 위한 팁, 피해야 할 행동에 관해 소개한다. 인재양성을 위한 기술교육의 필요성과 개인주의 성향이 물씬 묻어나는 요즘 신세대 주니어 프로그래머에 대한 이해를 돕는다. 기술교육은 팀의 능력을 향상시키고 리더의 영향력을 높이는 중요한 요소이며 주니어 프로그래머의 개인주의적인 성향은 어쩔 수 없는 시대의 흐름이기에 이들에 대한 이해가 필수적으로 요구된다. 변화한 주니어 프로그래머의 성향을 이해하고, 공감대를 형성해서 팔로우십을 얻기 위한 경험에 관해 말하고 있다.
마지막으로 4장에서는 리더로서 주도적으로 자기 계발을 하고, 급변하는 IT 환경에서 용기를 가지고 적응하기 위한 마음가짐을 강조했다. 리더로서 모범을 보이고 앞서가는 데 필요한 점들을 소개한다. 프로그래머가 놓치기 쉬운 부분을 강조한다.
이처럼 이 책에서는 척박한 소프트웨어 개발환경에서 프로그래머의 리더십을 발휘하기 위한 네 가지 요소에 대해 알아보고, 저자가 겪은 그 동안의 경험과 생각을 함께 공유하고자 한다.
프롤로그_ 마음은 언제나 필드 프로그래머
1장. 프로그래머의 리더십
01 프로그래머는 전문가다
02 왜 프로그래머의 리더가 되어야 하는가?
03 프로그래머의 리더에게 필요한 리더십
04 리더십의 향상을 위한 접근방법
05 노하우를 전수해서 좌청룡, 우백호를 만들자
2장. 프로젝트 관리
06 새로운 프로젝트에 대한 두려움을 던져라
07 프로젝트 착수 전에 검토해야 할 사항
08 집중근무를 위한 일정관리 방법
09 요구사항은 반드시 적도록 하자
10 개발현장이 가장 중요하다
11 Pair Programming
12 프로젝트에 위기가 닥쳐왔을 때 어떻게 풀어낼까?
13 프로그래머가 기술적 어려움을 호소할 때 대처방법
14 리더의 슬럼프 극복
15 프로그래머를 위한 하드웨어는 아끼지 말자
3장. 리더의 소통
16 조직 내 커뮤니케이션
17 반드시 해결책을 제시할 필요는 없다
18 리더 영향력의 원천과 문제 해결 유형
19 프로그래머의 성격과 대응방법
20 칭찬의 기술
21 상사에게 칭찬하는 방법
22 남이 알아주지 않아도 화를 내지 않으니 군자라 아니할 수 없다
23 고민이나 불만을 팀원에게 말하지 마라
24 주니어 프로그래머의 변화에 적응해야 한다
25 회식을 커뮤니케이션의 장으로 활용하자
26 승진하는 방법
4장. 리더의 자기 계발
27 내가 바로 The One이다
28 Vision을 갖자
29 내 밥그릇을 깨뜨리자
30 R&D에 투자하자
31 프로그래밍의 즐거움
32 취미 프로그래밍
33 공부하는 법을 먼저 배우자
34 글 쓰는 프로그래머
35 문서작성 방법
36 팀 성과 홍보의 필요성
37 프레젠테이션 방법
38 시대 변화의 흐름을 타자
39 그릇의 크기
40 내가 고민하고 있는 문제는 이미 대가가 정리해놓았다
41 소프트웨어 공학의 필요성
42 앞으로 10년을 어떻게 보낼 것인가?
43 잔업근무에 대한 마음가짐
44 을의 운명
에필로그_ 프로그래머의 전망