As características e exigências da sociedade moderna e digital transformaram o cenário de desenvolvimento de software e apresentaram novos desafios aos desenvolvedores e engenheiros de software, tais como a necessidade de entregas mais rápidas, mudanças frequentes nos requisitos, menor tolerância a falhas e a necessidade de adaptação aos modelos de negócios contemporâneos. A adoção de práticas ágeis tem permitido às organizações encurtar os ciclos de desenvolvimento e aumentar a colaboração com os clientes. Entretanto, isso não tem sido suficiente.
Algumas iniciativas surgiram com o objetivo de acelerar o processo de desenvolvimento de software e melhorar a conexão entre suas atividades. Por exemplo, a Integração Contínua procura eliminar descontinuidades entre o desenvolvimento e a entrega. Em uma abordagem semelhante, o DevOps reconhece que a necessidade de integração entre o desenvolvimento de software e a operação de software deve ser contínua. Estendendo a necessidade de integração a outros níveis, BizDev defende que a continuidade deve existir não somente no contexto do processo de software, mas também entre o desenvolvimento de software e os processos estratégicos da organização.
Ações contínuas de planejamento, construção, operação, implantação e avaliação são necessárias para produzir produtos que atendam às necessidades e comportamentos dos clientes, para tomar decisões bem informadas e identificar oportunidades de negócios. Assim, as organizações devem evoluir do desenvolvimento tradicional para um desenvolvimento contínuo e orientado a dados, em uma abordagem de engenharia de software contínua.
Engenharia de Software Contínua (ESC) consiste em um conjunto de práticas e ferramentas que apoiam uma visão holística do desenvolvimento de software com o objetivo de torná-lo mais rápido, iterativo, integrado, contínuo e alinhado ao negócio. Ela entende que o processo de desenvolvimento de software não é uma sequência de atividades discretas, realizadas por equipes distintas e desconectadas. Visa estabelecer um fluxo contínuo entre as atividades relacionadas ao software, levando em consideração todo o ciclo de vida do software. É um tópico recente que procura transformar práticas de desenvolvimento discreto em alternativas mais iterativas, flexíveis e contínuas, mantendo o objetivo de construir e entregar produtos de qualidade de acordo com o tempo e os custos estabelecidos.
No artigo abaixo, Monalessa Perini Barcellos propõe um framework para ESC e discute algumas questões de pesquisa relacionadas a esse tópico.
Um caso de transformação ágil no contexto de ESC é apresentado no artigo: