장을 마치며
끊임없는 학습은 축복으로도 저주로도 생각할 수 있다. 새로운 것을 배우
는 일은 고통스러울 수 있으며, 특히 의무적으로 배워야 하거나 지도해줄 이
가 없을 때 더욱 그렇다. 하지만 격렬한 연습 후에 오는 근육통을 참고 견뎌
야 하는 운동 선수처럼, 소프트웨어 개발자는 새로운 것을 배울 때 따라오
는 정신적인 부조화
35
를 견뎌내야만 한다. 그런 부조화는 일이 잘 진행되고
있다는 표시일 수 있다. 자기 성찰, 피드백 루프를 통한 실패의 분별, 자신의
약한 점에 대해 알게 되는 것, 이런 것들은 모두 표면상으로는 부정적으로
보이지만, 이 패턴들을 이용해서 당신의 무지함을 줄여갈 수 있다. 무지를
줄이는 다른 대안은 당신이 이미 알고 있는 것에만 오로지 집중하는 것인
데, 이것은 소프트웨어 장인정신으로 향하는 길이 아니라 전문적인 어떤 영
역에 특화되는 길이다. 논문 「The Five Orders of Ignorance」에서 필립 아
머
Phillip Armour
는 소프트웨어를 개발하는 데 무지와 지식의 역할에 주목
한다.
소프트웨어는 제품이 아니며, 지식을 저장하기 위한 매개물이다. 그러므로 소
프트웨어 개발은 제품 생산 활동이 아니라 지식을 습득하는 활동이다. 지식
은 무지란 동전의 다른 면일 뿐이다. 따라서 소프트웨어 개발이란 무지를 줄
이는 행위라 할 수 있다.
35
(옮긴이) 새로 배운 지식과 기존 지식을 융화시키는 것에 대해서는 2장의 흰 띠를 매라 패턴을 참
조하라.