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.
fonte
Eu não negociaria com um fornecedor de SE que permitiria a existência de uma situação tão infeliz - eles não sabem o que estão fazendo.
Se os depósitos do SE forem processados de alguma maneira pelo agente do SE, o procedimento de processamento exato e completo precisará ser totalmente documentado nos contratos para que seja realmente utilizável.
Isso também deve incluir a especificação exata do ambiente (ou procedimento para reproduzi-la) e a cadeia de ferramentas usada para esse processamento. Em outras palavras, a escolha não é realmente aberta unilateralmente ao agente SE. Exceto, talvez, a estratégia de armazenamento real (pessoalmente, eu incluiria essa opção também na especificação do contrato, mesmo que a escolha seja feita unilateralmente pelo agente SE).
Um bom contrato de SE também garantiria que todos os depósitos de SE pelo fornecedor passassem por esse processamento e o cliente sempre obtém e qualifica / assina o resultado desse processamento específico, e não um resultado alternativo diretamente do fornecedor - para validar isso. o procedimento em si permanece atualizado e eficaz para cada depósito SE.
Caso contrário, a capacidade de reproduzir as "retiradas do SE" posteriormente (se / quando necessário) é questionável, o que praticamente anula toda a história do SE.
fonte