대규모 기술 프로젝트를 구축하는 나만의 접근법 (2023)

4 weeks ago 12

  • 대규모 기술 프로젝트를 진행하면서 동기 부여를 유지하고 완주하는 데에는 일상적인 가시적 결과가 중요함
  • 프로젝트를 크고 모호한 단위가 아닌, 눈에 보이는 작은 단위로 쪼개고, 각 단계마다 실질적인 진행 상황을 확인할 수 있는 방법을 선택함
  • 초기 단계에서는 긴밀한 피드백 루프로 빠르게 데모를 만드는 것이 몰입과 자기 동기 부여에 큰 도움이 됨
  • 자신만을 위해 필요한 기능 위주로 먼저 개발하고, 실제 사용을 통해 계속 보완해나가는 방식이 효과적임
  • 완벽함보다 진전을 중시하며, 작게 성공하는 경험을 반복적으로 확보하는 것이 긴 프로젝트의 완주로 이어짐

시작점에서

  • 대규모 프로젝트를 시작할 때 가장 큰 고비는 어디서부터 시작하는지 결정하는 부분임
  • 모든 구성 요소를 한 번에 고려하면 너무 막연해 흥미를 잃기 쉬움
  • 실질적으로 빠른 결과를 볼 수 있는 작은 단위부터 착수하는 것이 중요함
  • 각 서브 프로젝트는 독립적이며, 뚜렷한 완료의 징후를 제공해야 함
  • 경험이 많을수록 프로젝트의 대략적인 모양새와 서브컴포넌트를 더 잘 파악할 수 있음

초기 결과 만들기

  • 초기 작업은 겉으로 드러나는 부분이 적어 진척이 보이지 않을 수 있음
  • 이럴 때 자동화된 테스트(예: 유닛 테스트) 를 적절히 활용해 가시적인 결과를 얻는 것이 중요함
  • 예를 들어 터미널 파서를 만들 때, 입력 문자열에 대한 파싱 결과를 테스트로 바로 확인함
  • 반복적으로 테스트가 통과하는 경험 자체가 성취감을 줌
  • 이러한 작은 성공을 통해 전체 프로젝트 진행에 대한 객관적 증거를 계속 쌓을 수 있음

빠르게 데모 만들기

  • 초기 목표는 완벽한 서브컴포넌트가 아니라 데모를 위한 충분한 구현
  • 장기적으로 필요한 복잡성(예: 데이터베이스, 고급 자료구조 등)은 일단 미뤄두고 간단한 구현으로 빠른 전진을 최우선 함
  • '완벽은 진전을 방해하는 적이 될 수 있음' 을 항상 유념함
  • 일주일에 한두 번씩 간단한 데모 제작을 목표로 함
  • 불완전한 데모라도 직접 확인하며 직관적 피드백을 받을 수 있고, 이는 동기 부여에 크게 기여함

나 자신을 위한 개발

  • 특히 개인 프로젝트에서는 본인이 필요로 하는 기능부터 구현하며, 이를 스스로 채택해 사용해보는 과정을 중요시함
  • 직접 쓰면서 부족한 점을 체감하고, 실제로 필요한 기능에 집중하여 개선하며 진짜 사용자 입장에서 프로젝트를 발전시킴
  • 사용 초기에는 불편이나 버그가 드러나지만, 이는 다음 할 일을 명확하게 알려줌
  • 본인이 쓴 소프트웨어를 사용하는 자부심이 프로젝트 지속을 돕는 요인이 됨
  • 처음엔 불필요한 기능(스크롤, 마우스 선택, 탭 등)을 모두 생략함

프로젝트 전체를 패키징하는 방법

  • 전체 문제를 눈에 보이는 작은 문제로 쪼갬. 각 문제는 실질적인 결과를 확인할 수 있어야 함
  • 각 작은 문제는 데모 제작을 위한 충분한 수준까지만 해결하고 다음 문제로 넘어감
  • 가능한 빨리 작동하는 데모를 만들고, 이후 기능을 반복적으로 추가함
  • 우선적으로 본인 사용에 의미 있는 기능을 구현함
  • 필요시 각 컴포넌트를 반복적으로 개선하며 이 과정을 순환함

결론

  • 위의 방식을 통해 개인, 그룹, 업무, 학업 등 다양한 프로젝트에서 스스로 동기를 부여하며 완주함
  • 배포나 툴링보다는 실제로 어떤 방식이 지속적인 동기 유지를 가능하게 하는지에 초점을 둠
  • 모든 사람에게 같은 방법이 맞지는 않지만, 눈에 보이는 진행 결과가 장기 프로젝트 완주에 가장 큰 힘이 됨
  • 본인의 흥미와 동기 부여 방식을 이해하고 그에 맞는 작업 프로세스를 구축하는 것이 중요함

Read Entire Article