DGERT   APCER
Relações de compromisso

Actualmente é Fundamental uma Solução de SCM


Todos os programadores de software já se depararam com o problema de ter que repor um programa como estava antes das últimas alterações, pois o cliente mudou de ideias, ou a alteração não resultou. Qualquer autor de um documento já se deparou com o problema de lhe estarem a falar de uma versão desactualizada do documento, sem que nenhuma das partes se aperceba de imediato do facto, pois ambas pensam ter em sua posse o documento mais recente.

Ambas as situações acima (ou será a mesma?) deram origem a múltiplos mecanismos de controlo das versões dos documentos, desde o processo de adicionar a data ao nome dos documentos, até ao processo de criar subdirectórios com os diferentes conjuntos de documentos que formam uma imagem temporal de um determinado "documento composto". Foram estes os primórdios do controlo de versões - básico, mas funciona!

No entanto, existem múltiplos problemas associados a um controlo de versões deste género - só serve para pequenas equipas em contacto permanente, ocupa demasiado espaço em disco, não permite um registo estruturado das alterações, etc.

Surgiram então várias soluções, sendo a mais simples a gestão de cada uma das componentes de um documento. Cada ficheiro tem associada uma biblioteca de alterações a esse mesmo ficheiro, permitindo que, com um conjunto de ferramentas, se controle, não apenas as versões, como também o acesso ao ficheiro em ambientes multi-utilizador. Além disso, é possível, por exemplo, que dois utilizadores alterem em simultâneo o mesmo ficheiro.

Foi um passo de gigante. Contudo, mesmo assim, subsistiam vários problemas, pois não existia controlo agregado de lotes de ficheiros, o que é o problema mais usual. Foi nesta fase que começaram a aparecer ferramentas com um ambiente próprio de gestão dos ficheiros, que utilizam um repositório próprio para o registo das versões dos ficheiros, com um conjunto de mecanismos que permitem a clara identificação de agrupamentos de ficheiros (por exemplo, fontes de uma aplicação ) - baseline das várias alterações aos ficheiros individualmente, com versionamento paralelo (branching ) ou sequencial, com identificação das alterações e dos responsáveis pelas mesmas, com a noção de estado de uma versão (draft inicial, revisão, documento final, ...), etc.

No entanto, não era suficiente, pois os fabricantes de ambientes integrados de desenvolvimento (IDE) trabalhavam directamente com o sistema operativo. Alguns tinham os seus métodos de resolução do problema do versionamento, embora bastante limitados.

Num esforço de resolução do problema, ambas as partes se juntaram - os fabricantes de sistemas de versionamento (SCM) e os fabricantes de ambientes integrados de desenvolvimento - para criarem uma especificação comum. O resultado final foi a integração de IDEs com SCMs. Foram assim integrados os sistemas de produtividade com os sistemas de desenvolvimento colaborativo.

Hoje em dia, especialmente na área de desenvolvimento de software, em que as equipas são muitas vezes grandes, é fundamental um SCM para conseguir controlar o processo produtivo e garantir, não só a qualidade do produto, como uma manutenção correcta e efectiva do mesmo.

Como nota final, convém sublinhar que, sendo uma condição necessária, não é suficiente, no entanto, ter um bom sistema de gestão de versões para se conseguir um controlo efectivo do processo produtivo. Cada organização deve criar um plano efectivo para a gestão de versões e definir claramente quais os estados das versões, quais as fases de promoção entre estados, as regras para a utilização do desenvolvimento paralelo, etc.

Produzido em 2005

Topo
Pesquisa
Agenda
Destaques