No post de hoje iremos falar sobre automatização de etapas no processo de desenvolvimento de software. O objetivo dessa prática é permitir que o desenvolvedor não perca tempo com tarefas repetitivas e que não agregam valor ao desenvolvimento, como, por exemplo, a construção da aplicação (build) ou a implantação da mesma no servidor (deploy). A automatização pode representar um ganho significativo na produtividade quando bem utilizada.
Construir aplicações pode ser complicado. Um mesmo software pode ser composto de diversas partes implementadas por equipes diferentes em projetos diferentes. Existe também a possibilidade de reuso de software, ou seja, integrar a um novo projeto uma funcionalidade que já foi desenvolvida anteriormente. Para construir aplicações desse tipo, é preciso construir cada pedaço e integrá-los corretamente. Automatizar esse processo, além de reduzir a zero a chance de erro nessa etapa, o acelera.
Ao longo do ciclo de desenvolvimento, a cada alteração do código-fonte o programador precisa construir e implantar a aplicação para verificar o resultado de sua modificação. Ao final do ciclo, esse tempo gasto não é desprezível. Portanto, para reduzir o desperdício, é preciso que essas atividades tenham a menor duração possível e uma das maneiras de atingir esse objetivo é automatizando. A possibilidade de construir o software com apenas um clique é considerado por Joel Spolsky, escritor do blog joelonsoftware, como um dos 12 requisitos para uma excelência na produção de software.
Não só essas duas etapas do desenvolvimento podem ser automatizadas. Na verdade, essa técnica pode ser usada em diversas etapas. Os diversos tipos de testes: unitários; de aceitação; de integração e etc, o login da aplicação e a manipulação da base de dados, por exemplo, poderão ser avaliados para a possibilidade de automação.
Automatizar promove muitos ganhos. O desperdício de tempo é reduzido e a produtividade é aumentada, já que o desenvolvedor não terá que perder tempo com tarefas que não agregarão valor ao produto final. Apesar de parecer complicado, automatizar o processo de construção e de implantação pode ser feito facilmente com o uso de ferramentas adequadas.