설계 문서보다 Throwaway Code 선호 현상

4 weeks ago 12

  • 우리는 소프트웨어 개발이 깔끔하고 질서 있는 흐름을 따르기를 상상함

    • 설계 문서를 작성하고, 작은 변경 사항을 PR로 롤아웃하여 기능을 구현함
    • 깃 히스토리가 깔끔하고 질서 정연하게 보임
    • 그러나 현실은 다름
  • 설계 문서와 실제 구현의 차이

    • 설계 문서를 그대로 구현하는 것은 환상임
    • 코딩을 시작하면 설계 문서의 내용을 수정하게 됨
    • 계획은 적과의 접촉에서 살아남지 못함
  • 새로운 설계 방법론: 코딩 몰입

    • 초안 PR을 사용하여 프로토타입을 구현함
    • 초기에 피드백을 받아 접근 방식을 조정함
    • 초안 PR을 역사적 설계 아이디어로 문서화함
    • 초안 PR을 완전히 버릴 준비를 함
    • 초안 PR에서 점진적으로 PR을 단계적으로 진행함
    • 각 PR을 단계적으로 테스트하고 견고성을 보완함
  • 성숙함의 중요성

    • 코딩한 아이디어를 버릴 수 있는 능력이 중요함
    • 코드 라인이 아닌 조직적 지식의 전달이 중요함
    • 중요한 부분에 대해 초기에 정렬하여 프로토타입 작업이 낭비되지 않도록 함
  • PR을 문서화로 사용하는 방법

    • PR은 개발자에게 가장 좋은 문서화 형태 중 하나임
    • PR은 특정 시점의 상태를 반영하는 역사적 유물임
    • 설계 문서는 종종 현실과 다른 정보를 제공함
  • 프로토타입의 중요성

    • 프로토타입은 1000개의 설계 문서보다 가치가 있음
    • 변화를 주도하려면 문서가 아닌 코드로 해야 함
    • 조직이 프로토타입을 해답이 아닌 질문으로 보아야 함
  • 설계 문서의 유용성

    • 다양한 이해관계자와의 피드백을 조직하고 아카이브하는 데 유용함
    • 아이디어가 너무 개념적이거나 장기적일 때 유용함
    • 코딩보다 글로 아이디어를 표현하는 것이 더 효율적일 때 유용함
    • 조직이 첫 번째 솔루션을 버릴 수 있는 규율이 없을 때 유용함
    • 주니어 직원이 시니어 개발자의 아이디어에 대해 안전하게 질문할 수 있는 환경을 제공함
  • 설계 문서의 잘못된 사용

    • 덜 숙련된 개발자에게 프로세스를 늦추기 위해 사용됨
    • 문서화로 사용되지만 빠르게 구식이 됨
    • 모든 설계 문제를 해결하려고 하지만 실제 문제는 코딩을 통해 발견됨
  • 팀이 규율을 가질 수 있다면 해킹이 설계보다 훨씬 효율적임

    • 조직 내에서 이러한 규율을 만들 것을 권장함
    • 결국 코드는 말보다 더 큰 힘을 가짐

Read Entire Article