Acrescentando uma observação aqui, que só entregar o software funcionando não é a única preocupação não. Existem às vezes requisitos não funcionais que precisam ser atendidos, que já foram acertados com o cliente, por exemplo se o cliente pediu que o tempo de resposta pra determinada função não ultrapasse 2 segundos.
Isso não é um requisito funcional (aonde terá no geral até um botão de dentro do sistema) ele é como uma regra de negócio por assim dizer. E se isso foi acertado com o cliente, é tão importante entregar com isso quanto entregar funcionando.
Só funcionar também não se aplica se ele não estiver por alguma razão funcionando corretamente, alguma funcionalidade mal aplicada, faltas de testes desencadeando em erros e etc. Enfim, desenvolver um software vai muito além de só entregar rodando.