De forma bem resumida, as empresas têm problemas que precisam ser resolvidos.
Alguns desses problemas são diretamente ligados à atividade-fim (aumentar as vendas, controlar o estoque, evitar o desperdício da produção, etc), outros não, mas ainda sim é algo que elas precisam fazer (gerenciar a folha de pagamento ou a contabilidade, reembolso do táxi dos funcionários, etc).
E algumas soluções podem envolver alguma tecnologia, como por exemplo, "um sistema" pra fazer/automatizar/agilizar/otimizar tais atividades.
Idealmente, isso deveria ser feito depois de muita análise, pois tem vezes que não precisa de tecnologia, basta ajustar a forma como as pessoas fazem determinadas coisas ("melhorar os processos"). Mas hoje parece que a tendência é sempre adicionar mais um sistema - até quando não precisa, como tem acontecido com IA, por exemplo. Mas divago...
Só depois de analisar e concluir que sim, a tecnologia pode ajudar, é que se define como vai ser o sistema. E em algum momento, entra a programação, para materializar a ideia. Isso, claro, assumindo que "programação" se refere à parte em que o código é escrito, compilado, testado, etc.
Mas se estiver falando de Desenvolvimento de Software, aí engloba desde a fase de análise (pra ver se precisa mesmo de um sistema) até a entrega e "pós-venda" (acompanhamento/manutenção, ou seja, correção de bugs, alterações, etc).