프로그램을 만드는 것은 쉽다.
더 정확히 말해, 그 자체로 완성된, 만든이의 컴퓨터에서 돌아가는 프로그램은 만들기 쉽다.
프로그램 제품을 만드는 것은 프로그램을 만드는 것 보다 3배 어렵다.
팔 수 있는 제품이 되려면,
•
어떤 이의 컴퓨터에서도 돌아갈 수 있어야 하고,
•
다양한 입력과 출력을 지원 할 수 있어야 하며,
•
누구나 테스트하고 유지 보수 할 수 있도록 문서 및 테스트가 있어야 한다.
프로그램 시스템을 만드는 것은 프로그램을 만드는 것보다 3배 어렵다.
다양한 프로그램들이 원활히 상호작용하도록 하기 위해서는,
그 프로그램들의 조합의 순서만큼 테스트가 되어야 한다.
컴퍼넌트의 조합은 기하급수적이고, 컴퍼넌트의 개수가 늘어나면 복잡도는 그만큼 늘어난다.
프로그램 시스템 제품을 만드는 것은 결과적으로 프로그램을 만드는 것보다 최소 9배 어렵다.
그러나, 이것이야말로 진정 쓸모 있는 것이다.