펫 프로젝트란?

Subin·2019년 12월 1일
1

부분 발췌

목록 보기
2/2

내게 있어 최고의 자가 학습, 자가 훈련 방법은 펫(Pet) 프로젝트다. 펫 프로젝트는 취미생활과도 비슷한 나만의 소프트웨어 프로젝트다. 대신 일정이나 예산 등 압박 요인이 아무 것도 업삳. 수익을 낼 필요도 없고 요구사항도 내 마음대로다. 특히 어떤 기술과 방법론을 정용할 것인지는 내키는 대로 정할 수 있다. 내가 바라 사장이다. 회사의 실제 업무 프로젝트에서는 가장 먼저 문제 도메인을 이해하고 그 다음에 기술적인 결정을 내리고 코드를 작성한다. 제품 오너, 사용자, 비즈니스 담당, 마케팅 담당 등 프로젝트에 참여한 모든 이해 관계자들과 대화하면서 비즈니스 아이디어에 기여하게 된다. 건강한 애자일 환경이라면 이러한 대화가 프로젝트 내내 자주 일어난다. 고객이 성취하려는 것과 프로젝트가 다루는 범위를 고려하여 가장 적합한 기술을 선택하여 개발한다. 펫 프로젝트는 완전히 반대로 진행한다. 먼저 무엇을 배울지, 즉 어떤 실행 관례, 실행 원칙, 방법론, 기술을 배울지 정하고 그 다음에 그것을 이용해서 해결할 문제를 찾는다. 미리 시험해 볼 수 있는 펫 프로젝트가 있으면 특정 기술이 어떤 문제를 해결하는 데 적합한지 훨씬 쉽게 파악 가능하다. 펫 프로젝트는 매우 안전한 환경에서 시험하고, 발견하고, 배우고, 즐길 수 있는 기회를 만든다. 실제 프로젝트에 적용할 수 있는 좋은 경험도 얻을 수 있다.
펫 프로젝트는 실제 프로젝트의 몇 가지 측면을 미리 경험할 수 있다는 점에서도 중요하다. 예를 들면 먼저 프로젝트 아이디어가 필요하다. 프로젝트 아이디어를 찾았다면, 기능들을 상세화하고 백로그에 할 일들을 정리하여 준비해야 한다. 백로그를 준비한다는 것은 작업을 분할하고, 그 우선 순위를 생각하고 대력적인 일정을 추산하고, 사용자 스토리를 작성하는 것들을 의미한다. 그 밖에도 여러 가지가 있다. 테스트, 애플리케이션 배포(deploy), 버전 컨트롤, 지속적인 통함(integration), 사용성, 사용자 인터페이스, 코드 베이스, 설계, 데이터베이스와 같은 것들도 필요하다. 애플리케이션을 처음으로 구동해서 시험하는 순간부터, 적용된 기술이나 기능(비즈니스)을 바꾸고 싶을 것이다. 실제 프로젝트에서도 그런 일이 똑같이 일어난다. 이 모든 것들을 펫 프로젝트에서 꼭 해야만 하는 것은 아니지만 원한다면 할 수도 있다. 우리는 펫 프로젝트로 실제 프로젝트의 어떤 측면이든 배울 수 있다. 심지어 프로젝트에 대한 비즈니스 계획가지 작성해도 된다. 시장이자 모든 결정권자이기 때문에 무언가를 배울 수만 있다면 원하는 것은 무엇이든 할 수 있다. 이것이 펫 프로젝트의 핵심이다.
무엇보다도 펫 프로젝트는 재미있어야 한다. 펫 프로젝트를 시작할 때의 가장 흔한 문제는 좋은 프로젝트 감을 찾는 것이다. 다행히도 너무 고민하지 않아도 된다. 펫 프로젝트는 새로운 비즈니스를 시작하는 것이 아니다.
흥미를 가지고 열정적으로 할 수 있는 주제를 찾으면 된다. 여행을 좋아한다면 여행에 대한 웹사이트를 만들면 되고, 달리기를 좋아한다면 얼마나 많이 달렸는지에 대해서 진도를 보여주고 관리해주는 앱을, 일상을 효율적으로 관리하는 데 관심이 많다면 나만의 일정 관리 앱을 만들면 된다. 비슷한 애플리케이션이 이미 수천 개 있어도 상관없다. 항상 뭔가 다르게 하고 싶은 요소를 찾을 수 있다. 열정적으로 관심이 있는 주제를 선택하면 뭔가 개선하고 기능을 추가하는 데 아이디어가 마를 날이 없다는 장점이 있다 그 일을 하고 만든 결과물을 항상 사용하고 싶을 것이다. 이렇게 되면 실제 프로젝트에 더 가깝게 펫 프로젝트를 수행할 수 잇다. 이러한 훈련들이 쌓이면 프로페셔널 커리어 개발에 매우 큰 영향을 끼칠 것이다.
펫 프로젝트에서 흔한 질문은 그것을 실제 비즈니스화 해야 할지의 여부다. 이에 '상황에 따라 다르다'라고 답하겠다. 보통의 경우에는 '아니다'라고 하겠지만 말이다. 비즈니스를 원한다면, 코드를 작성하고 새로운 기술들을 배우는 것은 최우선 순위가 될 수 없다. 대신 코드를 한 줄이라도 작성하기 전에 먼저 린 스타트업 개념에 대한 자료를 찾아보고 익숙해지기를 권한다. 펫 프로젝트를 실제 비즈니스로 전환하기는 상당히 고통스럽고 실망만 가득한 일이 되기 쉽다. 나역시 그러한 시도를 했다. 자신의 애플리케이션과 코드 베이스에 너무 애착을 가진 나머지, 시장이 실제로 원하는 것을 못 볼 가능성이 정말 높다. 펫 프로젝트를 비즈니스화하고 싶다면 비즈니스 자체에 집중하고, 작성된 코드들을 시장이 원하는 방향이 아니라면 얼마든지 버릴 준비가 되어 있어야 한다. 즉 코드에 대한 애착을 버리고 비즈니스 요구에 맞는 최소한의 것만 남기고 깨끗이 정리할 수 있어야 한다.

발췌 [소프트웨어 장인 정신]

profile
정확하게 알고, 제대로 사용하자

0개의 댓글