개발자 99% 커뮤니티에서 수다 떨어요!
불가능한 완벽함에 매몰되지 말고 ‘적당히 괜찮은’ 코드에도 만족할 줄 알며, 쌓이는 기술 부채를 절대 무시해서는 안 된다.
멈춰서서 고이지 말고 늘 새로운 배움을 찾아서 쌓고, 기존의 지식은 견고하게 보완해가면서 시야를 넓혀가자.
프로그래밍은 결국 사람을 위한 것이므로 사람을 보다 잘 알아야 하고, 의사소통은 그중 가장 중요한 과정이자 수단이므로 수시로 ‘소통을 제대로 하고 있는가?’ 자가 점검해보자.
2022-05-14
추천사 및 서문
1장. 실용주의 철학 (p.1 ~ p.36)
엔트로피가 우리를 지배하도록 내버려 두지 말라. (p.10)
당장 하고있는 일에만 정신을 쏟지 말고, 주변에서 무슨 일이 벌어지는지 늘 살펴보라. (p.14)
오늘의 훌륭한 소프트웨어는 많은 경우 환상에 불과한 내일의 완벽한 소프트웨어보다 낫다. (p.17)
비판적 사고는 그 자체만으로 하나의 학문을 이룬다. (p.25)
신경 언어 프로그래밍의 전제 중 하나는 “당신이 한 의사소통의 의미는 당신이 받은 반응이 결정한다.” 는 것이다. (p.29 ~ p.30)
회의를 대화로 바꾸면 생각을 좀 더 효과적으로 전달할 수 있을 것이다. (p.32)
코드에 주석을 쓸 때는 왜 이렇게 되어 있는지, 즉 코드의 용도와 목적을 논해야 한다. 어떻게 동작하는지는 코드가 이미 보여 주기 때문에 이에 대해 주석을 다는 것은 사족이다. (p.34)
1장부터 현재 진행 중인 프로젝트와 운영 중인 서비스에 참고가 되는 내용들이 실려있었다.
운영 중인 서비스가 [Topic 3. 소프트웨어 엔트로피]에서 다룬 사례처럼, 해결이 어려운 기술 부채가 하나둘 쌓이고 쌓여, 더 이상의 추가 기능을 붙이는 업데이트가 힘들어지고 유지보수에만 급급해지다 보니 종래에는 결함이 발견되어도 그냥 TODO 리스트로 미뤄두기만 할 뿐, 개선이 이루어지는 일은 거의 없었다.
이대로는 서비스가 성장할 수 없을뿐더러, 언제 터질지 모르는 큰 시한폭탄을 안고 있는 셈이므로 전면 리뉴얼이라는 크나큰 결정을 내리고 출발한 게 현재 진행 중인 프로젝트이다.
기존의 허술한 코드와 설계로 인해 많은 고통을 받았었으므로, 리뉴얼은 완벽함에 중점을 두게 되는 건 당연한 수순이었고, [Topic 5. 적당히 괜찮은 소프트웨어]의 사례처럼 작업 티켓 하나하나가 예측 시간 대비 소요 시간이 많이 늘어나게 되면서 프로젝트의 총예측 시간은 연쇄적으로 한없이 늘어져만 갔다.
최근(한 달 전)에서야 이대로는 끝이 안나겠다 싶어, 코드를 작성할 때 ‘이게 최선인가?’ 가 아닌 ‘이게 지금으로서는 최선이다.’ 라는 접근으로 바꾸면서 ‘적당히 괜찮은’ 코드가 나오면 만족하고 다음 작업으로 넘어갔다. 덕분에 꽤나 진행에 속도가 붙은 상태이다.
마침 같은 사례가 다뤄져 있기에 ‘이 책을 좀 더 빨리 읽어봤었더라면..’ 하는 아쉬움도 있지만 ‘이렇게 적당 적당하게 해도 괜찮은가?’ 라는 생각도 가지고 있었기에 이 내용을 읽고 나서는 한결 마음이 편해졌다.
1장 내용 중 개인적으로 가장 도움이 된 부분은 [Topic 6. 지식 포트폴리오]이다.
막연하게 ‘모름지기 프로그래머라면 트렌드는 좇아가야지’, ‘적어도 사용하는 언어와 기술의 변화는 꿰고 있어야지’ 라고 생각만 앞서고 정작 어떻게, 어느 정도까지 파고들어야 하는 건지 잘 몰랐던 데다가, 게으름이 흘러넘치는 성격이라 여태 업무 외적으로서의 프로그래밍 스킬에 발전은 없었었다.
그런 나를 위한 내용들인 것처럼, 자신의 포트폴리오를 강화해야 하는 이유부터 방법까지 상세히 기술되어 있었다. 그중 일부 내용은 개인 성향과 상반되는 내용이 있어 적용하기 어려운 부분들이 있지만, 우선 가능한 것부터 차근차근해 나아갈 계획이다.
[Topic 7. 소통하라]를 통해서는 다시금 회의, 문서화, 대화 등 소통의 중요성과, 각각 어디에 중점을 두고 신경써야 하는지 확실하게 정리할 수 있게 되어 좋았다.
오늘 작성된 모든 TIL