[TIL] 실용주의 철학 - 실용주의 프로그래머 1장

TIL (Today I Learned) 날짜: 2022/03/19
오늘 읽은 범위: 서문 ~ 1장. 실용주의 철학 A Pragmatic Philosophy 

기억하고 싶은 내용

  • 실용주의 프로그래머는 무엇이 다른가? 문제와 해법에 접근하는 태도와 방식, 철학에 차이가 있다.
    실용주의 프로그래머는 직면한 문제 너머를 고민한다. 문제를 더 큰 맥락에 놓고 더 큰 그림을 보려고 노력한다.

Topic 1. 당신의 인생이다

당신은 당신 조직을 바꾸거나, 당신의 조직을 바꿀 수 있다. - Matin Fowler

Topic 2. 고양이가 내 소스 코드를 삼켰어요

  • 실용주의 철학의 초석 중 하나는 자신과 자신의 행동에 대해 책임을 지는 것이다. 자신의 경력 개발, 자신의 학습 및 교육, 프로젝트, 일상 업무에 대해서 말이다.
  • 실수를 저지르거나(누구나 실수를 한다) 잘못된 판단을 내렸다면, 정직하게 인정하고 다른 방안을 제안하도록 노력하라.
  • 어설픈 변명 말고 대안을 제시하라.
  • 여러분이 "잘 모르겠어요."라고 말했다면, 꼭 바로 이어서 "하지만 알아볼게요."라고 말하라. 모른다는 것은 인정하더라도 전문가답게 책임을 지는 좋은 방법이다.

Topic 3. 소프트웨어 엔트로피

  • '깨진 창문'을 고치지 않은 채로 내버려 두지 말라. 나쁜 설계, 잘못된 결정, 혹은 형편없는 코드 등이 모두 깨진 창문이다. 발견하자마자 바로 고쳐라. 적절히 고칠 시간이 없다면 일단 판자로 덮는 것만이라도 해라.
  • 방치는 다른 어떤 요인보다도 부패를 더 가속시킨다.

Topic 4. 돌멩이 수프와 삶은 개구리

  • 일단 무언가 생기면 사람들에게 보여주고 그들이 경탄하게 하라. 그러고는 "물론.....을 추가하기만 하면 더 나아질 수도 있겠죠."라고 말하면서 그다지 중요하지 않은 척 가장하라. 미래를 살짝이라도 보여주면 사람들은 도와주기 위해 모여들 것이다.
  • 큰 그림을 기억하라. 당장 하고 있는 일에만 정신을 쏟지 말고, 주변에서 무슨일이 벌어지는지 늘 살펴보라. 소프트웨어 참사는 대부분 너무 작아 알아차리기 힘들 정도의 문제에서 시작되고, 프로젝트는 대부분 어느 날 갑자기 폭주한다.

Topic 5. 적당히 괜찮은 소프트웨어

  • 완벽보다 완성이 낫다.
  • '기능 블로트 feature bloat'
    소프트웨어가 쓰는 기능에 비해 훨씬 더 많은 기능을 가지고 있는데, 기능이 많은 만큼 버그나 보안 취약점이 생길 가능성도 높은 것을 말한다.

Topic 6. 지식 포트폴리오

  • 우리의 지식과 경험은 '기한이 있는 자산'이다.
  • 점점 빨라져가는만 가는 우리 기술 세계의 변화 속도를 볼 때,유효 기한은 금세 끝나버릴 수 있다.
1. 매년 새로운 언어를 최소 하나는 배워라
2. 기술 서적을 한 달에 한 권씩 읽어라
3. 기술 서적이 아닌 책도 읽어라
4. 수업을 들어라
5. 지역 사용자 단체나 모임에 참여하라
6. 다른 환경에서 실험해 보라 
7. 요즘 흐름을 놓치지 말라 
  • 상업주의의 힘을 절대 과소평가하지 말라. 읽고 듣는 것을 비판적으로 분석하라.
1. "왜냐고 다섯 번 묻기 Five whys"
2. 누구에게 이익이 되나?
3. 어떤 맥락인가 ? 
4. 언제 혹은 어디서 효과가 있을까?
5. 왜 이것이 문제인가? 

Topic 7. 소통하라!

  • 무엇을 말하는가와 어떻게 말하는가 모두 중요하다.
  • 문서를 애초부터 포함하고, 나중에 집어넣으려고 하지 말라.

소감 및 생각

  • 전체적인 맥락을 파악하여 일을 하는 것은 비단 프로그래머에게만 해당하는 것은 아니다. 우리는 두루뭉술하게 어떻게 일해야한다거나 무엇이 옳은지 알고 있다. 하지만 그걸 실천하는 사람은 많지 않고 그것이 생각보다 쉽지 않다는 것 또한 알고있다. 실용주의 프로그래머 1장에서는 그런 이들에게 다시한번 '실용적'인 태도와 철학에 대해 상기시켜준다.
  • 돌멩이 스프와 개구리 스프 예시를 들어 설명한 부분이 인상적이었다. 두 케이스 모두 대상을 점진적으로 속였으나 매우 다른 결과를 불러온다. 내가 일으키려는 변화가 긍정적인 결과를 불러올지, 가랑비에 옷 젖듯 서서히 익어가는 개구리 스프를 만드는지 어떻게 판단할 수 있을까? 자기전까지 이 생각만 하다 잠들 것 같다. 해결책이 생각난다면 추가하겠다.
  • 처음으로 TIL을 써봤는데, 아직 형태를 많이 다듬어야 할 것 같지만 완벽보단 완성이라고 했으니, 1일차 포스팅을 완료했음에 의의를 둔다. 그리고 이 챌린지를 통해 나와 다른 여러 사람들과 소통할 수 있다는 것 ! 앞으로의 3주가 기대된다.

오늘 읽은 다른 사람의 TIL

https://nomadcoders.co/community/thread/3634
책에 나온 Tip들을 모아 부록으로 모아둔 게 인상적이었습니다 ! 저도 다음부터 활용해봐야겠어요 :)

좋은 웹페이지 즐겨찾기