[F-Lab 모각코 챌린지 2일차] - 실용주의 프로그래머 1장 실용주의 철학

saem·2023년 6월 4일
2
post-thumbnail

서문

이 책은 더 효과적이고 생산성 높은 프로그래머가 되고 싶은 사람들을 위해 썼다고 말한다.

무엇이 실용주의 프로그래머를 만드는가.

실용주의 프로그래머들의 공유하는 특징

  • 얼리 어댑터 또는 새로운 것에 빨리 적응하는 사람
  • 호기심 많은 사람
  • 비판적인 사고의 소유자
  • 현실주의자
  • 다방면에 능숙한 사람

실용주의 프로그래머들의 공통적인 특징

  • 자신의 기예에 관심을 갖는 사람
    • 소프트웨어 개발을 잘하는 것에 관심이 없다면, 이 일을 하는 의미가 없다고 생각함.
  • 자기 일에 대해 생각하는 사람
    • 기계적으로 일하지 않고, 동시에 생각하며, 자기 일을 비평한다.

큰 팀에서의 실용주의 프로그래머

어떤 사람은

큰 팀이나 복잡한 프로젝트에서 개인이 개성을 발휘하면 기본적인 프로그래밍 규율이 무너질 것 이다.

라고 표현하지만, 글쓴이는 반대의 입장을 이야기 한다.

프로젝트 전체 구조 속에 각자의 개성과 장인 정신을 발휘한다면 멋진 대성당이 완성될 것이라고.

끊임없는 과정

매일같이 기술을 다듬고, 새로운 기술 목록에 새로운 기술들을 추가해 관리해야한다.


1장 - 실용주의 철학

📌 Topic1 - 당신의 인생이다

모두에게 스스로 행동을 직접 결정할 수 있는 힘이 있다고 말한다.

  • 업무 환경이 엉망인가?
  • 하는 일이 지루한가?

문제를 고치기 위해 노력하기를 당부하며

‘당신은 당신의 조직을 바꾸거나, 당신의 조직을 바꿀 수 있다’ - 마틴 파울러

위 말을 인용하며 공부하고, 주도적으로 행동하기를 권장하고 있다.

📌 Topic2 - 고양이가 내 소스 코드를 삼켰어요

1. 팀 내 신뢰

신뢰에 바탕을 둔 건강한 환경에서는 팀원들과 안전하게 의견을 주고 받을수 있다고 말한다.

2. 책임지기

어설픈 변명 말고 대안을 제시하라.

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

모든 문제를 외부 업체나 프로그래밍 언어, 경영진, 동료 때문이라고 떠넘기지 말고,

이들 모두가 한몫씩 했을 수 있겠지만 변명이 아니라, 해결책을 찾아내야 한다.

🧸 와 여기서도 뼈를 맞네…

안된다고 하지말고 상황을 개선하기 위해 무엇을 할 수 있는지 설명하라.

도움이 필요한 부분이 있다면 부탁을 어려워 하지 말고 도움이 필요하다는 사실을 인정하고 구하라.

📌 Topic3 - 소프트웨어 엔트로피

엔트로피는 시스템 내의 ‘무질서’한 정도를 가르키는 물리학 용어

이를 우리는 기술부채라고 부르기도 한다.

깨진 창문

심리학자들은 절망감이 전염된다는 연구 발표를 했다.

건물의 깨진 창문 한개가 새로운 깨진 창문을 야기하고, 사람들이 쓰래기를 함부로 버리기시작하는 계기가 된다.

깨진 창문을 내버려 두지 말라.

나쁜 설계, 잘못된 결정, 형편없는 코드 등 모두를 깨진창문이라 비유한다.

관리 되고 있는 범위임을 명확하게 인지할 수 있도록 코드를 작성하라고 말한다.

우선, 망가트리지 말라.

무슨일이 있더라도 깨진 창문은 하나로도 충분하다. 부가적인 피해를 일으키지 말라.

깨진 창문 한개는 내리막길로 가는 첫걸음이다.

📌 Topic4 - 돌멩이 수프와 삶은 개구리

변화의 촉매가 되라.

조그마한 것으로 시작할 수 있도록 유도하라.

그 조그마한 것으로 사람들을 설득하고, 더 많은 것을 만들어낼 기회를 마련하라.

큰 그림을 기억하라

당장 하고 있는 일에만 정신을 쏟지 말고, 주변에 무슨 일이 벌어지는지 늘 살펴보고 주의를 가져라.

📌 Topic5 - 적당히 괜찮은 소프트웨어

사용자나 미래의 유지 보수 담당자 혹은 자기 자신이 마음의 평화를 유지하기에 적당한 소프트웨어를 만들어라.

주의 할것!!!!

→ ‘적당히 괜찮은’은 너덜너덜하거나 형편없는 코드를 의미하지 않는다.

기본적인 부분은 만족하며, 적당히 괜찮게 사용자의 요구를 충족하는 것을 뜻한다.

타협 과정에 사용자를 참여시켜라

많은 사용자는 멋지고 휘황찬란한 버전을 위해 1년을 기다리기보다 차라리 오늘 당장 좀 불편한 소프트 웨어를 사용하고 싶어한다.

멈춰야 할 때를 알라

완펵을 기하느라 프로그램을 과도하게 장식하거나 지나치게 다듬느라 망치지 말라.

완벽하지 않더라도 괜찮다. 완벽이란 불가능하다.

📌 Topic2 - 지식 포트폴리오

스스로 무엇이든 한 번 해본 다음, 습관을 들여 따라 할 절차를 만들고, 뇌에 각인될 때까지 반복하라.

포트폴리오 만들기

  • 주기적인 투자
    • 방해받지 않을 수 있는 시간과 장소를 마련하여 계획을 마련하라.
  • 다각화
    • 컴퓨터 분야의 지식은 빠르게 변화한다.
    • 더 많은 기술에 익숙하다면 변화에 더 잘 적을할 수 있다.
    • 기술외의 분야도 포함하여 필요한 다른 역량도 잊지 말고 투자하라.
  • 리스크 관리
    • 다양한 스팩트럼을 관리하라.
    • 기술 달걀을 모두 한바구니에 담지 말라.
  • 싸게 사서 비싸게 팔기
    • 새롭게 떠오르는 기술에 관심을 기울여라.
  • 검토 및 재조정
    • 지난달에 인기있었던 기술이 한 달 만에 인기없는 기술이 되어있을 수 있다.

목표

  • 매년 새로운 언어를 최소 하나는 배워라
    • 몇 가지 서로 다른 접근법을 알면 사고를 확장하고 판에 박힌 사고에 갇히는 걸 예방할 수 있다.
  • 기술 서적을 한 달에 한 권씩 읽어라.
    • 깊이 있는 지식을 원한다면 긴 글 형식의 책을 읽어라.
  • 기술 서적이 아닌 책도 읽어라
    • 사람을 대할 때는 완전히 다른 종류의 기술이 필요하다.
  • 수업을 들어라
  • 지역 사용자 단체나 모임에 참여하라
  • 다른 환경에서 실험해 보라
  • 요즘 흐름을 놓치지 말라

학습의 기회

늘 읽을 거리를 준비하고, 새로운 지식을 탐하라.

어떤 질문이던 스스로 답을 찾지 못한다면 찾아줄 누군가를 찾아라.

비판적 사고

상업주의의 힘을 절대 과소평가하지 말라.

검색 엔진의 첫머리 결과, 서점에서 특별하게 취급하는 책 등 그것은 정확한 - 인기있는 무엇이 아닐 수 있다.

  • 왜냐고 다섯번 묻기
  • 누구에게 이익이 되는지 생각하기
  • 어떤 맥락인지 파악해보기.
  • 언제 혹은 어디서 효과가 있을지 생각해보기
  • 왜 이것이 문제인지 되짚어보기

📌 Topic7 - 소통하라

효과적인 소통 없이는 아무리 훌륭한 아이디어라도 고립된다.

1. 청중을 알라

그들이 무엇을 궁금해하는지, 좋아하는지 이해하고 소통하라.

2. 말하고 싶은게 무엇인지 알라

무엇을 말할지 미리 계획하고 개요를 작성하라.

그리고 계속 다듬으며 어떻게 사람들에게 내 이야기를 잘 표현할 수 있을지 생각하라.

3. 때를 골라라

말하는 내용이 중요한것도 사실이지만, 듣는 사람이 필요한 시점도 적절하게 하는것이 중요하다.

4. 스타일을 골라라

듣는이가 어떤 스타일인지 어울리는 표현으로 전달하라.

5. 멋져 보이게 하라

기본적인 맞춤법을 확인하고, 눈부신 출력물을 만들어 전달하라.

문서의 내용도 중요하지만 어떻게 보이는지도 중요하다.

6. 청중을 참여시켜라

청중의 피드백으로 그들의 머릿속을 도용하라.

7. 경청하라

말하는 이가 다른 사람들의 말을 귀 기울여 듣지 않는다면 그들 역시 말하는 이의 말을 듣지 않을 것이다.

8. 응답하라

간단한 응답이 소통이 되고 그 소통이 더 효과적일수록 많은 영향력을 갖게 될 것이다.

9. 문서화

문서를 늘 손에 닿는 가까운 코드에 작성하라.

반복되고, 자주수정되는 문서화의 중복작업을 최소화 하라

profile
느리더라도 천천히 나아가는 개발자

1개의 댓글

comment-user-thumbnail
2023년 6월 5일

잘 읽고 갑니다 👍

답글 달기