[ COMMIT ] 비즈니스 마인드를 가진 개발자가 되는 방법 후기

#1 참석을 하게 된 계기

 

예전에 정글에서 팀 프로젝트를 할 때 멘토님이 개발자란 기술 그 자체 뿐만 아니라 사용자를 항상 염두해둬야한다고 하셨다. '사용자를 염두해야한다는 것', 나는 그 의미가 궁금해서 멘토님께 질문을 드렸다. 멘토님이 자세히 설명하셨지만 나의 경험 부족으로.... 이해를 못했다.

 

정글 수료 후 취업 준비를 하면서 메일을 받게 되었다. 구름 COMMIT에서 '비즈니스 마인드를 가진 개발자라 되는 방법'을 주제로 하는 세미나였다. 연사님도 토스에서 프론트 챕터 리드를 맡고 계셨다(참고로, 토스는 사일로라는 서비스 단위의 조직에서 같은 직군들을 묶어 놓은 그룹을 챕터라고 부른다). 마침 프론트엔드로 취업을 고려하고 있었고 '비즈니스 마인드'가 '사용자를 염두한 것'과 연관이 있을 것 같아서 참가 신청을 했다.

#2 기억에 남는 것

연사님이 개발자와 기업의 관계를 정의하는 것부터 시작해서 기업이 개발자에게 바라는 것,  비즈니스 마인드를 가진 개발자를 정리하는 것으로 세미나가 마무리되었다. 다음은 세미나를 들으면서 필기한 것들을 정리한 것이다.

개발자란?

개발자는 “기업에 고용되어” 코딩으로 현실의 문제를 해결하는 사람
  • 개발자(나)의 비즈니스: 기술서비스를 판매하는 자
  • 회사의 비즈니스: 현실의 비즈니스 문제를 해결하는 해결사 → 사용자의 비즈니스 문제를 해결

개발자(나)의 비즈니스

💡우리는 기술 서비스를 판매하는 판매자이다.
  • 역으로 기업은 우리의 기술서비스를 구매하는 자이다. 즉, 고객님❤️이다.

기업

💡 기업은 돈을 벌기위한 모임이다.
  • 회사는 직원에게는 미션을 강조하긴한다.
  • 하지만 돈을 벌지 못하면 미션을 달성하지 못한다.
  • 돈을 버는 것은 생존에 필수불가결한 문제다.
  • 따라서 기업은 개발자를 고용함으로써 돈을 벌어야한다.

기업과 개발자의 관계

💡 개발자는 기업에게 기술서비스를 제공하고 기업은 개발자에게 금전적 보상을 준다.

내가 제공하는 기술서비스는 얼마일까?

💡시장은 누구든 최소한의 비용으로 최대한의 이익을 얻고 싶어한다.

기업은 제한적인 정보를 통해 개발자를 고용한다.

시장은 모두가 최대이익을 얻기 위한 게임이다.

  • 개발자는 최소한의 일로 많은 돈을 벌고 싶다
  • 기업은 최소한의 비용으로 최대한의 일을 뽑아내고 싶다

개발자가가 제공하는 기술서비스

  • 좋은 설계: 낮은 결합도와 높은 응집도를 기반으로 적절한 추상레벨을 갖춘 좋은 설계를 한다
  • 제품 생산: 실질적인 프로그래밍 행위를 통해 제품 생산한다
  • 장애 해소 조치: 장애 발생시 장애 해소 조치를 한다
  • 조직관리: 채용, 인사, 평가, 보상, 인재육성과 같은 조직관리를 한다

그런데 기술서비스는 가치를 책정하기 어렵다. 어떻게 책정을 해야할까? 그러려면 기술서비스의 본질을 알아야한다.

기술서비스의 본질: 기업이 개발자에게 바라는 것

💡개발자의 장인정신은 사용자에게 초점이 맞춰져 있어야한다.

기업의 머릿속은 다음과 같다.

① 기술서비스를 통해;
사용자의 문제를 해결함으로써;
매출발생 후;
④ 인적 자원에 추가 투자하여;
⑤ 더 많은 기술서비스를 제공;
  • 기술이란 그 자체가 아니라 사용자의 문제를 해결하는 데에 있어서 존재의의가 있다.
  • 문제 해결이 매출 발생으로 이어져야한다.
  • 회사의 비즈니스: 사용자의 문제를 해결함으로써 매출 발생
  • 개발자는 그의 기술서비스가 기술 자체 뿐만 아니라 사용자의 문제를 해결하고 매출 발생(이익 증가 또는 비용 감소)가 일어날 수 있음을 설득할 수 있어야한다.
  • 즉, 개발자의 장인 정신은 사용자에게 초점이 맞춰져 있어야한다.

다음을 예로 들 수 있다.

[사용자들의 문제]
빨래질할 방망이가 필요해요

[해결책]
1. 그냥 빨래 방망이
2. 고급 황금으로 한땀한땀 깎은 빨래 방망이
3. 세탁기
4. 새 옷을 준다

여기서 정답은 사용자마다 다르다. 어떤 사용자는 1번처럼 당장 필요한 빨래 방망이가 필요할 수 있고 어떤 사용자는 옷 자체에 문제가 있을 수 있다. 마찬가지로 개발자에게 기능 개발을 요청을 했는데 이틀 뒤까지 필요하면 설계보다 빠르게 구현하는 것이 우선이고 어느 정도의 기간이 있고 완성도를 요구한다면 설계를 신경을 써야한다.

결국에는 사용자의 상황에 따라 해결책이 달라지고 이를 고려해서 솔루션을 제공하는 것이 요즘 개발자에게 필요한 역량이다.

기업에서는 개발자에게 어떤 점을 보려고 할까

하드스킬은 당연히 높고 중요하다.

그 뿐만 아니라 자신이 이뤄온 성과나 업적에 대한 행동근거가 명확한 개발자를 찾고 있다.

예시

개발자: TTFB 10% 개선했다.
PO: 굿굿. 근데 왜 함?
개발자: 앱이 느려.
PO: ???(공감이 안됨...)???
  • 개발자는 자신의 리소스를 투입해서 특정 문제를 해결했다.
  • 그런데 주변인들을 포함한 사용자들은 별다른 차이점을 느끼지 못했다. 즉, 방망이를 잘 깎은 상황에 불과하다. → 사용자의 문제를 해결하는 데에 기여한 것이 아니다.
  • 훌륭한 방망이와 같은 기존 지원자들의 답변
    • 가독성 향상
    • 선언적 코드 작성
    • 응집도 높고 결합도 낮은 설계
    • 장애 발생률 줄임
    • 성능 향상

인터뷰 예시

LCP 20%를 개선하겠다고 결정하게 된 계기는?

최종적으로 개선하기로 결정하고 실천했는데 왜 가장 효율적인 방법이라고 생각했는지?

실제 성능 개선이 되었을 때 사용자들에게 어떤 임팩트가 뭐였는지?

작업이 팀의 목표에 어떤 식으로 도움이 되었는지?
  • 개발자는 사용자의 문제해결과 매출발생을 바탕으로 기술서비스를 제공해야한다.
  • 즉, 사용자의 문제를 해결하는 지 여부, 회사가 지향하는 목표에 다가가는 지 여부를 의사결정의 근거로 삼아야한다.

결론: 내가 제공하는 기술 서비스에 대한 본질적인 가치

스스로에게 물어보자

1. 팀의 목표는 무엇인가?
2. 개발 리소스를 그 작업에 투자한 이유는 무엇인가?
3. 사용자 문제 해결에 어떤 도움을 줬는가?
4. 사용자 지표의 개선이 회사의 비즈니스에 어떤 도움을 줬는가?

개발자는 단순한 기술자가 아니라 기술서비스를 제공하는 판매자인 것 뿐만 아니라 기업에 소속되어 비즈니스 문제를 해결하는 해결사이어야한다.

Q&A

1) 신입 개발자가 비즈니스 마인드를 가지려면?

결말 부분의 질문 4개를 스스로에게 항상 되뇌이기

2) 비즈니스 임팩트를 평가하는 방법론은 널리 퍼져 있는건지?

OKR이 움직여졌는지 여부로 판단하면 된다. 회사가 중요하게 보는 지표 등을 봐야한다.

3) 실무 경험 없는 개발자들은 어떻게 비즈니스 마인드로 개발하는가?

서비스가 사용자의 어떤 문제를 해결하기 위해 존재하는가를 되뇌어야한다. 사람들이 어떤 혜택을 받고 있는지 봐야한다.

4) 비용을 어떻게 환산하는가

인건비, 시간, 이슈 처리 등을 통해 파악할 수 있다.

5) AI가 생산성에 영향을 주는 정도

커서라는 AI IDE가 나왔는데 코드에 대한 설명도 해준다. GPT는 사용해도 된다. 하지만 사용하는 지 여부는 스스로의 의사결정에 따라야한다. 참고로, AI와 인간의 구분은 의사결정을 스스로 할 수 있는가이다.

6) 비즈니스 문제를 파악하는 법

  • 예를 들어 앱 리뷰에 들어가서 별점이 가장 낮은 리뷰투버 확인하기
  • 사용자에게 직접 물어보기

7) 개발자가 자신의 가치나 비즈니스 역량을 구체적으로 어떻게 발휘하는지

  • 돈을 기준으로 생각하자
  • 예를 들어 비용은 7억원인데 900만원으로 대응했다.
  • 일단 정량 근거를 바탕으로 주장할 수 있어야하고 가장 손쉬운 지표는 돈이다.

8) 창업을 할 사람이란?

꿈을 팔 수 있는 사람

비전을 제시할 수 있는 사람

초현실주의자는 창업보다는 주식이 낫다

9) 비즈니스적 마인드를 가지려면?

돈을 벌어봐라

10) 신입 개발자가 기업 면접 준비 하는 법

링크드인에 회사 이름을 쳐라

직원 개발자의 정보를 봐라

  • 시니어 분들이 있는 지 여부를 판단할 수 있다

회사의 상태 파악하는법

  • 등기 떼기 → 우선주, 보통주 떼기
    • 보통주 지분 파악하면 창업자의 지분 확인 가능
    • 지분 변동 이력 파악
  • 회사의 서비스 파악하기
  • 더VC, 혁신의 숲으로 회사의 이름을 검색해서 투자 정보 파악 가능
  • 스타트업이라면 회사 대표님 무조건 만나기
    • 대표는 안 바뀐다
    • 대표와의 궁합이 중요하다
      • 비전
      • 성격 등

#3 회고

  • 이력서, 포트폴리오, 자소서를 어떤 기술로 썼는지 단순히 나열하기보다는 어떤 문제를 해결하기 위해 어떤 접근을 했는지의 방식으로 수정해야겠다.
  • 기술서비스도 시간과 비용이라는 지표를 통해 그 가치를 정량적으로 환산할 수 있다.
  • 주장할 때 뒷받침할 객관적 근거가 있는 것과 없는 것은 차이가 매우 크다. 그런데 객관적인 근거를 마련하는 것은 생각보다 어렵지 않다. 근거를 제시할 수 있다면 받아들일 지, 반박할 지는 상대방이 결정할 요소이다.

소세지 빵 맛있다.