프로그래밍을 할 때 인지 과정이 어떤 역할을 하는지, 업무 중단이 미치는 인지적 영향이 무엇인지에 대해 알아보는 장
11.1 프로그래밍 중 이루어지는 다양한 활동
프로그래밍 중 발생하는 인지 활동은 토머스 그린 등에 의한 인지적 차원 표기법
이라는 프레임워크로 평가할 수 있다. 여기서는 활동을 검색, 이해, 전사, 증가, 탐구라는 다섯 가지 활동으로 기술한다.
- 검색 : 코드베이스를 살펴보고 특정 정보를 검색하는 작업
- 검색 대상, 탐색 경로 및 이유, 심층 탐구 사항 등을 기억해야하므로 STM에 무리를 가한다.
- STM 부하를 줄이기 위해 별도의 기록을 하는 것이 도움이 될 때가 있다.
- 코드를 일시적으로 변경하거나, 코드를 살펴본 이유를 주석으로 기록할 수도 있다.
- 이해 : 코드를 읽고 실행하면서 기능을 이해하는 작업
- 작업 기억 공간에 무리를 가함
- 코드를 읽기 쉽게 리팩터링하거나 코드에 대한 모델을 생성하여 정보가 추가될 때마다 모델을 갱신하는 방식으로 작업 기억 공간의 지원이 가능하다
- 전사 : 추가할 코드에 대한 구체적인 계획이 있고, 단지 그 계획을 수행하는 것
- 문법만 신경쓰면 되니 LTM에 부하를 유발한다
- 증가 : 검색, 이해, 전사가 합쳐진 활동. 새 기능을 추가하는 것
- 기록, 리팩터링 등이 도움이 될 수 있으며, 하위 작업으로 분할하여 수행할 수 있다
- 탐구 : 코드를 사용하여 스케치하는 것과 같고, 무엇을 해야할지 모를때 문제의 도메인과 사용해야하는 프로그래밍 구성 요소를 파악하는 작업
- IDE의 도구에 의존하며, 다른 활동에 의존하기에 모든 기억 공간에 부하가 간다
- 계획을 문서화하는 것이 도움이 될 수 있다.
11.2 프로그래머의 업무 중단
프로그래머 업무 중단은 흔히 발생하며 오늘날 더 많이 발생하고 있다. 평균 업무 시간의 20% 가 업무 중단에 쓰인다
프로그래밍 작업에는 워밍업이 필요하다
나카가와의 연구에 따르면 프로그래밍 과정에는 워밍업 - 중간 - 냉각 단계가 있으며 중간 단계에서 가장 높은 인지부하가 발생한다.
중단 후에는 어떻게 되는가?
파닌의 연구 결과에 따르면 업무가 중단된 후 다시 업무를 재개하는데 평균 25분이 소요됐다.
업무가 중단이 되면 작업 기억 공간에 원래 작업하던 코드에 대한 중요한 정보를 잃어버리고, 다시 작업으로 돌아가려면 의도적으로 노력해야한다. 이를 위해서 코드의 여러 위치를 찾아다닌 경우가 많았다.
일부 참가자들은 업무가 중단되기 전에 무의미한 코드를 추가하여 일부러 컴파일 오류를 발생시키기도 하였다. 파닌은 이를 장애물 경고
라고 불렀다. 코드를 미완성 상태로 끝내지 않고 나중에라도 마무리 짓기위한 방법이었다.
중단에 잘 대비하는 방법
- 정신 모델 저장
- 메모, 주석으로 정신 모델을 코드와 별도로 저장하면 정신 모델을 빠르게 되찾아 올 수 있다.
- 코드는 프로그래머의 사고 과정을 거의 설명하지 못하기에 어떤 결정을 왜 내렸는지 주석으로 작성한다면 다른 사람이 읽을때도 도움이 되고, 자신의 정신 모델도 저장할 수 있으므로 업무 재개에 도움이 된다.
- 업무가 중단 될 때 잠시 주석을 작성하여
브레인 덤프
를 하는 것은 유용할 수 있다
- 미래 기억 향상
- 미래에 무언가를 할 것인가에 대한 기억을 상기 시키는 것
- 개발자는 주로 “TO DO” 주석문을 달곤 하지만 이는 잊혀질 가능성이 있긴하지만 사용될 수 있다.
- 의도적인 컴파일 오류, 메모, 이메일, 외부 툴 등도 사용될 수 있다.
- 하위 목표 라벨 붙이기
- 문제를 작은 단계로 나누고, 이를 주석으로 작성하여 다시 업무를 재개할때 생각을 정리하는데 도움이 될 수 있다.
- 단계를 나누는 것은 해결책을 생각하는데 도움을 줄수 있고, 주석은 그대로 문서가 될 수 있다.
프로그래머를 방해할 때
슬랙의 상태표시, 플로라이트 등으로 인지 부하가 낮을때 중단이 발생하도록 설정할 수 있다.
멀티태스킹에 대한 고찰
깊은 인지 작업을 하는 동안 여러 가지 일을 할 수 없다는 증거가 압도적으로 많다.
자율 단계에 도달한 작업은 동시에 할 수 있는데(ex : 음악을 들으면서 책을 읽는 것), 이또한 다른 작업에 인지부하가 심해지면 음악을 끄는 등 멀티태스킹을 멈추게 된다.