44P by xguru 5달전 | favorite | 댓글 9개
  • README 주도 개발 : 소프트웨어 개발시 README를 먼저 작성하는 접근 방식
  • TDD, BDD, Extreme Programming, SCRUM 등의 다양한 개발 방법론과 기술에 대해 많이 듣게 됨
    • 하지만, 우리가 개발하는 소프트웨어가 사용자의 필요를 충족시키지 못하면 모든 것이 무의미함
    • 완벽한 구현이라도 잘못된 명세를 따르면 무가치하며, 문서화되지 않은 아름다운 라이브러리도 거의 무가치함
    • 소프트웨어가 잘못된 문제를 해결하거나 사용법을 알 수 없으면 심각한 문제 발생

해결책: README 부터 작성하기

  • Readme를 먼저 작성해야 하는 이유
    • 코드, 테스트, 스토리 등을 작성하기 전에 먼저 Readme부터 작성
    • Readme 작성은 좋은 소프트웨어를 만들기 위한 필수 단계
    • 소프트웨어에 대해 글로 작성하기 전까지는 무엇을 코딩할지 명확하지 않음
    • Readme를 통해 프로젝트를 체계적으로 생각할 수 있음
  • README 우선 작성의 이점:
    • 프로젝트를 체계적으로 생각할 기회:
      • 코드를 변경할 필요 없이 프로젝트를 체계적으로 생각할 수 있음
      • 코딩 전 프로젝트의 구조와 포함될 API를 고민할 수 있음
    • 우수한 문서 확보:
      • 프로젝트 초기에 높은 동기부여와 흥미를 가진 상태에서 문서를 작성할 수 있음
      • 나중에 Readme를 작성하는 것은 지루하고 중요한 세부 사항을 놓칠 수 있음
    • 팀 작업의 효율성 증가:
      • 팀의 다른 개발자들이 프로젝트 완성 전에 인터페이스에 대한 정보를 공유받아 다른 작업을 자신있게 시작할 수 있음
      • 명확한 인터페이스 없이 작업하면 대규모 코드 재작업이 필요할 수 있음
    • 구체적인 토론 기반 제공:
      • 텍스트로 제안된 해결책을 작성하는 간단한 행위로 모두가 명확한 아이디어를 가지고 논의할 수 있음
  • README 주도 개발(RDD)의 특징:
    • RDD는 Documentation Driven Development(DDD)의 하위 집합이나 제한된 버전으로 볼 수 있음
    • RDD는 단일 파일로 설계 문서를 제한하여 과도한 사양 작성의 문제를 방지함
    • 작은 모듈화된 라이브러리를 유지하도록 유도함

결론

  • Readme를 작성하는 과정을 진정한 "창작 행위"로 생각할 것
  • 이 문서에 당신의 모든 기발한 아이디어가 표현되어야 하며, 문서 그 자체로 창의성과 표현력을 증명하는 증거가 되어야함
  • Readme는 코드베이스에서 가장 중요한 문서가 되어야 하며, 제일 먼저 작성하는 것이 올바른 접근 방식임

소프트웨어든 소설이든 영화든 그 어떤 형태의 창작물을 만들 때에도
종이 앞에 두고 설계와 기획을 하면서 만들면 좀 더 디테일한 것들을 쉽게 챙길 수 있지 않을까 싶습니다.. :)

가장 기본적인 것을 그동안 잊고 살았는데 이제 실천해봐야 겠습니다.

의도치않게 제가 업무하는 방식과 맥락이 비슷하네요.
그 부분이 "README" 형태로 산출되는 것 같네요.

저는 일을할 때 What, Why, How 등을 명확히 작성하고 진행하면서 진행해야할 일에 대한 쉐입을 잡아가는 편인데 그와 비슷하네요

README 주도 개발

저는 연구 조직이라서 연구된 내용을 코드형태로 릴리즈하는 것에 고민이 많았는데, Readme 주도 개발이 저희에게 잘 맞을 것 같다는 생각이 드네요. 연구 시작 단계에서 부터 고민해볼만한 방식같아요.

이와 비슷하게 백엔드할 때 화면보면서 API 문서부터 러프하게 써보곤 하는데,
시행착오를 줄이는데 꽤 도움이 됐습니다.

2010년도 글인데 다른 글을 보다 발견해서 함 올려봅니다.

우리는 그것을 "기본설계"라고 부르기로 했어요.

어찌보면 해결해야하는 문제를 먼저 정확하게 정의하는 것의 중요성처럼 느껴지는군요.