이 이야기는 내가 최근에 링크드 인에 멀티 크 포럼에 게시 된 메시지의 편집 된 버전입니다.
변경 사항을 "라이브로 이동"하는 것은 강력한 인센티브가 될 수 있습니다. 이것은 내가 Multics에 도입 한 첫 번째 버그에 대한 이야기입니다, 이는 1960 년대 후반과 1970 년대 초에 MIT에서 생성 된 주요 운영 체제였다.
저는 멀티크스 프로젝트에 합격한 젊은 MIT 신입생이었습니다. 나는 라인 프린터 데몬이 처리할 요청을 큐에 대기하는 dprint("데몬 프린트") 명령에 기능을 추가하기 위해 자원했습니다. 관리자 중 한 명이 큐에 N 요청을 추가하는 대신 요청에 복사본 수를 기록해 달라고 요청했습니다. 이 변경은 완료된 인쇄 요청의 삭제와 관련된 레이스 조건을 해결할 수 있습니다. 나는 변화를 만들어 내 만족을 테스트했다.
내 변화는 곧 설치되었고 나는 시스템을 개선 할 수 있게되어 기뻤습니다. 하지만 내 스릴은 오래 살았고, 곧 사무실 전화에 응답하고 내가 자신의 프로그램을 어겼다고 불평하는 화가 나는 사용자를 듣고 자신을 발견했다. 나는 다시 가서 내가 발견하지 않은 것을 보았다, 또는 테스트, 같은 소스 파일에 하위 루틴 진입점을. 물론, 나는 그것을 깨뜨렸다. 나는 그것을 고쳤고 삶은 계속되었습니다. 그러나 나는 그 전화를 결코 잊지 않았다. 나는 여전히 완벽하지 는 않지만, 내 머리 안에 울려 퍼지는 화가 나는 목소리가 수년 동안 많은 유사하고 부주의한 오류를 만드는 것을 막았습니다.
이 경우 내가 만든 격언은 "테스트되지 않은 코드가 작동하지 않습니다."
코드를 테스트합니다. 자신의 버그를 찾아; 다른 사람들이 그들을 찾을 수 있도록하지 않습니다. 화가 나는 목소리를 피하십시오!