본문 바로가기

도서/실용주의프로그래머_#bookclub#TIL

실용주의 프로그래머 #17일차

 

🧑🏻‍💻 오늘 TIL 3줄 요약

 

  • 프로그래머는 사람들이 자신이 원하는 바를 깨닫도록 돕는다.

 

  • 요구사항 문서는 의뢰인을 위한 것이 아니다.

 

  • 코드에 혼자 들어가지 말라.

 

TIL (Today I Learned)

 

  • 2022. 4. 3.

 

📕 오늘 읽은 범위

 

  • 8장. 프로젝트 전에

 

🙂 책에서 기억하고 싶은 내용

 

  • 애자일 선언 Agile Manifesto은 “공정 process과 도구보다 개인과 상호 작용”으로 시작한다. 하지만 역설적이게도 거의 모든 “애자일” 프로젝트가 어떤 공정과 도구를 사용할지에 대한 논의로 시작한다. 하지만 아무리 세심하게 계획하거나, 최고의 “모범 사례”를 따라 하더라도, 생각하기를 대신할 수는 없다. 여 러분에게 필요한 것은 특정한 공정이나 도구가 아니다. _p.349

 

Topic45. 요구 사항의 구렁텅이

 

  • Tip 75. 자신이 뭘 원하는지 정확히 아는 사람은 아무도 없다.

 

  • 진짜 세상은 엉망이고 갈등이 넘쳐나며 알 수 없는 점도 많다. 무엇을 다루든 정확한 명세란 것은 거의 불가능하다고 볼 수 있다. 그래서 우리 프로그래머들이 등장한다. 우리의 일은 사람들이 자신이 원하 는 바를 깨닫도록 돕는 것이다. 사실 이게 우리의 가치가 가장 빛나는 부분일 것이다. 

 

  • Tip 76. 프로그래머는 사람들이 자신이 원하는 바를 깨닫도록 돕는다.

 

  • Tip 77. 요구 사항은 피드백을 반복하며 알게 된다.

 

  • 그러니 실용주의 프로그래머는 프로젝트 전체를 요구 사항 수집 과정으로 보아야 한다. 그래서 우리는 짧은 주기로 반복하는 것을 선호한다. 반복 주 기가 끝날 때마다 직접 의뢰인에게 피드백을 받는다. 그러면 우리가 궤도에 서 벗어나지 않을 수 있다. 혹시 우리가 정말로 잘못된 방향으로 가더라도 잃어버리는 시간을 최소화할 수 있다.

 

  • Tip 78. 사용자처럼 생각하기 위해 사용자와 함께 일하라.

 

  • Tip 79. 정책은 메타데이터다.

 

  • 요구 사항 문서는 의뢰인을 위한 것이 아니다.

 

  • 의뢰인이 프로그래머를 고용하는 이유는 의뢰인은 고차원적이고 모호한 측면이 있는 문제를 풀고 싶어 하는 반면, 프로그래머는 세부 사항과 미묘한 차이 하나하나에 관심을 두기 때문이다. 요구 사항 문서는 개발자를 위해서 쓰는 것이다.

 

  • Tip 80. 프로젝트 용어 사전을 사용하라.

 

Topic 46. 불가능한 퍼즐 풀기

 

  • 이런 퍼즐을 푸는 비법은 상 상 속이 아닌 실제 제약 조건을 알아내고, 그 속에서 해법을 찾는 것이다. 어떤 제약 조건은 절대적이지만, 다른 것들은 단순한 지레짐작에 불과하다. 절대적 제약 조건은 그것이 아무리 불쾌하거나 어리석어 보여도 꼭 따라야 한다.

 

  • Tip 81. 생각의 틀을 벗어나지 말고, 틀을 찾아라.

 

  • 자신만의 방법에서 빠져나오라.

 

Topic 47. 함께 일하기

 

  • 현재 늘 혼자서 프로그래밍을 하고 있다면 짝 프로그래밍을 시도해 봐도 좋 을 것이다. 처음에는 어색할 테니 한 번에 두어 시간씩 최소 2주만 해 보라. 새로운 아이디어를 모아야 하거나 골치 아픈 문제를 분석해야 한다면 몹 프 로그래밍 시간을 가져 봐도 좋을 것이다.

 

  • Tip 82. 코드에 혼자 들어가지 말라.

 

Topic 48. 애자일의 핵심

 

  • Tip 83. 애자일은 명사가 아니다. 애자일은 무언가를 하는 방식이다.

 

 

🤔 오늘 읽은 소감은?

  • 무엇을 원하는지 구체적으로 알지못하는 클라이언트들은 이미 많이 겪어봤고 앞으로도 많이 겪어 볼 것이다. 이 책을 읽고 마음가짐을 바꿔야 겠다는 생각이 들었던게, 항상 장님 코끼리 그리듯이 요청하는 클라이언트들을 책망만 했었지만, 이젠 우리의 일이 원래 그런일이라는 것을 인정해야하는 순간이 온 것 같다. 자기가 무슨일을 원하는지 정확히 아는 사람은 없다고(있긴 할것이다!) 전제를 해야하고, 우리는 그게 정확히 무엇인지 알아내는데 도움을 주는 포지션인 것이다. 그래서 주기를 짧게 잡고 수시로 클라이언트와 소통을 통해 서로 윈윈하는 결과를 내야 할 것이다.