Bruce Eckel의 The Mythical 5% (Via Steve Vinoski)라는 글을 읽었다.
최상의 프로그래머가 최악의 프로그래머에 비해 28배의 생산성을 보여준다는 사실은 people factor를 강조하는 사람들에 의해 꾸준히 인용되는 사실이다. 5%라는 숫자가 어디서 나왔는지는 모르겠지만, 여기서 mythical 5%는 그러한 최상의 프로그래머들을 일컫는다.
Bruce Eckel은 이 숫자에 대해 재미있는 가설을 세운다.
Let’s say that this follows the 80-20 rule. Roughly 80% of programmers don’t read books, don’t go to conferences, don’t continue learning, don’t do anything but what they covered in college. Maybe they’ve gotten a job in a big company where they can do the same thing over and over. The other 20% struggle with their profession: they read, try to learn things, listen to podcasts, go to user group meetings and sometimes a conference. 80% of this 20% are not very successful yet; they’re still beginning, still trying. The other 20% of this 20% — that’s about 5% of the whole who are 20x more productive.
즉, 전체 프로그래머들 중 20%만이 뭔가를 배우려고 애쓰고, 그 중에서도 20%만이 성공을 거두어 mythical 5%가 된다는 것이다. Bruce Eckel에 따르면, 이 5%의 사람들은 엄청나게 읽어대며, 새로운 어떤 개념이 쓸만하다면 언제든지 시도해보며, 가장 좋은 도구와 기술, 생각들을 채용한다. 결정적으로 그들은 항상 최선을 다한다.
숫자들은 무시하도록 하자. 분명 프로그래머들 중 소수의 사람들만이 뭔가를 배우려고 애쓰고, 역시 소수의 사람들만이 뛰어나다는 것은 인정할 수 밖에 없는 사실이다. 그런 면에서 Bruce Eckel의 직관은 옳은 것 같다.
적어도 나는 뭔가를 배우려고 애쓰는 20%에 속한다고 말할 수 있다. 아마 이 글을 읽는 사람들도 그러한 20%에 속한 사람들일 것이다. 나는 모든 프로그래머가 그 20%가 되어야한다고는 생각하지 않는다. 각자 어떤 삶을 원하는가는 다른 법이기 때문이다. 어쩌면 묵묵히 자신이 할 일을 하는 80%가 있기에 다른 20%가 존재할 수 있을지도 모른다. (물론 80% 모두가 자신이 할 일을 하지는 않겠지만.)
내가 mythical 5%가 되기에 성공한 20%인지는 아직 모르겠다. 아마도 그 주변부에서 맴돌고 있는 듯하다. 여러 practices들을 접하고 어떤 것들이 best practices인지는 어느 정도 알지만 아직 그것들을 체계화하고 모두 습관화하지는 못한 단계다. Bruce Eckel은 배우려고 하지 않는 80%를 위한 조언을 했을 뿐, mythical 5%가 되기 위해 노력하고 있는 80%를 위한 조언은 하지 않았다. 그 답은 내가 스스로 찾아가야할 것이다. 내가 잊지 않아야하는 태도는 ‘최선을 다한다‘는 것일테다.
이 글의 나머지는 Code Readability의 중요성, Code Review의 유용함, 짧은 역사를 가진 소프트웨어 산업의 한계, 프로세스와 인간의 중요성, management의 어려움과 중요성, 소프트웨어 산업에 있어서의 비결정적인 요소, 경제와 비즈니스의 중요성에 대한 짤막하지만 현재 소프트웨어 산업의 지혜들을 담고 있는 심원한 문장들로 채워져있다. 소프트웨어 산업에 뛰어드는 신입자들로부터 5~10년 정도의 경력자들까지도 이 글을 한번씩 읽어보기를 권장한다.