DevTest ágil e dentro dos prazos em uma solução: nuvem
DevTest ágil e dentro dos prazos em uma solução: nuvem
Quem trabalha com TI ou tem uma equipe de TI em seu negócio sabe o quanto agilidade é fundamental. E conhece também os problemas enfrentados até chegar ao cenário perfeito: entregas no prazo e processos fluindo como nunca. Se você está lendo esse artigo, provavelmente se encaixa nesse perfil, então sabe bem que na maioria dos casos esse cenário é completamente adverso.
Entre os problemas mais enfrentados estão:
- Dependência do time de infraestrutura para prover servidores ou recursos de rede
Quando o ambiente de desenvolvimento ou teste fica dentro da própria empresa são necessários servidores, máquinas e outros recursos para serem utilizados depois de desenvolvidos e, assim, finalizados, testados e homologados pelos usuários. Acontece que esse processo na maioria das empresas depende da liberação do time de infraestrutura. Burocracia número 1 (ou a 1ª camada de gesso).
- Necessidade de recursos físicos, muitas vezes não disponíveis
A primeira etapa já foi, agora tudo vai melhorar, né? Não! Depois de conseguir os equipamentos necessários, o desenvolvedor perde agilidade quando precisa validar um projeto. Isso porque ele não precisa apenas de um hardware qualquer, ele precisa de um hardware específico com características peculiares. Aí entra a 2ª camada do gesso: mais dependência de outra área, menos agilidade.
- SLA extenso para provisionamento de dados
Normalmente as equipes de TI tem por padrão um SLA de atendimento, ou seja, para preparar um ambiente para testes eles vão pedir uma quantidade de horas para atender a demanda. Até aí ok, são processos da empresa, o problema é que isso acaba engessando o processo.
O ideal seria o próprio desenvolvedor criar seu ambiente. É possível usar o devops, que está muito na moda hoje. Importante frisar que é possível que o desenvolvedor crie apenas os itens que do administrador permitir, ou seja, o administrador da conta pode criar thresholds para dizer o que o desenvolvedor pode ou não pode criar. Desta forma, se garante um certo controle da plataforma, porque maquinas robustas custam mais caro do que máquinas simples. Enfim, liberdade para o dev com um certo nível de controle.
Como consequência disso tudo, o atraso em projetos devido a processos engessados é cada vez mais recorrente. Mas isso tem solução sim! E pode ser bom para todos os lados. Tanto para os desenvolvedores, quanto para o time de infraestrutura e para o bolso dos decisores e as finanças da empresa, especialmente pelo esforço demandado, o custo envolvido, o tempo poupado e a satisfação do cliente (interno ou externo) com os prazos cumpridos.
Modernização do ambiente de desenvolvimento
A solução se resume em apenas uma palavra, que até rima com o contexto: modernização. Para isso, o Scrum, por exemplo é uma metodologia ágil, reconhecida mundialmente por entregar valor para o cliente desde o início do projeto. Assim, é possível atingir os objetivos propostos dentro dos parâmetros de qualidade determinados, obedecendo a um planejamento evolutivo.
Mas como? Com a nuvem.
De acordo com a análise do ambiente da sua empresa, características e necessidades – tanto do ponto de vista de desenvolvimento quanto do servidor de teste e homologação – é possível criar, mexer nos processos e aloca-los na nuvem, como o Microsoft Azure por exemplo.
Benefícios diretos
Sei que posso listar mais dezenas de pontos positivos, mas um deles sempre predomina em qualquer decisão corporativa, especialmente em tempos de cautela financeira: o investimento. Por isso, para começar, apresento o dado de que o valor de contrato padrão para o desenvolvimento em nuvem chega a uma redução de 20% a 30% em custos. Essa baixa de custos é consequência, também, de cada um dos benefícios a seguir:
- Redução de tempo: aplicativos melhores com uma redução significativa do tempo e da dificuldade no gerenciamento de esforços.
- Flexibilidade de plataformas: ambientes heterogêneos tem sido uma necessidade para os times de desenvolvimento, seja Linux, IOS ou Windows.
- Processos acelerados: máquinas virtuais podem ser provisionadas em minutos e sua empresa paga apenas pelo tempo utilizado. Além disso, é possível o escalonamento e alocação para os desenvolvedores de acordo com a necessidade e demanda.
- Controle: complementando o tópico anterior, a visibilidade e acesso a dados é em tempo real. Assim, ajuda a minimizar desperdícios, reduzir erros e gerenciar de forma ágil.
- Ambientes de teste fiéis e escalonáveis: é possível replicar um ambiente real e testá-lo em escala de produção, para encontrar e corrigir erros antes do lançamento.
Entre tantas vantagens, fiquei pensando o que poderia ser um obstáculo ao optar pela modernização do DevTest. A conclusão que cheguei foi um problema bem singelo: link com a internet. Esse recurso tem de ser perfeito e estar em sintonia com as necessidades do seu negócio para que
Mas convenhamos que com o parceiro certo, isso é um mero detalhe que ele certamente vai orientá-lo de cara. Por isso, para essa escolha, não poupe tempo!