O desenvolvimento de qualquer software envolve fazes iterativas que, com a união de diversos artefatos, resultam no produto final. Existem inúmeras tecnicas para esse desenvolvimento, no entanto, a que eu considero das mais produtivas é quando partimos de um protótipo funcional.

Neste modelo o analista, o designer (visual e HTML) e o cliente desenvolvem o sistema baseado nas telas e na navegação entre elas. É uma abordagem interessante pois o cliente ja esta vendo o sistema e assim consegue criticar e requisitar mudanças de forma mais precisa. Após a aprovação do protótipo funcional a equipe de programação faz a mágica, ou seja, adiciona ao HTML estático alguma tecnologia dinâmica (ASP,JSP,PHP,…).

Após a finalização desta etapa surgem as manutenções, e é ai que começam os problemas.

Agora as telas não são mais simples HTML que podem ser editados em qualquer aplicativo, eles são telas que contêm codigo dinâmico que interagem com banco de dados. Se o seu designer realizar as mudanças no HTML e passar para o programador, este tera um trabalho dobrado de identificar aonde foram feitas as mudanças.

Para evitar isso estou descrevendo um modelo de desenvolvimento colaborativo que suporta ambos trabalharem sobre os mesmos arquivos e com a utilização de repositórios (CVS e SVN) para facilitar a integração.

1 - Diferença de ferramentas

O Designer utiliza um conjunto de ferramentas completamente diferente das ferramentas utilizadas pelo programador. Não adianta impor ferramentas para nenhum dos dois pois isto, ao invés de ajudar, pode comprometer a produtividade.

Para isso servem os clientes de repositorio. As ferramentas utilizadas pela equipe de programação, na maioria das vezes, ja suportam versionadores (CVS e SVN) por tanto o que falta é adicionar estas funcionalidades para o designer. Uma ferramenta interessante é o Tortoise. O fato de ele integrar o seu repositorio com o Windows Explorer facilita para o designer pois este pode editar seus arquivos na ferramenta que ele deseja e, na hora de “commitar”, basta faze-lo pelo Explorer mesmo.

2 - Configurando o ambiente

Para baixar um projeto do repositorio :
a) Entre no Windows Explorer
b) Crie um diretorio para armazenar seus projetos. (Ex. REPOSITORIO)
c) Dentro deste diretorio clique com o botão direito e selecione “CVS Checkout”
d) Informe todos os dados do seu servidor e finalize.

Com os arquivos baixados o que precisamos fazer é configurar o banco de dados e web server para possibilitar que o designer trabalhe com os arquivos ja aproveitando os recursos dinâmicos.


Infraestrutura
1 - liberação do acesso ao banco de dados de desenvolvimento pelo usuario do designer.
2 - Configuração do Web Server para acessar o banco de dados de forma remota.

No tomcat 5.5 crie um arquivo NomeDoSeuProjeto.xml e coloque na pasta TOMCAT_HOME/conf/Catalina/localhost.

O conteudo do arquivo deve indicar a localização fisica dos seus arquivos.

<Context docBase=”C:\TORTOISE-CVS_FOLDER\FusorOnLine\WebContent” path=”/FusorOnLine” reloadable=”true”>
</Context>

3 - Classes

Para uma manutenção sobre codigo ja existente é preciso que as modificações funcionem com acesso a banco e tudo mais. Para habilitar isso a equipe de programação precisa gerar um arquivo contendo os .class gerados. Este arquivo deve ser copiado para o diretorio /WEB-INF/lib. Se possível configure para ignorar este arquivo no ato do versionamento do diretorio.

O motivo principal deste arquivo é evitar que se versione os .class

4 - Dinâmica

O designer agora tem acesso a todo o código utilizado pela equipe de programação. Uma alteração na tela ja pode ser atualizada. Para uma maior produtividade um pequeno treinamento sobre JSTL e Expression Language, para o seu designer, pode resultar no modelo utópico de separação de responsabilidades em que o programador se preocupa apenas com regra de negócio, persistencia, validação e o deisgner fica responsavel por 100% da parte de apresentação.