본문 바로가기

실용주의 프로그래머

[실용주의 프로그래머] 고양이가 내 소스코드를 삼켰어요

가장 큰 약점은 약점을 보일 것에 대한 두려움이다.
- 보쉬에, 1709

 

1) 서문

- 실용주의 철학의 초석 중 하나는 경력 향상, 프로젝트, 일상 업무의 면에서 자신과 자신의 행동에 대해 책임을

  지는 것이다. 실용주의 프로그래머는 경력에 대해 책임을 지고, 자신의 무지나 실수를 인정하기를 두려워하지 않는다.

  무지나 실수를 인정하는 일은 분명 프로그래밍에 있어 가장 즐거운 부분은 아니다.

  하지만 분명 일어나는 일이다. 심지어 최고의 프로젝트에서도. 철저한 테스트, 훌륭한 문서화, 탄탄한 자동화 등에도

  불구하고 뭔가 잘못되는 일이 있다. 납품이 늦어진다. 예상치 못했던 기술적 문제가 발발한다. 

 

- 이런 일들이 일어나면 우리는 가능한 한 전문가답게 처리하려고 노력한다.

   이는 정직하고 솔직해지는 것을 의미한다. 우리는 자신의 능력에 대해 자부심을 가질 수 있지만,

   실수나 무지 같은 단점에 대해서도 정직해져야 한다. 

 

2) 책임지기

- 책임은 적극적으로 동의하는 것이다. 뭔가 제대로 처리하겠다고 확약을 하더라도, 모든 면에서 꼭 직접적인 통제가

  가능하지는 않다. 개인적으로 최선을 다하는 것 외에도 꼭 직접적인 통제가 가능하지는 않다.

  개인적으로 최선을 다하는 것 외에도 여러분의 통제를 벗어나는 위험요소에 대해 상황을 분석해야 한다.

  여러분에겐 불가능하거나 위험요소가 너무 큰 상황에 대해서는 책임을 지지 않을 권리가 있다. 

  자신의 윤리의식과 판단에 따라 결정해야 할 것이다. 

 

- 결과에 대한 책임을 받아들인다면, 그 결과에 대해 나중에 해명할 것을 예상해야 한다.

  (누구나 그렇듯이) 실수를 저지르거나 잘못된 판단을 내렸다면, 정직하게 인정하고 다른 방안을 제안하도록 노력하라.

  다른 사람이나 다른 무언가를 비난하거나 변명을 만들어 내지 말라. 

  모든 문제가 벤더, 프로그래밍 언어, 경영진 혹은 동료 때문이라고 떠넘기지 말라. 

  이들이 모두 한몫씩 했을 수 있겠지만 변명이 아닌 해결안을 제공하는 것은 여러분에게 달려 있다. 

 

- 만약 벤더가 끝까지 잘 해내지 못할 위험요소가 있다면 여러분이 그에 대한 대책을 세워야 한다.

   소스코드와 디스크가 다 망가져 버렸는데 백업이 없다면, 그것은 여러분의 잘못이다.

   '고양이가 내 소스코드를 삼켰어오'라고 상관에게 말하는 것은 별 도움이 안 될 것이다. 

 

실용주의 프로그래머 Tip 3
- 어설픈 변명을 만들지 말고 대안을 제시하라 

 

- 누군가에게 어떤 일을 할 수 없다고, 혹은 늦어지거나 뭔가가 고장났다고 말하려고 다가가기 전에 잠깐 멈추고,

  자신의 목소리를 들어보라. 모니터 위에 놓여있는 고무 오리나 고양이에게라도 이야기해 보라.

  변명이 그럴 싸하게 들리는가 아니면 멍청하게 들리는가? 상관에게는 또 어떻게 들릴까?

 

- 머리 속에서 대화를 진행시켜 보라. 다른 사람이 뭐라고 말할 것 같은가? 

  그가 "...는 해보셨나요?" 혹은 "그걸 고려하지 못했습니까?" 라고 물어볼까? 

  어떤 식으로 대답할까? 나쁜 소식을 전하러 가기 전에 뭔가 시도해 볼만한 다른 것은 없을까?

  때로는 사람들이 뭐라고 말할지 빤히 보이는 경우가 있는데, 그럴 땐 그들의 수고를 덜어줘라. 

 

- 변명 대신에 대안을 제시하라. 안 된다고 하지 말고 상황을 개선하기 위해 무엇을 할 수 있는지 설명하라.

  코드를 버려야 하나? 그들에게 리팩터링의 가치를 가르쳐 줘라.

  최선의 방법을 결정하기 위해 프로토타입을 만들 시간이 필요한가?

  더 나은 테스트와 가차 없는 테스트를 도입하거나 재발을 예방하기 위해 자동화를 도입해야 할까?

  어쩌면 자원이 더 필요할 수도 있겠다.

  부탁하는 것을 어려워하지 말고, 도움이 필요하다는 사실을 인정하라. 

 

- 어설픈 변명을 늘어놓기 전에 그 변명꺼리를 없애도록 노력해 보라.

  그래도 꼭 해야겠다면 여러분의 고양이에게 먼저 해보라. 

  아무튼 야옹이가 대신 비난을 받을 수만 있다면야