좋은 프로그래머란 무엇일까?

어느 날 문득, ‘좋은 프로그래머’란 어떤 의미일까라는 생각을 하게 됐다.

내가 떠올린 좋은 프로그래머를 분류 해보자면 ‘실력은 보통이지만 같이 일하기 좋은 프로그래머’, ‘굉장히 능력이 뛰어난 슈퍼 프로그래머’, ‘매우 꼼꼼해서 실수를 거의 하지 않는 프로그래머’ 정도로 나뉘어졌다.

생각해보니 나는 어떤 부류에도 포함이 되지 않았다.

현재 내가 생각하고 있는 좋은 코드와 개발 방향에 대한 의지가 너무 강해 같이 일하기 좋은 사람이 되지도 못했고, 슈퍼 프로그래머도 아니며, 실수 빈도도 낮지 않다.

상황이 이렇다보니 나 자신에 대한 확신을 갖기 어려워지고 있었다.

슈퍼 프로그래머는 타고 나는 것이니 패스하고 나머지 두개를 생각해봤다.

내가 같이 일하기 좋은 프로그래머가 되려한다면 어떻게 해야 할것인가?

내가 생각하는 옳은 방식을 버리고 다른 사람이 하자는 방식대로 따라 가기만 하면 일하기 좋은 프로그래머가 되는 것일까? 그건 아닌거 같았다.

그러면 과연 내 어떤 점이 문제였을까 고민을 해봤더니, 토론을 원하지만 토론을 원하는거 같지 않은 대화 습관이 문제였다.

내가 생각하고 있는것과 다른 이야기로 흘러갈 때 어투가 강해지고 목소리가 커지는 태도는 다른 사람들이 보기에 화가 난것 처럼 보였고, 대화하기 꺼려지게끔 만들었더라.

내 의지를 관철 시키기 위해 침착한 말투로 다른 사람을 잘 설득할 수 있다면, 내 의견을 관철 시킬 수도 있고, 일하기 좋은 프로그래머가 될 수도 있겠단 생각이 들었다.

남은 한가지 요건인 ‘꼼꼼한 프로그래머’가 되기 위해서 해야 할일은 무엇일까?

이 부분에서는 일정 부분 좋은 습관과 좋은 환경이 상당 부분 해결해 줄 수 있겠단 생각을 했다.

잘 찾아볼수 있게 할일을 리스트업하고, 우선 순위를 메기는 것만으로도 해야 될일을 놓치는 빈도가 적어질 수 있기 때문이다.

또한 규칙(예를 들면 코딩 인벤션과 같은 것들)을 세우고 그 것을 습관적으로 지킨다면 실수할 여지가 분명히 줄어들었다.

여기서 중요한 것은, 이미 적용중인 규칙을 바꾸려 할 때는 그 규칙이 적용된 모든 것을 바꾸거나, 바꾸지 않거나 해야 된다는 것이다.

규칙을 변경할 때 소급적용한다는 것은 안하니만 못한 결과를 낳았다. 다양한 규칙이 적용된 상태는 규칙이 없는 무질서한 상태나 마찬가지기 때문이다.

지금의 나를 돌아봤을 때 20살때 꿈꿔온 목표했던 것보다 많은 것이 이루어졌다.

그렇다보니 할 수 있구나 하는 자신감도 갖게 됐지만, 욕심이 더 해져 더 큰 목표와 많은 것을 갖게 되기도 했다.   20살 때 세웠던 내 목표중 하나는 ‘기술적으로 뛰어나고, 좋은 게임을 만드는 것’이었다.

하지만 지금은 좋은 사람, 좋은 프로그래머가 되고 싶은 목표로 바뀌었다. 내 꿈이 언제 또 변할지 모르지만, 내 변하고 있는 생각이 옳다고 믿고 최선을 다하면, 결국은 해피 엔딩이 되지 않을까 하는 추상적인 꿈을 꾸며 노력하는 수밖에 없는것 같다.

Comments

comments powered by Disqus