Considere um fornecedor de software e um cliente licenciado de algum software desse fornecedor, em que o software que está sendo licenciado é usado no local (no local do cliente) ou no formato de solução SaaS (hospedada pelo fornecedor). No entanto, o cliente obtém acesso apenas ao necessário para usar / executar o software (executáveis e similares), portanto, não os componentes de origem e nada relacionado a isso para criar os executáveis.
Para proteger a continuidade de negócios do cliente em cenários em que algo pode dar errado com o fornecedor (por exemplo: falência), ambas as partes podem concordar com algum tipo de contrato de Garantia de Software (SE ... 'também') (também chamado garantia de código-fonte ). Com esse contrato, ambas as partes concordam em envolver uma terceira parte (= um "Agente de Custódia de Software"), confiável por ambas as partes. Estes são os destaques desse contrato SE (= especificações do processo SE real):
- TODOS os componentes de software (artefatosrelacionados ao software licenciado) sejam depositados pelo fornecedor do software, em algum local acordado relacionado ao agente SE. Esses depósitos incluem os executáveis, mas também os componentes de origem e qualquer coisa relacionada a isso para criar os executáveis (mesmo documentação, instruções, etc. para criar os executáveis).
- Como o fornecedor do software pode criar várias versões durante a licença de software e o cliente tem o direito de receber essas novas versões (conforme o contrato de licença), parte desse contrato SE é que "a cada nova versão principal" (seja qual for "importante" possa significar ...), o depósito entregue ao agente SE também será atualizado / atualizado.
- Se condições específicas forem atendidas (por exemplo: falência do fornecedor), o agente de Garantia de Software entregará ao cliente licenciado, mediante solicitação desse cliente, cópia de tudo o que foi depositado, para que o cliente possa continuar usando o quando necessário, adapte o código-fonte para continuar a usá-lo nos negócios do cliente.
Uma prática comum para o envolvimento desse agente de SE é algum tipo de pessoa / entidade jurídica, como um advogado. Mas para realmente "processar os depósitos SE" (pelos agentes SE), todos os tipos de tarefas de gerenciamento de liberação e / ou entrega de software precisam ser executados por alguém ou alguma coisa (o pobre agente SE) que provavelmente não sabe o que o software licenciado deve fazer ... diversão garantida!
Minha pergunta :
Como o DevOps pode ajudar a melhorar os procedimentos do compromisso de software, conforme descrito acima? Como que tipo deconjunto de ferramentasferramentas que você recomendaria que fossem utilizadas para o cumprimento de qual parte do contrato SE? E onde apropriado, usando quais soluções de software (preferencialmente de código aberto) para isso?
Notas :
Para não complicar ainda mais as coisas, basta assumir que é acordado entre todas as partes envolvidas, que o agente SE não precisa fazer nenhum tipo de " verificação " sobre os depósitos que estão sendo feitos. Ou seja: tudo o que é depositado é considerado completo, atualizado, documentado etc.
Sobre o "novo grande lançamento": suponha que haja entre 1 e 3 a cada ano, o que significa que o cliente licenciado espera apenas ter acesso (via agente SE) a esses lançamentos. Mesmo se houver entregas intermediárias (como correções ou versões beta) para o cliente licenciado, esses tipos de entregas são considerados fora do escopo. Mesmo que fosse apenas porque:
- o agente SE cobra "por cada depósito a ser processado pelo agente SE".
- o cliente licenciado raramente altera as liberações e só está interessado em poder usar o contrato SE se as coisas derem errado, pois elas estão sendo executadas no momento em que as coisas dão errado.