일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 루스틱
- 여행
- neovim
- 가람집옹심이
- 여니브레드
- 오운완
- 강릉여행
- 런데이애플워치
- 마법의연금굴리기
- 한국걱정
- 마연굴
- apollo-sandbox
- 런데이
- 티지아이포럼
- lner
- 중사랑
- 프로젝트헤일메리
- Zone2
- 달리기
- 송고버섯피자
- 트럼프2.0시대
- 일권하는사회
- 잘쉬어야지
- deepseek
- schema-registry
- 플라스틱은 어떻게 브랜드의 무기가 되는가
- apollo-server-v3
- kafka-connect
- 이코노미스트한국구독센터
- 저동하녹
- Today
- Total
해뜨기전에자자
좋은 도구를 만들어야 하는 이유 본문
나에게 여덟 시간을 주고 나무를 자르라고 한다면, 나는 도끼를 가는데 여섯 시간을 쓸 것이다. - 에이브러햄 링컨
도구의 우수함에 따라 작업 효율이 달라진다는 것을 이렇게 잘 표현한 격언이 있을까? 평소에 도끼만 잘 갈아두어도 나무꾼의 작업 효율 즉, 실력은 상승한다. 좋은 도구를 잘 사용하는 것은 실력과 큰 상관 관계가 있는 것이다. '당신은 남들보다 일을 좀 더 효율적으로 하기 위해 직접 만들어 쓰는 본인만의 도구나 방법이 있는가?'라는 질문은 상대의 전문성을 빠른 시간 내에 간파하기 위한 기법 중 하나로, 좋은 면접 질문이 되기도 한다. 김창준 님의 글(애자일 김창준 블로그)을 통해서 실력을 키우는 방법을 알아보고, 도구와 어떤 상관이 있는 지 생각해 보았다.
애자일 방법론의 김창준님은 실력을 성장시키기 위한 방법으로, 양적으로 1만 시간을 채운다는 한다는 조건 하에, 질적으로 어떤 조건을 갖춰 의도적 수련을 해야만 가능하다고 말한다. 어떤 조건 하에 의도적 수련을 거듭하면 실력을 늘릴 수 있다는 것이다. 그 조건은 '적절한 난이도'이다. 나의 실력보다 쉬운 일(a)을 하는 경우 지루함을 느끼게 되고, 어려운 일(b)을 하게 되면 불안감이나 두려움을 얻게 된다. 아래 그림에서 빨간 동그라미 부분이다. 난이도와 실력이 비슷한 경우(c) 우리는 '몰입'을 경험할 수 있고 "최고 수준의 행복감과 최고 수준의 집중력을 보이고, 그 덕분에 퍼포먼스나 학습 능력이 최대치를 보일 수 있다"고 한다.
이때 스스로 어떤 상태인지 알아차리는 것이 중요하다. 자기 인식 혹은 알아차림(mindfullness)이다. 불안함을 느끼거나 지루함을 느끼고 있다면 적절한 난이도의 과제가 아니기 때문에 실력이 늘기 어려운 환경에 있다는 것을 파악해야 한다. 지속해서 불안하거나 지루한 상태에 놓이게 된다면 그런 환경에 익숙해지고 행동이 습관화 되어 자기 인식을 하기 어려운 상태에 놓이게 된다. 그렇기 때문에 1) 지속적으로 현재 자신의 감정 상태를 검토하면서 내가 지금 지루한지 불안한지를 느끼고 2) 그 경우 네가지 전략을 적절히 사용하고 다시 1)번 감정 상태 검토로 돌아가는 싸이클을 유지해야 한다고 말한다.
그러나 목표를 자체를 조정할 수 있는 경우는 드물다. 그럴 때 우리는 몇가지 조건을 추가해 실력이나 업무 난이도를 조절하여 몰입 영역으로 이동하도록 할 수 있다. 일이 지루한 경우에는, 작업의 난이도가 쉬운 경우에는 본인의 실력을 낮추거나(a1) 작업의 난이도를 높이면(a2) 된다. 불안감을 느끼고 있는 경우, 즉 작업의 난이도가 높은 경우에는 난이도를 낮추거나(b1) 실력을 높여서(b2) 몰입 영역으로 들어갈 수 있다.
실력을 낮추는 방법(a1)으로는 평상시에 즐겨 쓰던 보조 도구를 일부러 쓰지 않는 방법이 있다. 마우스 없이 혹은, 디버거를 쓰지 않고 개발을 해보는 것이다. 실력이 떨어진 느낌이 들겠지만, 난이도와 실력이 잘 맞는다면 좀 더 집중하게 되기 때문에 의도적 수련이 될 수 있다.
난이도를 높이는 방법(a2)으로는 자신만의 제약을 추가하는 방법이 될 수 있다. 제약 시간을 추가한다거나, 리팩토링이나 자동화 테스트를 다는 등 공식적으로 안해도 되는 업무를 자신의 의지로 추가로 해볼 수도 있다. 그 중 가장 좋은 방법은 자신만의 도구나 방법을 만들어보는 것이다. 자주 일어나는 반복적 패턴을 파악하고 분석하여 부족한 시간을 짬을 내어 도구를 고안하고 작성 해보는 것이다. (도구로는 '이미 내가 아는 단계를 자동으로 진행하게 해주는 실행적 도구'와 '현 상황 파악을 쉽게 해주는 탐색/분석적 도구' 두 가지로 나눌 수 있다.)
난이도를 낮추는(b1) 간단하면서도 효과적인 방법으로, 자신이 맡은 일의 가장 최소 기능을 갖춘 버전을 첫번째 목표로 삼는 것이다. 애자일에서 말하는 WTSTTCPW(What's The Simplest Thign That Could Possibly Work?)와 같다.
실력을 높이는 방법(b2)은 장기적, 단기적 접근 두가지로 나눠 생각해 볼 수 있다. 장기적으로 실력을 높이는 방법은 다양하다. 책을 읽거나 스터디에 참가하거나 교육을 들어볼 수 있다. 그러나 정작 문제가 되는 것은 "지금 당장"이다. 이 경우에는 크게 사회적 접근, 도구적 접근, 내관적 접근 세가지가 가능하다. 사회적 접근은 나보다 뛰어난 전문가의 도움을 얻는 것이다. 잘하는 사람에게 짝프로그래밍을 해달라고 부탁하거나, IRC에서 전문가의 도움을 얻어본다. 혹은 괜찮은 문서나 유튜브가 있다면 따라가보는 것도 좋다. 도구적 접근은 다른 도구의 도움을 받는 것이다. 내 능력을 확장시켜 줄 수 있는 괜찮은 디버거, 자동 통합 도구, 코드 분석 툴, REPL환경, 오픈 소스 라이브러리 등의 도구를 사용해보는 것이다. 내관적 접근은 내가 비슷한 일을 했던 경험을 뒤져서 되살려 보는 것이다. 그 때 내가 어떻게 했더라 기억하면서 비유적으로(analogically) 문제해결을 한다. 보통 이런 과정을 거치면 자기 효용감이 증대하면서 내가 인식하는 자기 실력이 향상되기 쉽고 결과적으로는 몰입존으로 들어가기 좋다.
모든 업무를 내가 온전히 선택하는 경우는 드물다. 어떤 업무를 받느냐에 따라 아싸!를 외치기도 하고, 이 과제를 잘 해낼 수 있을 지 불안하고 두려워 괴로운 마음 상태에 빠지기도 한다. 그럴 때 마다 감정의 상태를 잘 살펴보고 업무의 난이도에서 온 매너리즘 혹은 괴로움을 해결하기 위해 위에서 제시한 4가지 방법을 써 업무를 잘 해결은 물론 실력을 향상시킬 수 있다. 김창준님이 말하는, 실력을 키우기 위한 '적절한 난이도'를 얻기 위한 방법 4가지 중 3가지가 도구와 연관되어 있는 것은 우연은 아니다. 보조 도구를 쓰지 않거나, 본인 만의 자동화, 분석 도구를 만들거나, 다른 도구를 도입&이용하여 나의 문제를 푸는 방법들이 난이도에 맞게 적절히 사용된다면 모두 나의 실력을 키우는 데에 도움이 된다.
혹자는 좋은 도구를 사용하는 것을 '거인의 어깨 위에 올라서는 것'으로 표현하기도 한다. 인간은 도구를 만들고, 도구는 인간의 뇌를 변화시킨다. 도구에 맞춰 사고하게 되기 때문이다. 그렇기 때문에 좋은 도구의 선택은 실력 향상에 중요하다.
'삶 > Reviews' 카테고리의 다른 글
이코노미스트 일년 후기 (3) | 2024.12.22 |
---|---|
재택 커피 정착기 (1) | 2020.09.28 |
[클린코더: 엉클밥] 당신은 프로인가? (0) | 2020.05.25 |
[sky 빛의 아이들] 연휴를 마치며 - 게임 후기 (0) | 2020.05.04 |
[팩트풀니스: 한스로슬링] 당신의 본능과 착각 (0) | 2020.04.20 |