포스트

함께 자라기 애자일로 가는길 후기

함께 자라기 애자일로 가는길 후기입니다.

며칠 전에 이런 아티클을 봤습니다.

박정욱 위시켓 프론트팀 개발 리더 인터뷰

이 글을 읽으니, 나는 개발자로서 어떤 메타인지를 갖고 있는지에 대해서 생각을 해봤습니다.

  • 회사에서는 더 좋은 제품을 만들기 위해서 적극적으로 개선할 지점을 찾는 사람
  • 팀원들과 유대감 형성을 위해서 스몰토크를 즐기는 사람
  • 디자이너나 기획자 같은 다른 분야의 조직원들과도 주도적으로 협업하는 사람
  • 매일 퇴근 후, 자기 계발을 위해 사이드 프로젝트를 하며 회사에서는 키울 수 없는 능력을 키우려는 사람

실용주의 프로그래머, release 의 모든 것 등과 같은 개발자 자기계발서를 읽고 해당 내용을 실천하려고 노력하는 저의 모습을 돌아볼 수 있었습니다.


그런 맥락에서 상기 아티클의 저자가 추천하는 함께 자라기라는 책도 읽어보고 싶다는 생각이 들었습니다. 주니어 개발자에게 가장 추천하는 책이라니 매우 궁금했고, 오늘 도착하자마자 책을 들고 카페로 들고 가서 모두 읽었습니다.
이 책은 저자가 논리적으로 수많은 사례를 바탕으로 뛰어난 개발 전문가가 되기 위해서는 어떤 능력을 키워야할지를 말하고 있습니다. 내용을 정리해보자면 다음과 같은 내용들이 인상깊었습니다.

무언가를 배울 때는 항상 여러 다른 의견과 방법이 존재한다. 그런 상반된 의견 속에서도 스스로 생가갛는 훈련이 필요하다. 이를 야생학습이라고 한다.

1만시간의 법칙에서 말하는 1만 시간은 자신의 기량을 향상시킬 목적으로 반복적으로 하는 수련을 뜻한다. 단순한 일이나, 이미 잘하는 일을 1만 시간 하는 것은 성장에 도움이 되지 않는다.

작업 그룹은 일을 사람 수로 나눠서 처리하지만, 팀은 일을 상호 협력적으로 진행한다.

불리한 자극과 조건이 주어지는 것을 오히려 학습의 기회로 삼아라.

프로그래머는 요구사항의 스펙대로 코드를 만드는 사람이고, 개발자는 요구사항을 분석해서 솔루션을 설계하는 사람이다. 독창성, 협상, 설득의 역량을 갖추어야 하고 이는 인공지능이 대체하기 어려운 부분이다.

의도적 수련을 위해서는 적절한 난이도의 일이 주어져야 한다. 업무 시간에 불안감이나 지루함을 느낀다는 것은 일의 난이도가 적절하지 않다는 뜻이다. 실력을 조정하거나, 난이도를 조정해라

전문가가 새로운 언어를 배울 때는, 듀토리얼을 읽으며 무엇을 만들지 생각하고, 무언가를 직접 만들어보며 표준 라이브러리를 찾아 읽어본다. 표준 라이브러리를 읽으면서 그 언어의 문법 뿐 아니라 스타일을 배워야 한다. 전문가에게 무언가를 물어볼 때는 방법에 대해 물어보기보다, 구체적인 사건에 대해 물어보라.

어떤 기술적 실천법이라도 현실에서 적용하기 위해서는 사회적 자본과 기술이 필요하다. 사회적 자본을 위해서 타인과 인터렉션을 해야 하고, 뛰어난 개발자일수록 이에 능숙하다.

추상화는 인간만이 지닌 복잡한 현상을 이해할 수 있는 좋은 수단이다. 추상성을 높이기 위해서는 협동과 대화가 중요하다.

공유를 해서 신뢰가 떨어질 수도, 오를 수도 있다. 하나 공유, 최고 공유, 복수 공유 중에는 복수 공유가 성과와 신뢰도 향상 효과가 가장 크다.

품질이란 누군가에게 가치가 되는 것이다. 객관적 자료를 바탕으로 의사 결정을 하는 순간에도, 누군가에게는 설득의 한계가 있을 수 있다. 완벽하게 감정과 직관을 배제한 의사 결정은 불가능하다. 상대방에 대한 이해와 대화는 필수적이다.

훌륭한 사수는 먼저 사고와 전략을 이해하려고 한다. 비난을 하는 것은 오히려 신뢰에 해가 된다.

올스타 팀에는 한계가 있다. 스타들이 추가될수록 성과 향상은 한계 효용을 보인다. 소셜 스킬이 뛰어난 제너럴리스트가 있으면 팀의 융화도가 좋아진다.

팀이 새로운 기술을 습득하는 것은 기술적 도전이 아니라 조직적 도전이다. 이 도전의 승패와 팀의 심리적 안정감 사이에는 상관관계가 있다.

애자일은 고객에게 매일 가치를 전달하는 것이다. 고객 참여와 코드 공유는 성공의 중요한 요소지만, 사람이 중심이라서 뒤로 밀리게 된다.


이 책에서 말하는 방법을 요약하면 2가지입니다. 첫 번째는 개인의 성장을 위해서 어떻게 꾸준히 학습할지에 대한 이야기입니다. 두 번째는 성공하기 위해서는 팀원과의 협업과 소통이 필수적이라는 것입니다.
흔히, 개발자로 성공하기 위해서는 엄청난 개발 실력이 있어야 한다고 생각하지만 그만큼 중요함에도 등한시되는 것이 소프트스킬이라고 생각됩니다. 제 자신의 소프트 스킬을 돌아보며 나는 팀원들에게 믿을 만한 동료인지 다시 생각해봤습니다.
저는 보통 더 좋은 시스템을 위해서 무언가를 하자고 하는 사람인데, 팀원들과 그런 이야기를 즐겁게 나누면서 때로는 도입이 결정되기도 하고, 무산되기도 합니다. 그럼에도 그 과정에서 항상 얻는 것과 배우는 것이 있다고 느껴집니다. 다음에 무언가를 하자고 할 때는 복수 공유의 방법을 택해서 팀의 유대감을 더 올려야 겠다는 생각을 하면서 마무리하겠습니다.

추천 정도 : ⭐️⭐️
실용주의 프로그래머의 간략한 버전


기준표


굳이 읽을 필요가 있을까: ⭐
읽어두면 좋다: ⭐️⭐️
읽어야만 한다: ⭐️⭐️⭐️

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.