웹개발자가 되기위해 공부를 하던 중, 방향성없이 무작정 들이대기 보다는, 방향성을 잡은후에 공부하는것이 장기적으로 봤을때 도움이 될것이라는 생각이 들었다.
흔히, IT대기업하면 떠올리는 네카라쿠배 에 소속된 개발자들의 업무 및 자기개발방식을 참고해보고 싶었고, 배민 우아한테크코스 프론트엔드 교육 담당자로 활동중이신 메이커준(임동준)님의 강연(라이브세션)을 듣게되었다.
메이커준님이 성장에 대한 고민이 있는 개발자들에게 '함께자라기:애자일로가는길'을 추천해주셨고, 바로 그자리에서 책을 구입했다.
- 경력과 업무수행능력은 깊은 상관성이 없다.
- 최소한도의 경험치만 넘어가면 경력연수와 실제 직무성과의 상관성이 생각보다 낮다.
- 경력은 양적인면보다, 질적인면이 중요하다.
- 따라서, 1만시간의 법칙을 통해 전문가가 되려면, 의도적 수련을 통해 경험을 질적으로 향상시키려는 노력(기량 향상을 목적으로 자신의 약점을 개선하려는 노력)을 해야한다.
- 업무를 하면서 의도적 수련을 할 수 있는 방법은 피드백을 짧은주기로 얻을수 있는 애자일이다.
- 알파고 같은 인공지능에 대체되지 않으려면, '배우기 힘든것' 에 집중해야한다.
- 특정 논문에서 702개 직업들의 컴퓨터화 가능확률을 분석한 결과,
(a)소프트웨어 개발자는 130등(4.2%)로 어려운편에 속했고,
(b) 컴퓨터 프로그래머는 293등(48%)로 컴퓨터화 확률이 높은편에 속했다.
이 둘의 차이는 고민하고 설계하는 부분에서 타인과 상호작용(독창성,협상,설득)의 유무이다.- 따라서, 미래에 높은 경쟁력을 가지기 위해서는, 암묵지와 직관을 잘 학습해야하며, 사회적으로 일하는것(다른사람의 생각에 관심을 갖고, 설득하고, 협상하는 것)에 관심을 가지는 연습이 필요하다.
짧지만 몰입했거나 몰입하지못했던 내 경험에 비춰봤을때, 왜 그랬었는지 공감할 수 있었던 내용이여서 크게 와닿았다. 또한, 몰입을 하려면 어떻게 해야하는지도 알 수 있었다.
- (1) 실력에 비해 낮은 난이도의 일을 하게되면, '지루함'을 느끼게된다.
(2) 실력에 비해 높은 난이도의 일을 하게되면, '불안함'을 느끼게된다.
(3) 실력에 적당한 난이도의 일을 하게되면, 최고수준의 집중력을 발휘하여, 퍼포먼스나 학습능력이 최대치가 될 수 있으며 그때 최고수준의 행복감을 경험한다. 이 영역에서 '몰입'을 경험하게 된다.- '지루함의 영역'에 있다면, 아래 2가지의 방법으로 몰입의 영역으로 이동 할 수 있다.
(a1) 디버거 쓰지않기
(a2) 특정업무에 시간제약을 걸고 익숙한 작업을 새로운 언어로 진행해보기- '몰입의 영역'에 있다면, 아래 2가지의 방법으로 몰입의 영역으로 이동 할 수 있다.
(b1) 맡은 일의 가장 간단하면서 핵심적인 결과물부터 만들기
(b2) 스터디참가, 교육듣기, 짝코딩
- 실수를 저지르지 않는것은 불가능하다.
- 실수는 어떻게든 할 수 밖에 없기때문에, 나쁜결과로 커지기 전에 일찍 발견하고 빨리 고치는 것이다.
- 실수한 사람에게 비난하는 문화는, 실수를 감추게하며, 나쁜결과로 커지게 될 가능성이 높다. 또한 실수에서 배우지못한다.
- 실수를 관리하는 문화는, 실수를 공개하게해서 문제를 빨리 회복하게 돕는다. 또한 실수에대해 서로 이야기하고 배우는 분위기가 생긴다.
실수 관리하기 파트의 내용과도 관련이 있다.
- 심리적 안전감이란, 내 생각이나 의견, 질문, 걱정, 혹은 실수가 드러났을 때 처벌받거나 놀림받지 않을거라는 믿음을 말한다.
- 심리적 안전감을 높이려면, 팀 토론을 통해 토론주제를 안전한 환경에서 이야기 하게 해주는것이 있으며,
우선적으로 중요한것은 리더와 팀원간에 평소 '마이크로 인터랙션'에서 신뢰를 쌓을 수 있도록 노력해야한다.
(eg. 팀원이 불편한 문제를 제기, 부족한 의견제시를 하는상황을 포함)
- 개발자들에게 기술의 전환주기는 특히 짧은편이기 때문에, 빠른 학습이란것은 중요하다.
- 의외로, 경영진의 기술 지지/지원 여부는 학습속도에 큰 영향을 끼치지 못한다.
- 팀단위에서의 학습속도는 리더가 끼치는 영향이 중요하며, 리더의 기술적 탁월함이 아닌 리더가 학습환경을 만들어줄 수 있는지가 중요하다.
- 빠른학습을 위해서는
학습을 개인의 과제로 치부하고 낙오된 팀원의 실력을 불평하기 보다,
도전 자체를 팀의 학습능력에 대한 도전으로 받아들이고, 큰 변화의 흐름에 동참할때 즐거움을 갖고 '같이' 학습하는것이 중요하다.
- 과거의 주요 소프트웨어 개발방식이였던 '계획주도의 방식'은, 초반에 계획을 최대한 꼼꼼하게 작성해서 실행단계를 예측하려는 방식이였으나, 이는 불확실성이 낮은(비즈니스적 가치가 낮은) 프로젝트에만 적용이 가능하다는 한계가 있었다.
- 애자일은 불확실성이 높은 프로젝트에 적합하며, 여러사람에게 짧은주기로 조금 더 일찍 피드백을 받는식으로 불확실성에 대처한다.
- 인생 또한 불확실성을 갖고있으며, (a)학습과 (b)협력을 통해 삶에 애자일을 적용하고, 불확실성에 대처할 수 있다.
(a)학습을 통해서는, 새로운 상황에 대해 계속 배우고 맞춰나가면서 인생 목표점과 현재 내위치를 재조정 할 수 있다.
(b)협력을 통해서는, 서로의 업무를 공유하고 상호검토하는 작업을 통해서, 팀전체가 실수를 했을때에만 문제가 발생하도록 문제 발생가능성을 낮추거나, 한 사람이라도 통찰을 얻으면 공유를 통해 전체가 개선되게 할 수 있다.
- 책 내용은 평소 내 생각과 같아서 공감가는 내용도 있었지만, 새로알게된 정말 흥미로운 내용이 많아서 이틀만에 다 읽게되었다.
- IT기업에서 업무하는 방식에 대한 궁금증을 해결해줬고, 실제로 경험해보고싶은 마음이 더 커졌다.
- 앞으로, 개발자로서 커리어를 쌓아가는 방향을 제시해 준 책이라는 생각이 든다.
- 협력의 중요성에 대해 많은 강연자들이 왜 그렇게 강조했는지 알 수 있었다.
- 수많은 프로젝트를 진행하게 될 것인데, 내가 이 글에 기록한 기억에 남는 포인트들을 적용해보고싶다.