13. 새로운 개발자 팀원의 적응 지원
#
13.1 적응 지원의 문제- 자신이 쉽다고 배우는 사람에게는 그 과정이 쉽지 않을 수 있습니다.
#
13.2 전문가와 초보자의 차이- 앞에서 전문가들이 다르게 생각할 수 있는 이유는 다음과 같습니다.
- 첫째, 전문가의 뇌는 LTM에 관련 기억을 많이 저장하는데 이 저장된 기억을 작업 기억 공간이 필요로 할 때마다 가져옵니다.
- 둘째, 전문가는 코드 및 코드와 관련 있는 모든 사항, 즉 오류 메시지, 테스트, 문제, 해결책 등을 매우 효과적으로 청킹할 수 있습니다.
#
13.2.1 초보자의 행동에 대한 심층적 이해- 피아제의 모델을 사용해서, 프로그래밍에 적용할 수도 있습니다.
단계 | 특징 | 프로그래밍 행위 |
---|---|---|
감각운동기 | 아이들은 계획이나 전략이 부족하다. 단순히 물건을 더듬어 잡는다. | 프로그래머는 프로그램 실행에 대해 일관되지 못하게 이해한다. 프로그램을 정확하게 추적할 수 없습니다. |
전조작기 | 아이들은 가설과 계획을 형성하기 시작하지만 이것들을 사고할 때 안정적으로 사용하지 못합니다. | 프로그래머는 상태표 등을 만들어 여러 줄의 코드 결과를 수동으로 예측할 수 있습니다. 이 단계의 프로그래머는 종종 코드의 일부가 무엇을 하는지 추측합니다. |
구체적 조작기 | 아이들은 자신들이 보는 구체적인 것에 대해 추론할 수 있으나 일반적인 결론을 끌어내기는 어렵습니다. | 프로그래머는 전조작기처럼 귀납적 접근법을 사용하기보다 코드 자체를 읽음으로써 코드에 대해 연역적으로 추론합니다. |
형식적 조작기 | 형식적 추론이 가능하다. | 프로그래머는 논리적으로 일관적이며 체계적으로 추론할 수 있습니다. 여기서의 추론은 자신의 행위를 뒤돌아보는 것을 포함하며, 이것은 디버깅에 필수적입니다. |
#
새로운 정보를 학습하며 일시적으로 다른 것들을 잊어버릴 수 있습니다.#
13.2.2 개념을 구체적으로 보는 것과 추상적으로 보는 것의 차이#
13.3 적응 지원 개선#
13.3.1 작업은 하나의 프로그래밍 활동으로만 제한- 프로그래밍 활동의 개요 및 프로젝트에서 새 팀원을 지원하는 데 사용할 수 있는 방법
활동 | 적응 지원 교육 대상자를 지원하기 위한 예시 |
---|---|
탐구 | 코드베이스의 전체적인 이해를 위한 코드 훑어보기 |
검색 | 특정 인터페이스를 구현한 클래스 찾기 |
전사 | 구현할 메서드에 대한 명확한 계획을 알려주기 |
이해 | 코드의 여러 측면에 대해 이해하기, 예를 들면 특정 메서드를 요약하기 |
증가 | 향후 계획을 포함해서 기존 클래스에 한 가지 기능을 추가하기 |
#
13.3.2 새 팀원의 기억 지원#
LTM 지원: 관련 정보 설명- 코드베이스 작업 시 중요한 역할을 하는 관련 정보를 숙지해둠으로써 새로운 사용자를 위한 적응 지원 과정을 준비할 수 있습니다.
코드 탐구를 통한 별도의 도메인 학습
- 코드와는 별도로 모든 관련 개념을 검토하면 코드에 대해 배우는 것이 더 쉬워집니다.
#
STM 지원: 규모가 작고 집중할 수 있는 작업의 준비- 적응 지원 과정을 여러 단계로 나누는 것이 좋습니다.
만드는 것보다 이해를 하는 것이 더 환영할 만한 작업
- 새 팀원이 코드의 특정 부분을 이해하길 원하면 구현 작업 대신, 해당 코드를 이해하도록 요청해야 합니다.
#
13.3.3 코드 함께 읽기- 자연어 테스트 이해의 7가지 기법이 있습니다.
- 활성화, 관련된 것들을 적극적으로 생각해서 이미 가지고 있는 지식을 활성화하는 것
- 모니터링, 텍스트를 읽으면서 자신이 이해한 것을 관찰하고 기록하는 것
- 중요도 결정, 텍스트에서 어느 부분이 중요한지 결정하는 것
- 추론, 텍스트에서 명시적으로 주어지지 않은 사실을 유추하는 것
- 시각화, 깊이 있는 이해를 위해 텍스트에 대한 도표를 만드는 것
- 질문, 텍스트에 대해 질문하는 것
- 요약, 텍스트를 짧게 요약하는 것
#
요약- 전문가들은 초보자들과 다르게 생각하고 행동합니다. 전문가는 코드에 대해 추상적으로 추론할 수 있고 코드 자체를 언급하지 않고도 코드에 대해 생각할 능력을 가지고 있습니다. 초보자는 코드의 세부 사항에 집중하는 경향이 있고 세부 사항에서 벗어나는 데 어려움을 겪습니다.
- 중급 프로그래머들도 새로운 정보를 배우다 보면 초급 수준의 사고방식으로 떨어질 때도 있습니다.
- 새로운 개념을 배우는 사람들은 추상적인 용어와 구체적인 예를 모두 배울 필요가 있습니다.
- 새로운 개념을 배우는 사람들은 또한 새로 배운 개념을 기존 지식과 연결할 시간이 필요합니다.
- 적응 지원 과정에서 새 팀원이 수행할 프로그래밍 활동은 한 번에 한 개로 제한해야 합니다.
- 적응 지원 과정에서 새 팀원의 장기, 단기, 작업 기억 공간을 지원하기 위해 관련 정보를 준비해야 합니다.