문제 해결 방법은 여러가지가 있을 수 있다. 혼자서 열심히 고민하여 문제 해결 하는 방식도 있지만, 팀으로서 협력하는 것은 매우 효과적이다. 하지만, 현실은 늘 항상 들어 맞는 정답은 없다. 그래도, 성공적인 팀-협업적(Collaborative)으로 일하는 팀이 문제를 효과적으로 해결한다.

 

여기서는 김창준님의 함께 자라기[1]에서 이야기하는 소프트 스킬, 협력적 추상화, 그리고 전문가를 어떻게 팀으로 데려와 성공할 수 있는가의 측면에서 살펴 보자

하드 스킬(Hard Skill) vs 소프트 스킬(Soft Skill)

우리는 많은 경우, 특정 도메인에서 일을 한다. 전자 상거래, 소셜 미디어, 멀티미디어 등 여러 가지가 있을 수 있다. 이렇게 한 분야에서 일을 하다 보면 그 분야, 즉 도메인 지식(Domain Knowledge)가 증가한다. 뿐 만 아니라, 개발자라면 컴퓨터 언어, 자료 구조, 알고리즘과 같은 개발과 관련돈 공통된 지식도 증가하게 된다. 이러한 것은 우리가 문제를 해갈 하기 위한 기술 하드 스킬(Hard Skill)이라고 할 수 있다.

 

우리가 혼자서 일한다고 하면 이 하드 스킬만 키우면 문제 없다. 하지만, 우리가 여러 사람들과 일하게 되면 여러가지 다른 기술이 필요해 진다. 즉, 사회 생활을 하는데 도움이 되는 자본과 기술이 필요하다고 한다. 좀 더 구체적으로 이야기 하면 커뮤니케이션과 협업 능력과 같은 소프트 스킬(Soft Skill)이 중요하다. 숙련된 프로그래머/개발자들에게 이야기 들어 보면 이러한 소프트 스킬을 높이는 것도 강조하는 사람이 많다는 것을 알게 된다.

 

이 부분은 뒤에서 문제를 해결하는데 기본이 되는 것이라고 할 수 있다.

협력을 통한 추상화(Collaborative Abstraction)

대니얼 슈와르츠[2]의 연구에서는 한 명이 문제를 푸는 것 보다 두 사람이 문제를 푸는 차이에 대해서 설명하면서 두 사람이 문제를 푸는 경우가 문제 해결에서 추상화를 통해서 새로운 것을 발견하도록 도와 준다고 한다. 이는 둘이서 협력(Pair-work)하면서 다른 시각(perspective)를 받아 들이고, 이를 연결하기 위한 추상화 필요하다고 설명한다.

 

이러한 추상화는 단순히 서로를 이해하게 하기 위한 것 뿐 아니라 문제를 바라 보는 단계를 높인다. [1]에서 언급하듯이 전산학의 소프트웨어 공학나 많은 학문이 그렇듯이 이 추상화를 거쳐서 발전하게 되었다. 그러므로, 우리는 이러한 추상화를 더욱 일어나게 하기 위해서 협업을 해야 한다. 

전문가와 일하는 방법 (How to bring experts)

우리가 특정 분야의 문제를 해결하려면 전문가를 데리고 하는 것이 유리할 것이라는 것은 예측하기 쉽다. 하지만, 여기에는 함정이 있다. 울리의 연구[3]를 보면 전문가와 일하되, 협력적으로 조율(Coordination)하고 통합(Integrate)하라고 가이드 한다. 

 

그의 연구에서는 전문가 혹은 비전문가 팀이 협업을 하는지 하지 않는지를 나누어 비교 연구하였다. 즉, 다음과 같이 그룹을 나누었다.

1. 전문가 협업 개입

2. 전문가 비협업 개입

3. 비전문가 협업 개입

4. 비전문가 비협업 개입

 

어느 팀의 성과가 가장 좋았을까? 그렇다 전문가 협업이 가장 좋았다. 그렇다면, 꼴지팀은 어디였을까? 전문가 비협업이었다는 것이 매우 흥미롭다. [1]에서는 전문가를 데리고 오더라도, 정보를 공유하고 협력을 잘하기 위한 명시적인 도움이 필요하고 소셜 스킬이 뛰어난 제너럴리스트가 있으면 도움이 된다고 조언한다.

 

참고 문헌

[1] 김창준, "함께 자라기- 애자일로 가는 길", 인사이트 · 2018년

[2] D. L. Schwartz, "The emergence of abstract representations in dyad problem solving", The journal of the learning sciences, 1995

[3] A. W. Woolley, et al. "Bringing in the experts: How team composition and collaborative planning jointly shape analytic effectiveness." Small Group Research 39.3 (2008): 352-371.

1만 시간의 재발견[1]으로 알려진 안데르스 에릭슨은 의도적인 수련(Deliberate Practice)으로도 알려져 있다. 자신의 전문성을 키우기 위해 의도적으로 따로 연습하는 방법이라고 볼 수 있다. 개발자 혹은 자신의 전문성을 키우고 싶은 사람으로서 수련하는 방법의 좋은 예로 김창준님의 Facebook 포스트[2]를 보고, 조금 더 추상화 부분을 정리해 보았다. 그리고, 최근 그릿[3]을 읽으면서 알게 된 부분도 같이 붙여 메타인지를 해보자.

 

김창준님개발자의 의도적 수련 활동:

 
관찰하고/책 읽고/비디오 보고,  시도하기: 매우 일반적일 수 있지만 시도하는 것은 조금 더 발전된 부분이다.
* 새로운 도구, 기술, 코드, 기법을 시도해 보고 그 결과를 관찰, 분석해 보기
* 개발 관련된 저널과 잡지, 책을 읽기, 개발 관련해 인터넷을 훑어보기, 관련된 비디오를 보기 등
* 개발 관련 세미나, 워크숍, 교육과정, 컨퍼런스 등에 참석하기
* 다른 동료 혹은 회사 밖의 사람의 코드나 작업물를 구경하거나, 다른 동료(개발자 외에도 QA 담당자라든지)가 일하는 방식을 주의 깊게 관찰해서 새로운 아이디어를 얻기
피드백 찾기(Feedback-seeking): 피드백을 받는 것은 쉽지 않다. 그래서, 그 부분을 찾고 다르게 일해 본다.
* (회사 내외의) 다른 개발자나 도메인 전문가의 의견을 묻기, 남에게 배우기 위해 네트워킹하기, 새로운 도구, 기술 등에 대해 동료와 이야기하기
* 나의 고객(내게 일을 주는 사람 -- 기획자, 운영자, 다른 개발자 등)에게 다가가서 피드백을 달라고 하기, 그 고객들의 니즈에 대해 묻기 등
 
페어 워킹: 다른 사람과 함께 할 것을 찾아 보거나 같이 하면서 배운다. 
* 어디에 개선이 필요한지 다른 직원들과 브레인스토밍 하기
* 사석에서 친구랑, 혹은 배우자나 다른 사람과 개발 일에 대해 이야기하며 새 아이디어를 얻기
* 다른 사람의 업무에 대해 배우기 위해 그 사람을 도와주기
 
회고: 자신의 상태를 점검해 보고 새롭게 해본다.
* 현재 코드의 상태를 점검해서 어디가 장차 문제가 될 수 있는지 확인하기, 코드 품질을 확인해서 개선할 방법을 찾기 등
* 내가 조금전, 오늘 혹은 이번주에 했던 일들을 복기하며 반성해 보고 실수한 것은 무엇인지, 다음에는 어떻게 하면 좋을지 생각하고, 다음을 위한 행동 계획 짜기
 
의도적 수련: 진정한 의도적 수련으로 보인다. 많은 사람들이 하지 못하는 부분이다.
* 이미 개발한 프로그램을 더 잘 만들 요량으로 다른 방법으로 처음부터 다시 개발해 보기
* 이미 개발했고, 기능상 문제가 없지만 리팩터링 등을 통해 코드 구조를 더 개선하거나, 성능상 문제가 없으나 자신만의 더 나은 성능기준을 목표로 개선하기
* 반복되는 작업을 자동화해서 거기에 드는 시간과 노력, 실수여지를 줄이기
 

Grit의 내용

그릿[3]에서는 최고가 되고 싶으면 '의식적인 연습(deliberate practice)' 수천, 수만 시간동안 하면 된다. 그러면서, 전문가들의 연습 방법에 대해 다음과 같이 설명하고 있다.

  1. 도전적인 목표를 설정하고 전체 기술 중에서 아주 일부분에 집중한다. 이미 잘하는 부분 보다는 뚜렷한 약점을 개선하려고 노력한다. 아직 도달하지 못한 과제에 도전하는 것이다.
  2. 도전적인 목표 설정 뒤에는 목표에 도달하기 위해 온전히 집중하고 비상한 노력을 한다. 음악가 같은 경우는 혼자 연습하는 시간이 다른 음악가와 함께 연주하는 시간보다 많다.
  3. 가능한 빠른 피드백을 받고 싶어 한다. 부정적인 내용이 많다. 자신이 잘한 부분 보다 틀린 부분에 관심이 많은 것이다.

이 내용을 조금 더 구체화한 것이 김창준님의 방법이라고 할 수 있겠다.

 

결론은?

앞에서 이야기 한것 처럼 그릿에서 의도적 수련에 대해 정리하고 있다. 개발자의 입장에서는 김창준님의 구체적인 수련 방법을 참고하면 큰 도움이 될 수 있다. 다른 업무를 한다면? 추상적인 것을 통해서 자신의 업무를 대입해보는 것도 좋겠다.

 

 

참고 문헌

[1] 안데르스 에릭슨, "1만 시간의 재발견" 노력은 왜 우리를 배신하는가

[2] 김창준, "개발자의 의도적 수련," https://www.facebook.com/cjunekim/posts/5465539236807932

[3] 앤절라 더크워스, "그릿 GRIT", 비즈니스북스, 2016년 10월

'Technical Leadership' 카테고리의 다른 글

협업적 문제 해결 방법 - 함께 자라기  (0) 2023.07.10
살리고 글쓰기  (4) 2023.03.12
책 읽기: 효과와 효율  (2) 2023.03.05
다니엘 핑크: 후회의 재발견  (0) 2023.02.25
ChatGPT에 대한 짧은 생각  (0) 2023.02.16

애자일 학습을 하면서 기존의 방법을 통해 느끼는 대한 안티패턴을 공유해 봅니다.

 

. 회사의 업무처럼 한다.

저는 회사에서 업무를 할 때, 미리 계획을 세우고 진행합니다. 물론 계획이 필요 없다는 것은 아닙니다. 하지만, 상황이 바뀌더라도 기존에는 그 계획대로 하려는 경향이 있었습니다. 애자일 학습에서도 제가 하려는 활동을 잘 하려고 그렇게 했던 경향이 있습니다.

애자일 해지기 위해서는 상황에 대응(adaptation)하기 위해서 협업을 강조하고 피드백을 중요하게 생각합니다. 그러므로, 빠르게 실패하는 것을 권장하며 실패를 통해서 피드백을 받고 배움을 얻는 것을 중요하게 생각합니다. 이를 위해서 같이 하는 사람들과의 회고 및 추가 활동을 통해서 더 배워야 합니다. 지속적이고 의도적인 연습 및 실행을 통해서 성장을 꾀해야 합니다.

그러므로, 애자일 학습을 하는 동안에는  기존에 하던 것과 같은 방법 혹은 그렇게 하지 못해서 그와 완전히 반대로 한다거나 하기 보다는 애자일하게 하던 방법과 하지 않던 방법을 섞어서 하는 것을 좋습니다. 이러한 학습에서도 업무에 어려움을 반영하여 내 실재 문제를 해결하거나, 배운 것을 업무에 적용해 보는 것도 좋습니다.

 

. 혼자 하려고 한다.

새로운 것을 배울 때 저는 우선 관련된 강의나 책을 먼저 찾았습니다. 특히, 책을 읽고 전문성을 높여서 문제를 해결하려고 했습니다.

하지만, 애자일 학습에서는 책만 읽는 것을 것을 권하지는 않습니다. 애자일적인 접근 방법으로 협력을 탐색해야 한다는 측면에서는 자신이 가지고 있지 않은 그것을 얻기 위해 책을 읽는 방법만 있는 것이 아니기 때문입니다. 것을 잘하는 사람을 찾고, 그 활동을 같이 하기도 하고, 같이하면서 배우고, 배운 것을 연습하는 것을 권합니다. 저도 최근에 새롭게 배운 동기 면담의 경우, 다른 분들과 자주 연습하려고 하고 있습니다.

 

. 중요하다는 것의 관점

최근에 코칭을 받고 있습니다. 애자일 학습을 하시는 분들께서 중요하다고 이야기 해주시는 내용 중에 하나입니다. 또한, 본인에게 중요한 문제를 가지고 코칭 받으라고 합니다.

그런데, 이 중요한 문제의 관점이 달라 졌습니다. 제가 느끼는 감정의 문제, 회사 업무에서의 문제들 중에서 여러 고민을 하고 고르고 골라 코칭을 받았습니다. 하지만, 정작 그 코칭을 통해서 어떻게 도움이 될까라는 문제로 돌아가 보면 선정한 문제가 중요한 문제인가에 대해 다시 질문할 수 밖에 없었습니다. 왜냐하면, 이미 코칭 받았던 문제들이 1년 아니 3~4년에 한 번 발생하는 문제 그리고 분기 혹은 많아야 한달에 한번 있을까 말까 하는 문제였거든요.

코칭 내용을 선정하는 가이드 중에서, 시간적 스펙트럼이 매주, 매일, 매시간에 나를 괴롭히고 있는 것이 무엇인지 묻습니다. 문제가 더 중요한 문제일 수 있다는 것입니다. 즉, 내, 수면, 음식, 건강의 문제, 내 평상시의 루틴한 업무와 관련된 문제가 더 중요할 수 있다는 것입니다. 집중력의 문제, 음주로 인한 에너지 문제, 혹은 음식의 자제가 되지 않아 어려운 다이어트 문제, 아침에 일어났을 때의 에너지 문제가 중요할 수도 있다는 것입니다.

 

. 피드백을 구하지 않는다.

애자일 학습을 하면서 멘토링 그리고 코칭의 기회가 많았습니다. 이 것이 자체로 이미 좋은 피드백이지만 애자일의 측면에서 우리가 학습하는 것들에 대해서 피드백을 찾아야 합니다(Feedback-seeking). 물론 기존에 애자일로 업무를 하는 사람들이 많기 때문에 회고를 가지면서 피드백을 찾는 것이 어느 정도 몸에 배어 있어 보입니다. 하지만, 이 피드백을 통해서 Action Plan이 나오고, 이를 추적하여 개선하는 것까지가 피드백 구하기라고 생각됩니다. 최근에 좋은 모임에 대한 번개에 대해서 진행할 , 쌓기 게임을 하였습니다. 우리 팀은 서로 경쟁해 보면서 누가 잘하는지 비교하기 바빴는데, 잘하시는 분들은 팀원들이 다른 사람 하는 것을 관찰하고 피드백 하던 것을 보았습니다. 우리가 업무에 적용해 본다면 어떨까요

+ Recent posts