Cover Image for 개발자는 돈을 버는 사람이다

개발자는 돈을 버는 사람이다

회사에서 비즈니스 성장을 목표로 하는 프로젝트에 참여하게 되었습니다. 이 프로젝트에서 새로운 기능을 설계하면서 어떻게 하면 더 멋지게 코드를 작성할 수 있을지 고민만 하며 시간을 허비했습니다. 이 과정에서 시간을 효율적으로 사용하지 못하고 있다는 생각이 들었습니다. 그러면서 문득 이런 생각이 들었습니다. "나는 멋진 코드에 집착하는 너드인가, 아니면 돈을 버는 사람인가?"

영리 목적의 집단에 개발자로 고용되었다면, 단순히 멋진 코드와 설계만을 고집하는 것이 아니라 비즈니스 가치를 창출하는 일에도 신경을 써야 합니다. 물론 끝내주는 설계로 엄청난 소프트웨어를 단기간에 만들 수 있다면 정말로 좋겠지만, 현실은 그렇게 단순하지 않습니다.

1. 비즈니스 가치와 개발
우리는 종종 새로운 기능을 설계하고 구현할 때 기술적인 완벽함에 집착하곤 합니다. 하지만, 기술적인 완벽함이 항상 비즈니스 성공으로 이어지지는 않는 것 같습니다. 이번 프로젝트의 경험을 통해 아래와 같은 생각을 가지게 되었습니다:

  • 기술적 선택과 비즈니스 우선순위: 최신 기술을 사용하여 최고의 성능과 확장성을 끌어낼 수 있었지만, 기존 기술 스택을 유지하고 최소한의 클린코드나 통용되는 베스트 프랙티스를 적용하여 개발함으로써 개발 속도를 높이고 비용을 절감할 수 있었습니다.
  • 사용자 요구와 시장 반응: 고객의 피드백을 반영하여 우선순위를 재조정하고, 초기 단계에서 사용자가 원하는 기능을 제공하는 것이 중요했습니다. (최소한의 핵심 기능 출시 이후 순서에 따라 나머지 기능 출시)

2. 타협과 현실
현실에서는 항상 타협이 필요합니다. 저는 다음과 같은 이유로 타협을 선택했습니다:

  • 시간과 비용의 제약: 무제한의 시간과 자원이 있다면 최고의 결과를 만들 수 있겠지만, 실제 프로젝트에서는 제한된 시간과 예산 내에서 최대의 성과를 내야 합니다.
  • 내 역량의 객관화: 저의 역량과 경험을 고려하여 현실적인 목표를 설정하고, 그 목표를 달성할 수 있도록 했습니다.

3. 결과와 배운 점
결국, 완벽한 설계를 바탕으로 한 소프트웨어를 만들지는 못했지만, 적절한 타협과 현실적인 접근을 통해 프로젝트를 성공적으로 마무리했습니다. 이 과정에서 배운 중요한 배운 점은 다음과 같습니다:

  • 유연성의 중요성: 변화하는 요구사항과 시장 상황에 유연하게 대응하는 것이 중요합니다.
  • 비즈니스 목표와 일치: 개발 목표를 비즈니스 목표와 일치시키는 것도 중요합니다.

여러분의 생각은 어떤가요? 여러분의 개발 철학은 무엇인지도 궁금합니다! 댓글로 의견을 공유해 주세요. 다양한 의견을 듣고 함께 논의해 보고 싶습니다.