2023 3월 세미나
"개발자 원칙"의 저자 이동욱, 박미정, 박성철 님을 직접 모시고 개발자의 생존과 성장 원칙에 관해 깊이 있는 이야기를 나눕니다.
여기 담긴 건, 제 생각
연사님 : 인프랩 CTO 이동욱님
일정과 퀄리티는 트레이드 오프가 있다. 프로그래머에게 요구되는 것은 100점이 아닌
80~90점짜리 프로그램을 기한 내에 완성
하는 일이다.
일정을 잘 지키는 개발자들은 공통적으로
선택의 기로에서 원칙에 따라 빠르게 결정하고 중요한 것만 고민
하더라
결국 좋은 원칙을 가지고 있어야 빠르면서도 90점짜리 프로그램을 만들 수 있을 것이다. 평소에도 고민하는 습관과 직접 만들어보며 테스트해보는 습관이 있어야만, 좋은 원칙을 세울 수 있을 것이라 생각한다.
책을 많이 읽고 찾아보는 것은 좋으나, 정작 내가 문제 해결 방법을 선택할 때 책의 내용을 적용할 수 없다면 무의미하더라.
컴포트 존을 벗어나서 다양한 코드를 짜보는 것이 재밌을 듯 하다.
주민번호를 PK로 쓰다가 주민번호 수집을 불가하도록 법률이 바뀐 뒤 시스템 변경이 필요해진 예.
외부에서 전달 받은 값은 절대 주요키로 선택하지 않는다.
그 밖에 제어할 수 없는 것들
제어할 수 있는 것들
테스트 시 모킹이 필요한 함수와 필요 없는 함수를 분리하는 것을 구체적 예로 보여주심.
제어 가능한 (순수한) 코드를 최대한 늘려나가며,
반대로 제어가 어려운 코드를 격리할 영역에 몰아 넣어 제어할 수 없는 코드가 전염되지 않게 하자.
매우 공감한다.
작년에 외부 서비스 API를 프록시하듯이 쓰는 기능과 API를 만들었었다.
최근에 외부 서비스가 버전 업을 하면서 개발 당시와 사용법이 변경되면서 수정사항이 전염되어 자사 서비스 API까지도 변경이 필요한 일을 겪었다. (심지어 내가 작업했었다 흑..)
최대한 추상화를 잘 하고 구체적인 부분은 따로 뺐어야 했는데, 코드만 분리되어 있지 결국 변경으로 인한 문제가 전염이 된 케이스라고 생각한다. 베스트는 외부 서비스 API를 호출하는 모듈만 변경하여도 모든 기능이 정상적으로 동작하는 것이었다. 이번에 리펙토링하며 제대로 만들어보자는 욕심이 든다.
리더로서 팀을 꾸리는데 있어 하시는 생각.
퇴사자가 Big Tech로 이직하고 팀 분위기가 싱숭 생숭한 분위기에서 CTO님께서 하신 말씀.
이렇게 큰 회사에서도 우리 회사 개발자를 뽑는 것을 보면 우리가 하고 있는 방법이 틀리지 않았다.
다만 우리 회사의 프로덕이 아직 트래픽이 낮은 것 뿐이지,
개발 문화나 프로세스가 틀린 것이 아니니 앞으로 개발자로서 성장에 대해선 의심하지 않아도 될 것 같다.
다만 앞으로 어떻게 회사가 5배 10배씩 성장하는 것을 경험할 수 있을지만 고민하자.
-> 안 좋은 것에서도 좋은 것 찾아내기 습관.
좋은 개발자를 뽑기란 참으로 어렵다. 입사 이후 CTO님을 모신 것 외엔 신규 채용이 전혀 없었다. (힘들다!) 채용은 내가 제어할 수 없는 일이다. 마찬가지로 팀원 및 인력은 내가 제어할 수 없다.
하지만 중요하고 내가 잘할 수 있으며 내가 좋아하는 업무들을 우선순위 별로 나열하고, 하나하나 효율적으로 잘 처리해나가는 것은 내가 제어할 수 있다.
할 수 있는 것에만 집중하는 것은 개인적으로 나에게 아직 부족한 역량이다.
평소에 제어할 수 없는 것으로 인해 스트레스를 받는 일이 잦다.
내가 제어할 수 있는지, 없는지를 먼저 판단을 하고
제어할 수 없는 일이라면 생각을 말고 잘 정리하는 것이 좋은 사고흐름으로 보인다.
우리 회사 CTO님께서 평소 해주시는 말씀이나 태도와 이동욱 CTO님의 말씀이 매우 일치하는 면이 있어 '좋은, 잘하시는 분들께선 다들 비슷한 태도를 가지는구나'라 생각했다.
제어할 수 없는 것에 거리두기
제어할 수 있는 것에 집중하기
연사님 : 무신사 리드 개발자 박미정님
실패의 원인과 그로 인한 문제들.
운영 DB 삭제 빼고는 나도 모두 경험해본 이슈다. 😂
매니저는 정말 어렵겠다고 생각한다.
실패 후 개선한 것들. 그리고 성장한 결과들
성장의 씨앗이 된 실패 경험들을 말했지만, 회피를 했던 실패 경험들도 많았다.
실패를 대하는 방법을 루틴화해서 성장의 씨앗이 되도록 하자.
인지
의식
감정을 배제하고 실패를 다시 바라보는 것은 참 어렵다.
회복
하기지난 날을 돌아보니, 큰 실패 경험을 겪고 그 감정의 여파로 인해 비교적 작은 실패들은 회고하지 않았던 것 같다. 대부분 2번에서 그치고, 3번 4번을 행하지 않은 케이스가 많았던 것 같다.
선정 기준 : 전파 속도가 빠르고, 실패 반복 가능성이 낮은 것.
ex. 버그 있는 코드 배포 -> 코드 리뷰 절차 강화
VS 테스트 코드 작성 문화
( 이미 코드 리뷰 문화가 있었어서 전자 선택)
임팩트 있는 단 한가지만 정하는 것 -> 루틴이 너무 무겁지 않아야 회피하지 않는다.
관리자가 팀/팀원의 실패를 대할 때에도 같은 프로세스를 거칠 수 있도록 함.
다만 루틴을 실행할 수 있도록 돕는 역할
에 집중하기.
이전에 재밌게 읽었던 토스에서의 시간을 돌아보며 글이 떠올랐다.
조직 내 위계를 없애기 위해 '내가 싼 똥 자랑 대회'를 열었었는데, 개발자의 실패 경험을 가볍게 공유하며 심리적 안전감을 만들어주기에 좋은 문화가 아닌가 생각한다.
오늘 실패하신 분들의 내일의 성장을 축하합니다
마음이 따뜻해지는 강연이었습니다. 센세 😹
어서 사내 회고 문화를 도입해보고 싶다.
연사님 : 컬리 테크리더 박성철님
1982년, 중학교 2학년때부터 개발에 빠지셔서 현재까지 프로그래밍을 통해 세상과 소통하는 사람.
개발자 히포크라테스 선서를 소개..
시작이 된 책들
두 책을 담은 책을 써보고 싶었다.
전문가로서의 프로그래머
개발자의 도구는 기술 혁신 (골드 러시)에 의해 계속 발전(리셋)한다.
골드 러시 이후의 소프트웨어 개발은 보다 체계적, 낮은 위험성, 자본 집약적인 개발 관행을 가진다. 골드 러시 이전의 개발 방식이 잘 통용되지 않는다.
개발서적 Professional 소프트웨어 개발 핵심 요약 및 정리
관련 내용은 여기 잘 정리되어 있다.
전문가란?
전문성 = 역량x동기x방향x협력
역량 = 전문 역량 (컴퓨터 과학 + 소프트웨어 공학) + 일반 역량 (소통, 분석, 끈기, 자기관리, 집중)
해커, 장인 정신 vs 전통 소프트웨어 공학 vs 협력 중심 개발
(팀 개발, 애자일)
책 추천 -> 구글 엔지니어는 이렇게 일한다
알파고를 시작으로 시장에 떠오른 ML과 최근 ChatGPT의 부상으로 떠오르는 LLM이 골드 러시가 아닐까 생각한다. 기술 혁신의 주기가 줄어들면서 어떤 개발자로 살아야할지 고민해볼만한 좋은 주제였다고 생각한다.
나를 잃어버리지 않는 삶
개발을 통한 자기 수양
생즉고 : 삶은 고난의 연속
자기동기관리
자신을 잃어버리는 경우 : 너무 내 의식에만 빠지는 경우, 세상에 너무 수동적으로 맞춰지는 경우
강연을 들으면서 연사분께서 당연히 INTP일 것이라 생각했는데 맞춰서 재밌었다.
82년부터 변화, 발전한 컴퓨터 기술
점점 더 중요하고 쓸모 있어진다. -> 프로그래머도 더 중요해질 것이다.
우린 계속 변화하는 기술 위에 타있기 때문에, 계속 움직여야 한다.
아직 제가 선택한 길은 사람이 많이 다니는 길은 아닌 것 같아요.
어떤 길인지 선명하게 드러나지 않습니다.
같이 걸어주시고, 이 길이 어떤 길이 될 지 같이 기대하면서 각자 의지를 가지고 걸어갔으면 좋겠습니다.
40년 전, 당장 10년 전의 개발자를 생각해보며, 향 후 10년 뒤 40년 뒤의 개발자란 직업에 대해서도 고민을 해보아야 할 필요성을 느낀 강연이었다. 재밌는 주제였습니다 ㅎㅅㅎ
성철님, 동욱님, 미정님 순
공감 능력, 성장성
위임 (과락), 호들갑 떨기 (높을 수록 좋은 점수)
소프트 스킬
리더, 매니저는 기본 지식도 요구되는 가운데, 일을 분배하고 평가할 줄도 알아야하니 참으로 어렵다고 생각한다. 관리자냐 전문 기술자냐도 고민해볼만한 주제인듯.
나는 솔직히 관리자로서는 역량이 아직 매우 낮다고 평가한다. (경험도 없다!)
호들갑 떨기는 팀원들 맨탈 케어에 좋은 자세라고 생각한다. 개발자들은 모두 애 같아서 엄숙하고 무서운 팀장님 보단 평소엔 가볍지만 일에 대해선 확실하게 해주시는 동네 친한 형같은 스타일이 나는 좋더라. 항상 자란다자란다 해줘야 한다.
나도 잘 못하지만
성장 과정 자체를 즐기기.
제가 틀렸네요
말하기 습관
내가 썼던 코드 다시 쓰기.
자신이 잘하는 일을 자신이 잘하는 방법으로 할 수 있도록 환경 조성.
안 맞는 것과 잘못을 구분해서 평가하고 맞는 쪽으로 유도하기. 미안한 일이 아니다.
빠르게 피드백해주기. 만 번 스윙 중 5천번째 스윙을 피드백하면 고치기 어렵다.
모든 회의를 녹음해서 사내 공유 + 피드백이 필요한 사람은 들으면서 자기 회고할 수 있다.
팀원마다 좋은 방법이 다르다. 팀원의 성향을 관찰해야한다. 누구는 직설적인 것에 상처 받고, 누구는 직설적이어야 잘 받아들인다.
동욱님은 항상 비유를 잘 드시는 것 같다. 해당 방법들은 자기 피드백에도 도움이 될 수 있을 것 같다.
이동욱님
집요함
-> 포기하지 않고, 근본 문제까지 찾아내서 팀 내 공유
박성철님
일이 재밌어지고, 성취할 수 있는 경험을 주자.
스트레스 관리. 자기 모니터링, 즐길 수 있는 스트레스까지만 받을 수 있도록 하자.
자신감을 가지기. 작은 성취를 반복하자 (ex. 이불 개기)
ToDo로 간단한 집안일들 하나씩 클리어하기.
나태해지지 않을 정도의 긴장감과 번아웃 사이를 잘 조절하자.
지금도 겪고 있다.
과거보다 현재 팀리더 성과가 덜 나오는 상황.
강연에서 말한 루틴 적용. 개인적으로 회고를 하는 법 -> 휴가를 다 모아서 푹 쉬기.
박미정님
현 회사에서 목표한 바를 이뤘고, 다음 목표를 실현하기 어렵다 판단이 들었을 때 -> 성장 니즈에 맞는 회사 찾기.
주니어 때 자신이 할 수 있던 것을 도전해보지 않고, 불만에 차서 한 이직은 추후 후회가 남음. (팀 문화에 피해를 줘서)
이동욱님
어떤 회사로 보단 어떤 상황일 때가 중요하다. 계속 다녀도 문제 없을 때, 컴포트존
일 때 이직을 고민하자. 이직이 실패해도 그냥 지금 회사를 계속 다니면 된다.
현 회사의 안 좋은 상황때문에 이직을 급하게 결정하면, 객관적으로 좋은 회사를 판단하지 못하고 현 회사의 나쁜 점이 없는 회사만 찾기 때문에, 다른 안좋은 회사를 갈 확률이 높다.
박성철님
여기서 할 일은 다 끝났다라고 생각할 때 떠나면 후회가 없다.
공감이 많이 가는 말이다. 회사에 아쉬운 점도 있겠지만 정말 좋은 점도 많다. 아쉬울 것이 없을 때 떠날 준비를 하는 것이 좋아보인다.