Os ciclos de vida dos softwares tradicionais separam o desenvolvimento e as operações, exigindo vários processos manuais e uma forma de interação entre equipes que inibe a velocidade de entrega.
O DevSecOps acelera o ciclo de desenvolvimento para novos recursos e melhorias, ampliando o papel da equipe Ágil para o ciclo de vida completo do software e usando a automação para acelerar processos. O DevSecOps traz preocupações de operações e segurança para o início do ciclo de vida, dando às equipes mais responsabilidade e propriedade sobre uma operação bem-sucedida do software.
No planejamento, os engenheiros determinam o projeto daquilo que está sendo construído e criam uma imagem do processo de desenvolvimento de ponta a ponta, incluindo como será testado, protegido e implantado.
As ferramentas são empregadas para organizar as atividades de cada membro da equipe e o backlog em tempo real.
Processo de codificação
Embora o processo de codificação não mude muito, ele está fortemente ligado a uma cadeia de ferramentas – ou seja, uma série de ferramentas selecionadas que fornecem automação ao longo do ciclo de vida. A cadeia de ferramentas gerencia processos contínuos de integração e implantação contínua.
O DevSecOps promove uma mentalidade de codificação diferente, pedindo aos engenheiros que pensem sobre como o código será realizado na produção — por exemplo, incluindo considerações de desempenho, segurança e manutenção durante a fase de desenvolvimento.
No ciclo de vida tradicional, a construção é geralmente semi-automatizada; em DevSecOps, a compilação é totalmente automatizada e dá início a muitas outras etapas através da cadeia de ferramentas.
A Integração do software e execução de testes de integração de chaves são feitos de forma precoce e frequente, o que permite que as equipes detectem problemas mais cedo, reduzindo consideravelmente seu custo e melhorando a velocidade de entrega.
Os testes são automatizados na maior medida possível, ocorrendo em muitos momentos ao longo do ciclo de vida, e não no final do ciclo de desenvolvimento. Os testes automatizados são então reutilizáveis para futuras peças de código. A mentalidade de teste difere do ciclo de vida tradicional porque os desenvolvedores estão pensando em critérios de teste que precisam passar antes de começar a trabalhar, muitas vezes empregando metodologias como o desenvolvimento orientado por testes.
No DevSecOps, a segurança está incorporada no ciclo de vida. As metas de segurança são identificadas durante o planejamento; durante a codificação, são empregadas práticas seguras de codificação; durante a compilação/teste, as equipes verificam possíveis vulnerabilidades.
Após a implantação, a segurança continua monitorando possíveis incidentes. São estabelecidos guard-rails de segurança e testes automatizados, garantindo a capacidade de implantar um código seguro com velocidade.
Uma das principais vantagens do DevSecOps é que ele permite uma implantação de código muito mais rápida e automatizada para vários ambientes, levando em conta as diferenças de configuração.
Essa vantagem de velocidade é ainda mais pronunciada em uma arquitetura moderna de microsserviços, em oposição a uma monolítica. É claro que você precisa de um lugar para implantar, então o DevSecOps geralmente requer a capacidade de configurar ambientes sob demanda.
Após a implantação, o monitoramento é uma responsabilidade compartilhada entre desenvolvedores e a equipe do DevSecOps, ao contrário do ciclo de vida tradicional, que tem uma maior separação entre desenvolvimento e operações.
Como os desenvolvedores têm uma participação compartilhada na estabilidade e desempenho de sua aplicação, a qualidade do produto resultante geralmente é maior.
Novos modelos de fornecedores para serviços de TI
Muitas empresas aproveitam o mercado global de serviços de TI para acessar grandes pools de talentos tecnológicos. Algumas dependem de provedores de serviços de TI para mais de 50% de sua força de trabalho em tecnologia, mas os líderes reconhecem a importância estratégica da tecnologia e favorecem cada vez mais proporções altas de talentos tecnológicos internos.
Porém, apesar dessa tendência, os fornecedores externos continuam oferecendo vantagens: eles ajudam as empresas a acessar uma gama mais ampla de talentos, reduzindo custos e fornecendo capacidade flexível.
Com as equipes ágeis, as organizações têm a oportunidade de melhorar a eficácia desses serviços de TI usando um modelo de contratação mais adequado para operar.
Ao reter provedores de serviços de TI, a maioria das organizações geralmente segue um dos três modelos de contratação: aumento de pessoal, projetos de entrega fixa ou serviços gerenciados.
Embora cada um desses modelos ainda possa ser útil em determinadas circunstâncias, a capacidade gerenciada é uma alternativa que melhor se alinha aos princípios ágeis, como a valorização da colaboração do cliente sobre a negociação de contratos.
Modelo de capacidade gerenciada
Em um modelo de capacidade gerenciada, o fornecedor disponibiliza um pool persistente de talentos, tipicamente na forma de equipes ágeis que possuem as habilidades e experiências interfuncionais necessárias.
O cliente define prioridades para as equipes e garante que um gerente interno de produto tenha responsabilidade pelos resultados, não pelo fornecedor.
Isso é importante porque o gerente de produto tem a confiança da organização e uma compreensão mais profunda das trocas.
Um modelo de capacidade gerenciada também é mais flexível, pois o gerente de produto mantém o controle sobre o escopo do trabalho. Se surgirem alterações, não há necessidade de alterar o contrato.
O modelo também tem vantagens para os provedores de serviços de TI: elimina o tempo e o custo de responder a solicitações incrementais e pedidos de alteração.
O gerente de produto do cliente mantém a responsabilidade por escopo, prioridades e resultados, ao mesmo tempo em que estabelece expectativas claras para o provedor de serviços de TI.
Para garantir que esses arranjos de capacidade gerenciada sejam produtivos, os contratos normalmente limitam a rotatividade dos membros da equipe e permitem que os clientes saiam do contrato se estiverem decepcionados com a eficácia de suas equipes de fornecedores.