My question is about what deployable means. If it means simply 'able to be deployed', then a process with no testing is CD.
Distribuibile implica che tutto il processo di pre-distribuzione è stato completato. Il processo definirà cosa significa "dispiegabile". Se il processo dice che il test non è necessario, allora il software può essere distribuito senza test. La maggior parte dei processi include l'esecuzione di una sorta di piano di test.
If it means 'good to deploy', then why wouldn't the business sponser be assumed to be requesting that all versions are deployed to production at the first convenient opportunity?
Nel caso più semplice possono benissimo consentire al team di sviluppo di implementare la produzione alla prima opportunità conveniente, ma molte attività commerciali sono troppo complesse o non sufficientemente automatizzate per farlo. Esistono altre attività commerciali (esterne al team di sviluppo) che potrebbero dover essere eseguite prima della distribuzione. Ad esempio:
- Potrebbe essere necessario completare una fase beta prima di passare alla produzione
- Le vendite / il supporto potrebbero dover informare i clienti esistenti di un'imminente modifica
- L'azienda potrebbe aver bisogno di trovare un produttore per produrre compact disc con il software su di esso
- L'azienda potrebbe voler impedire la distribuzione per far sì che siano disponibili altre funzionalità
If the business sponsor doesn't request deployment to production because the current version includes a change which they are not yet ready to release is that a discontinuity of delivery?
Io non la penso così Quando parliamo di consegna continua nel senso del software, la consegna è al business, non necessariamente all'utente finale. Se vuoi parlare di consegna continua all'utente finale, potrebbe implicare l'automatizzazione dei processi aziendali al di fuori del team di sviluppo che altrimenti bloccheranno la distribuzione.
If so then presumably to do CD any changes to released software which are not pre-approved for release as soon as ready would need to be hidden behind feature toggles or similar until approved by the sponsor.
Le funzioni di attivazione / disattivazione possono essere utilizzate per nascondere nuove funzionalità prima che l'azienda sia pronta per loro. In genere penso che sarebbero utilizzati solo se l'azienda desidera implementare determinate modifiche (ad esempio correzioni di bug, modifiche minori) senza implementare una nuova funzionalità e il software si trova in un punto in cui sarebbe difficile o più difficile estrarre la funzionalità dal prodotto. Continuo a pensare che nella maggior parte delle aziende l'azienda abbia l'ultima parola su ciò che viene distribuito. Anche se una nuova funzionalità è nascosta dietro un interruttore di funzionalità, la distribuzione potrebbe comunque avere conseguenze che l'azienda vuole controllare.