소프트웨어를 개발하는 작업은 분명히 예술성을 포함하고 있습니다. 그렇기 때문에 작업을 수행하는 개발자 또한 예술가로 볼 수도 있습니다. 하지만, 예술가로 단정짓기 어려운 성질도 함께 포함하는 것이 소프트웨어 개발자 또는 개발 작업입니다.

우리가 전부터 잘 알고 있던 직업 중에서 소프트웨어 개발자와 비슷한 직업을 찾아보자면 ‘도공’을 머리 속에 떠오릅니다.

도공이 만드는 도예품은 예술적인 성격이 있습니다. 그러나 그에 못지 않게 실생활에서의 유용성이 없는 것도 아닙니다.예술성과 실용성이 둘 다 포함된 것이 도예품이고, 그것을 만드는 사람이 도공입니다.

도공이란 직업을 자세히 들여다보면 세가지의 모습이 있다는 것을 알아챌 수 있습니다.

소스 코드

첫번째는 옹기와 같은 실용적인 측면이 강한 것을 만드는 도공입니다.

저는 이 도공을 SI와 같은 작업을 수행하는 개발자와 비교하고 싶습니다. 기한, 수량, 품질 등이 정해져 있고, 이것들은 경제적인 측면과 강하게 묶여 있습니다. 이를 만드는 도공에게 요구되는 기술이나 숙련의 정도도 명확합니다. 시장은 크고, 수요도 많으며 필요한 도공의 수도 많습니다. 몇몇 부분은 자동화가 되어 있기도 합니다.

두번째는 공방에서 소량의 여러 도자기를 만드는 도공입니다.

이런 도자기들은 수량이 많지 않고, 대부분 다품종 소량 생산을 하며 종종 외부의 요청에 따라 소량의 주문 생산을 하기도 합니다. 고객의 요청에 예술성을 발휘해서 그 이상의 제품을 만들어 내야 하는 책임이 주어지기도 합니다. 시장의 흐름을 미리 읽고 고객들이 필요한 것을 상상해서 만들어야 할 경우도 있습니다. 패키지 소프트웨어나 스마트폰/태블릿용 앱을 만드는 개발자들과 비교 가능 할 것입니다.

세번째는 상업성 보다 예술성을 중요시하는 도공입니다.

스스로 인정 할 수 있는 도자기가 나올 때까지 몇 천번 이상 도자기를 굽고, 깨뜨리기를 반복하면서 상업적인 목적 보다 예술품으로서의 가치를 중요시합니다. 혼자 또는 소규모 그룹으로 몇 년이고 최고의 것을 만들기 위해 작업하는 개발자들이 여기에 속 할 것입니다. 예술적 그리고 기술적 능력이 최고치로 요구 됩니다.

소프트웨어 개발은 예술과 기술의 중간에 놓여있고, 이를 만드는 개발자 또한 예술가와 기술자 중간에 놓여있습니다. 상황에 따라 어느 쪽으로 조금 더 가까운지는 다를 수 있지만, 완전한 예술가도 아니고 완전한 기술자도 아닙니다.

소프트웨어 개발자는 도공, 유리/보석세공사처럼 예술과 기술 사이에 있는 장인(Craftman)이며, 이를 잊을 때 개발자가 아닌 서류 상의 숫자, 맨먼스(Man-Month)로 취급 될 것입니다.

참고 : 위키피디아 - Software craftmanship