Archive for agosto, 2013

ALM na Prática – Redmine

sábado, agosto 17th, 2013

ALM (Application Lifecycle Management)

Dentresas ferramentas open sources utilzadas para alicar ALM
Redmine – Gestão de projetos, requisitos e bugs
Maven – Builder, construtor padrão da aplicação, independente de IDE
Nexus – Gestão de componenetes de software, não apenas de tela mais de negócio. Modularidade das aplicações e retulização.
Jenkins – Builder da aplicação, agendador de validação do builder, testes automatizados e inspeção de código integrado com o sonar.
Sonar – Inspeção de código, checkstyle, findbugs, etc. Chamado e integrado pelo Jenkins

Este artigo vai demostrar a utilização da ferramenta Redmine com foco na sua integração com o SVN, e ver como é bacana o desenvolvedor através do comentário do commit vincular suas atividades a uma Issue (Tarefa) e até mesmo apontar o número de horas trabalhadas nesta tarefa.

Uma descrição mais completa da ferramenta pode ser obtida no site http://www.redmine.org/

 

Esta é a tela inicial do Redmine.

001-redmine-inicio

 

 

Tudo no Redmine é organizado por projetos, ou seja, um projeto é bem independente do outro, talvez até por isso uma das primeiras coisas a se fazer quando entra na ferramenta é escolher um projeto.

No projeto há várias opções e a tela inicial (visão geral) já da uma visão de quantas tarefas estão abertas e fechadas para este projeto, tempo trabalhado

002-redmine-projeto

 

 

Em atividades mostra tudo o que foi trabalhado no projeto, entre tarefas abertas, fechadas alteradas e commits com seus comentários no SVN

003-redmine-atividades

 

 

Em tarefas mostra… as tarefas to projeto. Lembrando que a customização dos filtros de pesquisa no Redmine são extremamente flexíveis e pode até mesmo salvar uma consulta feita.

004-redmine-tarefas

 

 

Com base nas tarefas do projeto, e das datas informadas nelas, pode-se obter um gráfico de Gantt.

005-redmine-gantt

 

 

Há um calendário para melhor visualização das atividades e seus prazos do projeto.

006-redmine-calendario

 

 

E aqui o mais legal, a visão do repositório. É possível ver as alterações realizadas no fonte, comparações entre versões do fonte e os comentários nos commits.

007-redmine-repositorio

 

Lembrando que estes são as opções que vem na instalação padrão do Redmine, há um número vasto de plugins que podem ser instalados, como plugin http://www.redmine.org/plugins que podem complementar algumas funções e relatórios.

Como falei o Redmine deixa tudo personalizado por projeto, e por isso ele tem as suas opções em configurações. Lá podemos escolher quais os membros, categorias de tarefas, o repositório do projeto e quais as atividades para registro de horas estão habilitas para o projeto.

008-redmine-configuracoes

 

 

Todas as opções globais, são feitas na Administração, lá pode se criar os projetos, cadastras usuários, grupos, perfis, configurar o modo de autenticação como apontando para um servidor LDAP (geralmente MS AD) da empresa, os tipos de tarefas, as situações de tarefas.

 

009-redmine-administracao

010-redmine-admin-tipos-tarefa

011-redmine-admin-situacao-tarefas

 

 

E na configuração de repositórios nas configurações globais do Redmine, observa-se quais os clients estão instalados no servidor, no caso estão os git client e svn client. É necessários instalar as versões clients para que o Redmine possa acessar os repositórios de fontes.

012-redmine-admin-repositorio-1

 

 

Aqui pode se configurar as PALAVRAS DE REFERÊNCIA que encontradas no comentário do SVN automaticamente tem se uma atividade no redmine, como por exemplo se digitarmos no comentário:

refs #10 comentário do svn

Este comentário vai automaticamente ser vinculado à atividade 10.  Assim como fixes pode fechar a atividade

fixes #10 atividade fechada.

E também pode-se habilitar o registro de horas pelo comentário do svn. Observa-se  que pode ser definir qual a atividade padrão para registros de horas. Além de para qual situação a atividade é alterada quando encontrar a palava fixes.

013-redmine-admin-repositorio-2

 

 

Aqui é a referência no site oficial do redmine.

014-redmine-rastreabilidade-time-track-COMMIT-1

 

Agora vamos há um exemplo.

Primeiro criamos uma atividade no Redmine. Com um tempo estimado de 2 horas.

015-redmine-tarefa-DES-01

 

Quando o programador fazer o commit, ele pode associar a uma tarefa. Exemplo:

“refs #1 @1h30”

 

onde @1h30 vai informar que o programador trabalhou 1h30 nesta atividade.

016-redmine-rastreabilidade-time-track-COMMIT-2

 

 

E no menu atividades observa-se esta atividade do SVN.

017-redmine-rastreabilidade-time-track-COMMIT-3

 

 

E na tarefa, pode-se ver que ela já adicionou esta 1h30 de trabalho no registro de horas.

018-redmine-rastreabilidade-time-track-COMMIT-4

 

 

E a visão das atividades realizadas no código fonte que estão no repositório pelo redmine.

019-redmine-rastreabilidade-time-track-COMMIT-5

 

 

Agora vamos apontar para fechar a atividade.

“closes #1 @0:15”

020-redmine-rastreabilidade-time-track-COMMIT-6

 

 

Não esquecer de habilitar o registro de horas e para qual atividade será registrado as horas na configuração do Redmine.

021-redmine-rastreabilidade-time-track-COMMIT-7

 

 

Agora o comentário do svn irá encerrar a atividade, além de registrar 15 minutos de trabalho

“closes #1 @0h15”

022-redmine-rastreabilidade-time-track-COMMIT-8

 

 

E nas Atividades do projeto, visualiza-se tudo o que foi trabalhando no projeto, atente-se ao vínculo para SVN.

023-redmine-rastreabilidade-time-track-COMMIT-9

 

 

E a tarefa automaticamente fechada, somente pelo comentário do SVN.

024-redmine-rastreabilidade-time-track-COMMIT-10

 

E na visualização da tarefa observa-se todas as ações realizadas nesta tarefa como a alteração da situação e o registro de horas. Tudo isso feito apenas pelo desenvolvedor pelo comentário no SVN!

025-redmine-rastreabilidade-time-track-COMMIT-11

 

 

O registro de horas…

026-redmine-rastreabilidade-time-track-COMMIT-12

 

E para finalizar o envio automático do email para os envolvidos no projeto.

027-redmine-rastreabilidade-time-track-COMMIT-13