'함께 자라기'를 읽다
전에 함께 커피챗을 했던 오후 러너뿐만 아니라 같은 팀의 러너에게도 추천받은 책이었다. 개발자로서 어떻게 성장할 수 있는지에 대한 조언이 담겨있다는 말에 책을 읽기 시작했다. 하지만 책을 한 장 한 장 넘겨도 그들의 감상이 내게 와닿지는 않았다. 너무 당연한 이야기들을 하고 있지 않나 생각했기 때문이다. 책에서 제시하는 학습 방법들이 나에게는 익숙한 내용들이었다. 교육학 서적에서 자주 보던 개념들이 나타나 반가워하며 조금은 심드렁하게 책을 읽어갔다.
아이러니하게도 이런 생각은 'SQ3R'이라는 아주 익숙한 단어를 접하면서 달라지기 시작했다. 프로그래밍을 빠르게 학습하기 위해 적극적으로 읽기 목적을 설정하고 수행하는 사례를 보며 나의 독서 태도를 반성하게 되었다. 나는 이 책을 왜 읽고 있는 걸까? 단순히 추천받았기 때문인가? 그토록 잘 안다고 자부한 내용임에도 불구하고 학습과 실천이 일치하지 않는 나의 모습이 너무 부끄러웠다. 이후 나는 이 책에서 얻고자 하는 목적을 명확하게 설정한 후 다시 읽기 시작했다. 그제서야 러너들이 왜 이 책을 추천할 수 있었는지 알 수 있었다. '함께 자라기'는 정말 좋은 책이었다. 어떻게 하면 함께 자랄 수 있을까? 내가 이 책에서 배운 내용을 중점으로 글을 쓰고자 한다.
함께 자라기를 읽는 목적: 나는 이 책에서 무엇을 배울 것인가?
이 책을 읽으면서 내가 얻고 싶은 인사이트에 대해서 정리해보았다.
그래서 이 책을 통해 무엇을 배웠나요?
앞서 이야기한 오후 러너분이 '글쓰기와 코딩이 닮았다'고 말한 적이 있다. 당시 나는 그 말이 전혀 와닿지 않았다. 어느 지점에서 글쓰기와 코딩이 닮았다는 건지 궁금했지만, 타이밍을 놓쳐 묻지 못했다. 그 말이 오랫동안 내게 남아있었다. 언젠가는 그 궁금증을 해결하고 싶었다. 그러다 이 책을 읽으며 그 말의 의미가 무엇인지 내 나름대로 이해할 수 있게 되었다.
사람들에게 좋은 글을 쓰기 위해서 필요한 것이 무엇인지 묻는다면, 대부분의 사람들은 좋은 소재를 잡는 것이 중요하다고 대답한다. 특별한 소재가 특별한 이야기를 가져다 줄 것이라고 생각하는 것이다. 하지만 글을 목표지향적인 행위로 보는 이론에서는 좋은 글을 쓰기 위해선 수정을 잘 해야 한다고 주장한다. 해당 이론에서 작문은 계획, 자료 수집, 내용 생성, 개요 작성, 초고 작성, 고쳐쓰기의 과정을 거쳐 이루어지는 행위이다. 글쓰기에 능숙한 필자는 글을 쓰기 이전에 글을 어떻게 써내려 갈 것인지 충분한 시간을 들여 계획을 잡고, 내용을 구성하며 이를 토대로 개요를 작성한다. 그리고 초고를 작성한 후에도 여러 번 글을 읽어보며 고쳐쓰기에 많은 시간을 투자한다.
또 다른 이론에선 글을 사회화의 행위로 본다. 필자는 공동체에 속하기 위해 해당 공동체의 글쓰기 관습과 규범을 배우고, 이를 따르기 위해 '합의'를 수행해야 한다. 즉, 자신의 담화 공동체와 대화, 협상을 통해 의미를 형성해 나가는 과정이 글쓰기인 것이다. 이 이론에서 좋은 글이란, 다른 사람들과의 협업과 대화를 통해 구성된 의미를 공동체의 관습과 규범에 맞게 작성된 글이다.
생각해보면 코딩도 이와 비슷하다. 좋은 코드를 작성하기 위해선 이 코드를 통해 어떤 프로그램을 만들어야 하는지 문제를 명확히 해야한다. 코드를 작성하기 전에는 어떤 로직을 써야 하는지 어떤 도메인 지식이 있는지 확인하고 계획하는 데 많은 시간을 투자해야 한다. 코드를 작성한 후에도 더 나은 코드로 개선하기 위해 리팩토링도 한다. 게다가 혼자서 하는 작업이 아니기 때문에 convention의 규칙을 정하며 어떤 의미를 어떻게 전달할 것인지 해당 팀과의 관습과 규범을 설정해야 한다. 그 과정에서 코드리뷰를 수행하며 팀원들과의 대화를 통해 코드의 의미를 파악하는 시간을 갖기도 한다. 위에서 이야기하는 글쓰기 이론과 코드를 작성하는 행위가 정말로 닮아있다! 심지어 나 혼자 코드를 작성할 때에도 미래의 '나'(독자)가 과거 '나'(필자)의 코드를 이해할 수 있도록 의미를 명확하고 깔끔하게 작성해주어야 한다. 이를 위해 혼자 작성하는 코드에서도 규칙을 설정하고 이에 맞춰 개발을 진행하기도 한다.
결국 개발을 잘 하는 것이란, 좋은 글을 쓰는 것과도 같다. 각 단계 마다 충분한 시간을 들여 문제를 해결할 수 있어야 하고, 그 코드 의미를 다른 개발자와의 대화를 통해 이해하고 받아들일 수 있도록 작성해야 하는 것이다.
개발과 글쓰기가 비슷하다는 생각이 들다보니 자꾸만 닮은 점만 들어온다. 글쓰기 이야기를 조금 더 해보자면, 협동 작문이라는 개념이 있다. 보통 글쓰기는 혼자 하는 활동을 이해하기 쉽다. (사실 인지주의 작문에서는 작문을 홀로 의미를 구성하는 행위로 정의하기 때문에 맞는 말이긴 하다.) 협동 작문은 하나의 모둠이 협의를 통해 하나의 글을 완성하는 활동을 의미한다. 작문 과정에서 구성원과의 협의와 공유를 통해 글쓰기라는 문제에 최선의 해결방안을 찾아내는 것이다. 이 협동 작문의 방식이 내가 앞으로의 챌린지에서 협업을 잘 하기 위해 노력해야 하는 방향과 닮아있다는 생각이 든다. '앱 만들기'라는 목적을 향해 팀원들과 함께 어떻게 문제를 해결할 수 있을지 끊임없는 협의와 공유해야 한다. 내가 이 지점에서 다른 사람들보다 조금 더 도움을 줄 수 있는 부분이라면, 구체적인 문제 상황을 설정할 수 있도록 적당한 틀을 잡아주는 것이나 공유, 협의 과정에서 상대방을 공감하고 이해하는 대화 방법에 대한 지식을 나눌 수 있을 것이다.
이번 MC3를 진행하면서 팀원들에게 미안한 마음이 많이 들었다. 다른 팀원들이 나보다 훨씬 많은 일을 하고 있는 것을 알고 있기 때문이다. 어느 챌린지에서도 그러했지만, 이런 감정은 특히 구현 단계에 들어가면 더욱 강해진다. '내가 무엇을 할 수 있지?' 라는 고민이 많아지기 때문이다. 더 많은 개발을 하고 싶지만 개발이 아직 능숙하지 않고, 욕심을 내보려다가도 내가 공부한 지식이 도움이 되지 않을 것 같다는 생각에 결국 한 발짝 뒤로 물러서곤 한다. 누군가를 가르쳐가며 일을 진행하기 보다는 그냥 잘 하는 사람이 얼른 해버리는 게 나을 때가 있다는 것을 알고 있기 때문이다. 촉박한 시간에 쫓기다 보면 더더욱 그렇다. 그렇다면 내가 개발자로 성장하기 위해선 어떤 노력을 더 해야 할까? 결국 '함께 자라기'에 대한 노력일 것 깉다.
마지막 3장에서 애자일하게 살아가는 방법에 대해 작가는 '고객에게 매일 가치를 전달하자'라고 이야기한다. 불확실성이 큰 상황에서 학습과 협력은 좋은 대응 전략이며 '매일' 학습할 수록 현재 위치와 목적지의 위치를 계속 확인하며 피드백을 얻을 수 있기 때문이다. 또한 '고객'뿐만 아니라 제품을 만들어가는 모든 이해관계자에게 진정한 가치를 전달하고 있는지 확인해야 한다고 강조한다. 이처럼 '매일' 학습하며 나의 학습이 목적과 일치하는지 확인하면서, 내가 다른 팀원들에게 배움을 얻는 만큼 어떤 가치를 전달할 수 있는지 '함께 자라'는 측면에서 고민해야겠다. 분명 나의 지식과 날것과도 같은 생생한 시선이 다른 팀원에게 도움이 될 수 있을 것이다. '두려워도 중요하다면 시도해야 한다'는 작가의 말처럼, 나도 이제는 도움이 되지 않는다는 두려움에 뒤로 물러서기 보다는 도움을 줄 수 있는 방향으로 적극적으로 시도해봐야겠다.
함께 자라기를 읽으면서 메모한 기록들
# 프로그래밍 언어 배우기의 달인 → CTA(인지적 작업 분석, Cognitive Task Analysis)
1. 튜토리얼을 읽을 때 뭘 만들지 생각하고 읽는다.
2. 공부할 때 표준 라이브러리 소스코드를 읽는다
3. 공부 중 다른 사람의 코드에 내가 필요한 기능을 추가한다.
4. 전문성을 효과적으로 뽑아내는 전문가 되기
# 실수는 예방하는 것이 아니라 관리하는 것이다
# 어떤 기술적 실천법이라도 그걸 현실에서 적용하기 위해서는 사회적 자본과 기술이 필요하다
[참조] TDD: Test-Driven Development, 테스트 주도 개발
# 팀과 그룹
→ 작업 불확실성이 높을수록 그룹보다 팀이 더 좋은 퍼포먼스를 보임
# 코드의 추상화를 높이는 방법 → 협력, 대화
# 복수의 시안을 공유 : 신뢰를 높이는 공유
# 빠르고 빈번한 바통 터치가 가능한 전문가 조직
# 비전문가 팀의 성공비결 → 협력 개입을 통한 빠른 정보 공유
# 심리적 안전감
# 리더가 팀 학습 속도에 미치는 영향
1. 팀원을 뽑을 때
2. 업무를 대하는 태도
3. 심리적인 보호
⇒ 학습을 팀의 중대한 목표로 받아들이기, 기회와 가능성, 큰 변화의 흐름에 동참하는 중요성과 즐거움 강조
# 어떻게 하면 애자일스럽게 살아갈 수 있을까?
[MC3] AppleAcademy MC3 회고록 24주차 (0) | 2024.08.21 |
---|---|
[MC3] AppleAcademy MC3 회고록 23주차 (0) | 2024.08.21 |
[MC3] AppleAcademy MC3 회고록 21주차 (0) | 2024.08.01 |
[MC3] AppleAcademy MC3 회고록 20주차 (0) | 2024.07.21 |
[MC3] AppleAcademy MC3 회고록 19주차 (1) | 2024.07.17 |
댓글 영역