소프트웨어 개발을 하다보면 자기 제품을 만들때도 있지만 더 많은 경우는 남의 프로그램을 만들어 주는 일이다. 용역, 외주, SI등의 이름으로 불리는 것이다. 돈을 받고 소프트웨어를 만들어 주는 일... 어찌 보면 참 간단한 일이다. 그런데 이 용역이라는 것이 양자가 만족하면서 잘 끝나기가 매우 어렵다. 양자가 만족하는 경우는 고사하고 어느 한쪽도 만족하지 못하고 서로 욕하고 끝나는 경우가 허다하다. 왜?
일에 대한 공정한 가격계산이 매우 힘들기 때문이다. 소프트웨어 개발을 건설에 비유하는 사람이 많지만 소프트웨어는 아직 그렇게 세부적으로 비용을 산정하는 일이 쉽지 않다. 많이 지어본 건물을 짓는 경우 보다는 전혀 새로운 설계에 대한 공사를 하게 되는 경우가 많기 때문이다.
그렇다면 용역이라는 것이 양자 불행하게 끝날 수 밖에 없는 게임인가? 그렇지는 않다. 프로그래머의 무한 헌신으로 양자가 행복 할 수도 있다. 프로그래머에게 어떤 어떤 사양서의 프로그램을 만들어라는 지시가 내려온다면 프로그래머는 그 사양서에 있는 일의 300%정도를 더 할 각오를 해야한다. 그래야만 비로소 그 일이 의미있는 일로 끝날 수 있기 때문이다. 사양서에 있는 일만 해주면 된다는 생각은 필경 양자 불행으로 끝날 가능성이 농후하다.