BOOK | 함께 자라기(애자일로 가는 길) 리뷰

sik2·2021년 5월 24일
4

리뷰

목록 보기
5/12


함께 자라기 김창준 저

소프트웨어 공학 관련 수업에서 자주 등장 했던 '애자일', 사전적으로 '기민함', '민첩함' 등의 뜻으로 고객에 유기적으로 소통하는 소프트웨어 방법론 정도로 기억하고 있었습니다.

이 책을 읽고 애자일의 본질이 무엇인지, 앞으로 주니어에서 시니어 개발자로 어떻게 성장하고 팀원으로써 팀 성장에 대해 어떤 고민을 해야하는지를 알려주는 책이었습니다.

자라기

개발자의 기본기는 학습능력

개발자의 본질이 무엇으라고 묻는다면 '문제해결능력'이라고 생각합니다. 어떤 문제가 일어나고 이를 커뮤니케이션하며 정의하며 분석해서 어떤 솔루션을 제시할지를 생각하는 부분 까지가 프로그래머(문제를 해결하는 사람)이며 이다음 코드로 구현하는 영역이(코딩)이라고 생각합니다.

프로그래머라는 이름에서 문제를 해결하는 사람이라고 정의한 것 처럼 개발자에게 문제 해결능력은 매우 중요한 능력입니다. 하지만 이런 문제해결능력은 매우 추상적인 개념입니다. 어떻게 해야 길러질지 감이 안옵니다.

단순하게 생각해서 운동을 생각해보면 어떻게 하면 운동을 잘할까? 라고 생각했을때 모든 전문가들이 공통적으로 말하는 한가지가 있습니다. 바로 '기본기에 집중해라' 입니다.

자라기(학습능력)야 말로 가장 중요한 기본기라고 제시합니다. 좋은 해결책은 많은 배경지식 속에서 도출 됩니다. 그렇기 때문에 개발자는 공부를 많이 해야합니다. 그리고 필요할때 빠르게 배워 써먹을 줄 알아야합니다. 학습능력은 단기간에 만들어지지 않습니다. 꾸준히 몰입해야 본인 만의 가장 효율적인 공부법을 체화 할 수 있기 때문입니다.

그렇게 때문에 평소 학습능력을 잘 길러둬야 문제가 발생했을때 다양한 시각으로 고민할 수 있고 필요한 지식을 빠르게 배워 써먹을 수 있습니다.

현재 능력보다 조금 어렵고, 자주 피드백을 받아야 한다.

그렇게고 그냥 열심히만 해서는 안됩니다. 책에서 소개하는 키워드로 보자면 '의도적 수련'과 '피드백'이 중요합니다.

사진 출처

여기서 말하는 의도적 수련이란, 위 그림과 같이 실력과 작업 난이도가 적절한 단계로 몰입이 일어나는 상태를 말합니다.

간단하게 설명해서 내가 할 수 있는 작업에서 조금 어렵다고 느껴지는 걸 생각하시면 됩니다.
(실제 회사 사수님께서 자주 하던말 '너가 할 수 있다고 생각하는 거 보다 조금 어려운걸 만들어보라')

예를 들어 채팅 기능을 개발해 보았다면 알림 기능 개발을 추가해보는 식입니다. 여기서 중요한건 해당 기능이 조금 어렵겠다고 느끼는지 입니다. 너무 쉬워도 너무 어렵지도 않고 딱 조금 어렵겠구나 싶은 미션들을 수행해 나가는 것입니다.

선택의 자유도가 조금 떨어지는 일에서도 제약조건을 두는 식으로 할 수 있습니다. 책에서 소개하는 내용처럼 시간이나, 마우스 미사용등 환경을 제약하는 방법입니다.

또 한가지 중요한 키워드는 피드백 입니다.

일종의 회고라고 생각하시면 됩니다. 무언가를 했을때 과연 잘했는지 잘못했다면 다음엔 어떻게 해야할지 개선할 부분을 찾는 과정입니다.

사격을 해보신분들은 알지만 처음 총기를 받고 가늠자를 보고 사격을 하면 본인이 생각했던 방향과 다르게 탄착점이 형성됩니다. 이를 개선하기위해 영점 조절이라는걸 합니다.

사격과 마찬가지로 분명 내가 이렇게 될꺼라고 예상하고 했는데 결과가 다른 경우가 많습니다. 혹은 잘못하고 있다는 걸 모르는 상태에서 막연히 열심히만 하고 있을 수도 있죠.

제 3자가 되어 자신의 행동을 객관적으로 살펴보는걸 '메타인지'라고 합니다. 메타인지가 높을 수록 학습능력이 뛰어나다는 연구결과가 있습니다.

메티인지를 높이려면 본인이 했던 행동이나 결과물을 되돌아보는 혹은 점검하는 시간이 필요합니다. 때문에 주간 회고, 월간 회고등 특정 분기마다 자신의 상태를 점검하는게 좋습니다.

가장 좋은건 자신보다 실력이 좋고 성과를 내고 있는 사람에게 피드백을 받는 것입니다. 이때 무작정 물어보기 보단 본인이 어떤 고민이 있었고 어떤걸 시도해보았고 어떤 점이 확신이 서질 않는다는 식의 구체적인 질문을 준비하는게 중요합니다. 준비과정에서 본인이 했던 행위를 한번 되짚어보고 이를 토대로 피드백을 받았을 때 얻어가는게 가장 많습니다.

정리 : 개발자의 기본기는 학습능력이며 이는 의도적 수련과 + 주기적 피드백을 통해 만들 수 있다.

자기계발은 복리로 돌아온다

이제 방법을 알았으니 실천을 해야합니다. 하지만 실천 중 명심해야 할 건 '지식이나 능력은 복리로이자가 붙는다' 입니다. 개발자라면 모두 성장하고 싶어합니다. 하지만 초반 성장이 더딜때 불안감이 엄습니다. 잘하고 있는 건지, 잘못된 방법으로 노력하고 있는지 의구심이 듭니다.
하지만 지금 미미한 실력일지라도 꾸준히 한다면 결국 복리의 법칙에 따라 어느 지점이되면 아래 그래프 처럼 엄청난 성장을 할 수 있습니다.

끝으로

주변에 천재들 밖에 없어서 개발에 자신이 없다고요? 그때마다 떠올리는 말이 있습니다. 1과 10의 차이는 크지만 10001과 10010은 차이가 없다. 입니다. 자신이 레벨 1일때 주변의 레벨 10의 개발자들이 너무 높아 보일 수 있습니다. 기죽지 말고 꾸준히 하면 모두 10000레벨에서 만나게 됩니다. 그때는 9차이는 의미가 없습니다. 결국 자신을 믿고 앞으로 나아가야 합니다.

협업 관점의 함께, 애자일 파트는 2편에 작성 예정

profile
기록

0개의 댓글