Não esqueça das políticas

Relembrando o post sobre o Banquinho. Que por sinal ainda acho que é uma visão a se ter sobre uma solução completa extremamente viável e simples. Hoje eu adicionaria outros pilares ao banquinho, seria como se fossem as cores secundarias, todas derivadas do bom e velho RGB, por isso não vou fazer mudança no banquinho.

Mas vou falar de um pé sub-colateral, falando da rosa dos ventos agora.O ponto em comum entre ferramentas e processos, que estou chamado aqui de políticas. Acredito que esse seja o melhor nome, até por que esse termo é comum em gerência de configurações.

Políticas? Hummmm....



Não. Não é esse tipo de política que você deve estar pensando. Falo de políticas de uso quanto a ferramentas, aqui ferramentas e processos se misturam, não falo apenas de workflow de trabalho, mas em formas de uso.



Uso de Ferramentas



Ferramentas servem diversos propósitos, os que considero mais importantes são:
  • Diminuir o peso do processo
  • Facilitar o trabalho das pessoas
  • Automatizar tarefas repetitivas
  • Reduzir desperdícios de recursos *
  • Redução de erros *
  • Aumentar a produtividade *
Os 3 últimos itens tem "*" de propósito, por que eles não são adquiridos na compra da ferramenta. Falando de compra de ferramentas, sempre esquecemos de pensar em coisa como:
  • Onde vou instalar essa ferramenta?
  • Como vou usar essa ferramenta?
  • Que customizações vou ter que fazer com essa ferramenta?
  • Por que estou comprando essa ferramenta?
A ultima pergunta deveria ser a primeira, mas muitas vezes não é, e nem está na lista! Esse post tem o foco na 2 pergunta, "como vou usar essa ferramenta" aqui entram as políticas.

Antes que me esqueça vou explicar os "*" em ordem :). Bom reduzir desperdícios de recursos é um ponto que tem que ser analisado com calma. As vezes um ferramenta mais atrapalha do que ajuda, isso o Scott Ambler fala muito no Agile Modeling. Concordo com ele! Muitas vezes perdemos muito tempo para passar algo para um ferramenta case e o que passamos nem está estável, talvez fosse melhor deixar em uma folha de papel ou quadro e depois que se estabilizar ai sim passar para um ferramenta.

Redução de Erros é outro ponto complexo. Por que as ferramentas podem ajudar ou até burocratizar o seu trabalho, logo se as políticas não forem bem definidas ao invés de diminuir erros você pode acabar aumentando os erros com uma ferramenta sendo usada de modo impróprio.

O aumento da produtividade também não vem fácil, existe toda uma curva de aprendizado com o uso de uma nova ferramenta, não digo nem só pela ferramenta, mas por você ter que dar suporte as vezes e ter que lidar com problemas instalação, configuração e novamente políticas.

Exemplo de política

No controle de versão, imagine que você usa Subversion, Clear Case, CVS ou qualquer outro, para esse exemplo qualquer um serve.
  • Ninguém pode commitar código que não compile.
  • Ninguém pode commitar nada sem comentários.
  • Ninguém pode criar um branche sem falar com o gerente de configurações.
  • Todos devem fazer updates diários e resolver os conflitos.
  • Ninguém deve fazer locks de arquivos que não sejam(doc,excel).
E assim por diante. Na prática você tem que ter essas políticas em todas as ferramentas que você usa, esse é o lado mais Q.A do Gerente de Configurações.

Como documentar?

Não sendo em um documento word que vai ficar em um compartilhamento de rede que ninguém vai ler, sem problemas. É incrível mas as pessoas não gostam de abrir documentos que estão na rede em uma arvore de pastas em que ninguém se acha, por que será ? Colocar as políticas em um CMS/Wiki da vida é uma boa.

Por que preciso de políticas?

A Gerencia de configuração é sempre um ponto critico em um projeto, por que ela pode tirar ou dar produtividade ao desenvolvimento. Sem políticas é mais fácil de ter confusão e fica mais complicado de se gerenciar.

Mas Gerencia de Configurações é importante mesmo?



Essa foto poderia estar bem mais completa, tendo em vista Gestão,Q.A, Ambiente, Controle de Mudanças, mas eu resolvi simplificar somente a nível de ilustração. Respondendo a pergunta Gerencia de Configuração é pervasivo, ou seja, passa por todas as disciplinas do desenvolvimento de software, assim como o arquiteto ele tem um papel fundamental no desenvolvimento.

Sim. É muito difícil achar um GC. Então qual a solução? As vezes essa função é absorvida pelo arquiteto em outras isso pode ser partilhado com a equipe, a gerencia de configuração pode ser rateada, de forma que cada pessoa da equipe fica com uma ferramenta, mas isso não elimina a necessidade das políticas!


Popular posts from this blog

Kafka Streams with Java 15

Rust and Java Interoperability

HMAC in Java