본문 바로가기
📈개발자 성장기/개발자 책읽기

신입 개발자가 가져야 하는 마인드(feat.비전공자가 개발자로)

by 하루하루 나아가기 2023. 5. 26.
반응형

벌써 입사한지 3개월이 됐다. 수습에서 정규직으로 전환도 됐다. 뿌듯했다. 작년까지만 해도 나는 영업관리자로 근무를 하고 있었다. 2022년 10월부터 열심히 공부해 올해 1월 부트캠프 수료하고 2월에 취직을 했다. 철학과 출신 비전공자가 개발자가 된 것이다. 아직 부족한게 많다고 느끼고 있다. 무엇을 해야 할까 고민하다가 책을 읽어야 겠다고 생각을 했다. 부트캠프 동기들과 첫 책을 시작했다. 

 

첫 책은 김창준님이 지은 [함께 자라기] 이다. 유튜브에서 배달의 민족 기술이사였던 김영한님이 추천해서 골랐다. 지속적으로 개발자의 길로 나아가려면 어떻게 해야하는지 그리고 애자일이 뭔지 궁금했다. 이제 막 수습 딱지를 뗀 나에게는 안성맞춤이었다.  많은 내용들이 나오지만 평생 까먹고 싶지 않은 3가지를 소개하려고 한다. 

 

마인드 1 . 자기계발은 복리로 돌아온다. 개발도 자기계발처럼 해야 한다.

자기계발과 복리는 대부분의 사람들이 한번쯤은 들었던 단어들이다. 자기가 습득한 지식이나 능력은 복리로 이자가 붙기 때문에 꾸준히 했을 때 효과가 엄청나다. 예를 들어, 하루에 1%씩 이자를 복리로 받는다고 하면 원금의 두 배가 될 때까지 70일밖에 걸리지 않는다. 1년이면 38배가 된다. 이렇게 빠르게 증가하는 이유는 복리가 소위 '기하급수'의 구조이기 때문이다. 복리개념에서 중요한 것은 더하기가 아닌 곱하기를 해야 하는 것이다. 그리고 꾸준하게 우리의 지식을 곱해 나가야 한다. 

 

회사에서 개발할 때 복리가 발생하도록 해야 한다. 컴퓨터 마우스, 그래픽 사용자 인터페이스 ,하이퍼텍스트 등의 고안자인 더글러스 엥겔바트라는 사람은 작업을 A,B,C 작업으로 분류한다. 

 

A 작업은 원래 그 조직이 하기로 되어 있는 일 

- 겉으로 가장 잘 들어난다.

- 한 회사의 제품과 서비스의 개발, 생산, 판매와 관련이 있다. 

 

B 작업은 A 작업을 개선하는 일

- 회사가 자신의 제품과 서비스를 개발, 생산, 판매하는 걸 가능케 해주는 시스템과 프로세스를 설계하는 것과 관련이 있다. 

 

C 작업은 B 작업을 개선하는 일

- 설계하는 시스템과 프로세스의 품질을 결정한다. 

- 제공하는 제품과 서비스의 품질을 결정한다. 

 

이런 분류는 개발일 뿐만 아니라 다른 직종에도 충분히 적용할 수 있을 것 같다. 아래 사진은 일반적 조직이 일하는 구조다. 

 

일반적 조직이 일하는 구조는 결과물만 주기적으로 찍어내는 것이다. 동일한 조직에서 동일한 제품을 반복적으로 찍어내는 것이다. 

다음 사진은 '복리 조직이 일하는 구조'이다.

이 그림을 보고 충격을 먹었다. 그동안 일하면서 이렇게 생각해 본적이 없었다. 이러한 구조는 개인뿐만 아니라 조직도 함께 성장시킨다. 

 

'일반적 조직이 일하는 구조'는 더하기적 사고다. 개인이 가용시간을 늘리고, 쓸데없이 낭비되는 시간을 줄이고, 잠자는 시간을 줄이면 더 많은 일들을 할 수 있다. 하지만 한계가 크다. ' 복리 조직이 일하는 구조'는 집단의 지능을 높이는 곱하기적 사고다. 집단의 지능을 높이면 모든 지적 활동의 효율이 좋아지기 때문에 전반적인 개선(B 작업)이 일어나고, 특히나 개선 작업을 더 잘하게(C 작업) 된다. 함께 협력하면서 개인과 조직이 모두 윈윈이 되는 구조를 말한다. 

 

'복리 조직이 일하는 구조'가 애자일과 연관이 깊다. 어떻게 연관이 있는지 알아보자.

 

마인드 2. 자기계발도 중요하지만 팀원들과 상호작용이 훨씬 중요하다.

구글에서는 뛰어난 관리자의 특징을 찾는 옥시전 프로젝트를 진행했다. 여기서 나온 중요한 개념 3가지를 소개한다. 

 

1. 팀에 누가 있는지(전문가, 내향/외향, 지능 등) 보다 팀원들이 서로 어떻게 상호작용하고 자신의 일을 어떻게 바라보는지가 훨씬 중요했다.

2. 5가지 성공적 팀의 특징을 찾았는데, 그중 압도적으로 높은 예측력을 보인 변수의 팀은 심리적 안전감이었다.

3. 팀 토론 등 특별히 고안된 활동을 통해 심리적 안전감을 개선할 수 있었다. 

 

여기서 말하는 심리적 안전감이란, 내 생각이나 의견, 질문, 걱정, 혹은 실수가 드러났을 때 처벌받거나 놀림받지 않을 거라는 믿음을 말한다. 나는 주니어 개발자이지만 큰 인사이트를 얻었다. 바로 내 스타일을 고집하지 않는 것이다. 회사와 팀은 개성이 다른 사람들로 구성이 되어 있다. 회사마다 문화가 다르기 때문에 상호방식하는 방법도 달라야 한다. 지금 내가 할 수 있는 상호방식은 긍정적인 팔로워십을 발휘하는 것이다. 예스맨은 되면 안되겠지만 회사에 맞게 유기적으로 변화하면서 내가 합류하는 팀과 핏을 맞춰나가면 '복리 조직이 일하는 구조'를 만들 수 있을 것이다. 

 

또, 나랑 연차가 비슷한 연차인 사람들에게 심리적 안전감을 주는 것이다. 실수해도 짜증내지 않고, 같이 수다도 떨고, 모르는 것이 있으면 함께 알아봐주는 등 여러가지를 실천해야 겠다고 다짐을 했다. 

 

마인드3. 불확실성이 높은 현대사회 애자일로 극복할 수 있다.  

과거 주도적인 소프트웨어 개발 방식은 계획주도 방식이었다. 계획주도 방식에서는 초반에 계획을 정교하고 꼼꼼하게 만들려고 엄청난 노력을 한다. 그러면 실행단계는 간단해지고 예측 가능해진 다고 생각하기 때문이다. 하지만 애자일은, 불확실성이 높은 일에 대해서는 애초에 이것이 불가능하다고 본다. 불확실성이 크기 때문에 미리 분석하고 설계하는 데 한계가 있다는 것을 주장하고 있다. 따라서 애자일은 불확실성이 높은 프로젝트에 더 적합하다. 현대사회는 불확실성의 연속이다. 코로나 이후로 불확실성이 더욱 커졌다. AI 기술도 발전함에 따라 미래가 어떻게 바뀔지 짐작이 잘 안된다.

 

애자일의 구동원리는 마인드1(학습), 마인드2(협력)이다. 불확실하다는 것은 우리가 이동을 할 때 목표점의 위치가 자주 바뀌거나 우리 위치가 자주 바뀌거나 하는 상황으로 비유해 볼 수 있다. 그럴 경우일수록 우리는 가다가 멈춰 서서 주위를 둘러보고 목표점과 우리 위치를 확인하는 것 같은 피드백을 통해 방향을 재조정하는 일을 자주해야 한다. 초기 계획대로 가면 완전히 동떨어진 곳으로 갈 수도 있기 때문이다. 다시 말해 이동하면서 계속 배워야 하는 것이다. 불확실성이 높을 수록 학습을 잘해야 한다. 

 

또한 불확실한 상황일수록 리스크가 높은 것이고, 안 좋은 일이 벌어질 확률이 높다. 이럴 때 일 수록 사람들과 상호작용을 더 열심히 해야 한다. 서로의 업무를 공유하고 상호 검토하는 협력을 통해 심리적 안정감을 높히고 불확실성을 줄일 수 있다. 

 

그러므로, 애자일의 구동원리는 함께(협력) 자라기(학습)이다. 

 

애자일이라는 개념을 바로 내 몸에 체화되기가 어렵겠지만 계속 노력을 할 것이다. 특히! 마인드2를 실천해 나 뿐만 아니라 조직도 함께 성장시키고 싶다! 

 

 

 

반응형

댓글