본문 바로가기

관심사/독후감

제럴드 와인버그 <프로그래밍 심리학> 1-2장 요약


1장. 프로그램 읽기

p. 43

명세는 프로그램, 프로그래머와 함께 진화한다. 프로그램을 작성한다는 것은 일종의 학습 ( 프로그래머와 프로그램 사용자 모두에 대한)이다. 

게다가 이 학습 과정은 특정 기계와 특정 프로그래밍 언어, 특정 작업 환경에서 일하는 특정 프로그래머 또는 팀 그리고 코드의 모양새 뿐만 아니라 코드가 하는 일까지도 좌지우지하는 일련의 역사적인 사건들로 이뤄진 문맥내에서 일어난다. 

..

우리가 프로그램 작성 과정을 연구하는 가장 중요한 목적은 좀 더 효율적이고 치밀하고 저렴하고 이해하기 쉬운 프로글매을 만들기 위함이 아니다. 그보다는 프로그램이 하는 일이 우리가 프로글매에게 원했던 바로 그것이길 바란다. 이러고 저러다 보니 그렇게 된 프로그램 말고 말이다. 

..

어떤 프로그램이 현재의 모습을 갖게 된 데에는 다 이유가 있다.

코드를 읽어 보면, 어떤 부분은 기계나 언어 또는 프로그래머의 한계 때문에 그런 모습이 되었고, 또 어떤 부분은 당시 존재했던 외부 사건 때문에 혹은 주어진 명세 때문에 그렇게 작성되었음을 알 수 있다. 최종 산출물에 포함된 코드에는 각각 나름의 이유가 있고, 그 이유들에는 심리적인 면이 있다. 


2장. 좋은 프로그램이란 무엇인가?

p. 56

일정

사람들은 어떤 일에 드는 시간의 평균보다는 편차를 더 중요하게 생각한다. 그래서 사람들이 출근 버스를 보통 1분씩 기다리다가 5일 중 하루는 26분을 기다리는 것보다 매일 10분씩 일정하게 기다리는 쪽을 더 좋아한다. 전자의 평균 대기시간은 6분으로 10분인 후자보다 더 작지만, 단 한번의 원치 않는 긴 기다림이 평균 4분 차이를 상쇄할 만큼 싫은 것이다. 

이 연구 결과가 프로그래밍에도 적용된다면, 특정 개발 방법론을 연구할 때 개발 기간이 변하는 데 얼마나 영향을 끼치는지 측정해야 한다. 지금처럼 평균 시간만 재서는 안된다.