각 구성요소들이 상호작용하거나 상호의존하여 복잡하게 얽힌 통일된 하나의 집합체
통상적으로 컴퓨터를 이용하는 사람들은 시스템이라는 것에 대해 HW 또는 SW적인 관점에서 디지털적인 시스템을 떠올릴 것이다. 하지만 그 우물에서 탈출하여 시스템이라는 용어를 더 광범위하게 볼 필요가 있다.
깨끗한 정수나 온수를 내려주는 정수기, 은행에서 이뤄지는 결제 서비스, 기업 내부의 표준화된 규정... 현실 세계에 있는 이 모든 것들 역시 시스템이라고 할 수 있다.
근본적으로 개발자들은 현실 세계의 시스템을 디지털 시스템로 재구현하는 일을 한다고 볼 수 있다. 하지만 기술력을 기른다는 이유로 시스템을 단순히 디지털적으로만 바라본다면, 되려 개발자의 본분을 잃어버릴 수 있다.
따라서 개발자가 되기 위해서는 당연히 개발 실력은 갖춰야 하고, 더 나아가서 도메인을 가리지 않고 시스템을 분석하는 역량을 반드시 갖춰야 한다. 남들이 설계해준 시스템만 받아서 개발하는 사람은 개발자가 아닌 코더일 뿐이다.