Os programadores e usuários tendem a se concentrar em um único programa. O programador vê um trabalho específico a ser realizado, enquanto o usuário vê um problema específico a ser resolvido. Obtendo uma visão um pouco mais ampla desse programa, fazem-se algumas perguntas: Por que esse programa foi feito? Os programas não surgem por acaso.
Obviamente alguém o desejava, senão ele não teria sido feito; mas, por que esse programa? E por que o programa foi projetado do jeito que foi? Por exemplo, alguns programas são interativos, enquanto ouros exigem qe usuário prepare um conjunto completo de comandos e dados e os apresente ao computador. Por quê? Finalmente, e quanto aos elementos de apoio - hardware, software, procedimentos e operadores, por exemplo - que cercam o programa? Como todos esses elementos se reúnem para assisti-lo na elaboração ou execução do seu programa?
Obviamente, alguém deve ter planejado não só o programa, mas todo o ambiente em que ele se situa. Está se lidando com algo muito mais amplo do que um programa. Está se lidando com um sistema.
O que é um sistema? O American National Standards Committee sugere a seguinte definição:
Sistema, em processamento de dados, é um conjunto de pessoas, máquinas e métodos organizados de modo a cumprir um certo número de funções específicas.
Os programas fazem parte de um sistema maior que inclui outros programas, hardwares, dados, seres humanos, e vários procedimentos. O sistema define o ambiente. O programa existe dentro do contexto daquele sistema.
Qualquer atividade que envolva componentes numerosos, sejam eles homens, máquinas ou métodos, requer coordenação cuidadosa; embora possa não ter ficado claro, pela definição, os componentes devem trabalhar juntos para que a função específica venha a ser exercida. A coordenação pressupõe o planejamento. Quem planeja o sistema? De que maneira?