IceScrum

Post date: 08/10/2013 10:06:56

A gerência de projetos é uma arte. No PMBOOK são descritas uma série de boas práticas para o gerenciamento de projetos.

Contudo, existe uma realidade alternativa para o gerenciamento de projetos de forma ágil. O Scrum é um método ágil que é utilizado por grandes empresas como Microsoft, Google, Nokia, Siemens, e também, em várias empresas nacionais de desenvolvimento em TI.

A visão geral desta ferramenta é mostrada na figura a seguir.

fonte: http://alanbraz.wordpress.com/2011/05/17/precisa-se-de-projetos-scrum/

Fonte: http://alanbraz.files.wordpress.com

O projeto é iniciado a partir das especificações do Dono do Produto. Estas especificações compõem uma lista de requisitos de todos os entregáveis, conhecido como o backlog do produto. Através de uma reunião de planejamento de uma iteração trabalho (sprint), parte do backlog do produto é selecionado, definindo as atividades que serão desenvolvidas durante o sprint. Cada sprint tem duração de 2 à 4 semanas e a cada dia tem-se uma reunião diária para replanejar as atividades. Ao final do sprint, uma reunião acontece para apresentar as funcionalidades implementadas no sprint, discussões para alimentar o próximo sprint.

Existem diversas ferramentas para o gerenciamento de projetos ágil, a forma mais tradicional para isto é o KANBAN CARD WALL, geralmente fixado em uma parede onde todos os membros do projeto podem observá-lo e ter uma visão do andamento das atividades do projeto.

Fonte: http://imasters.com.br/artigo/10699/gerencia-de-ti/scrum-uma-metodologia-agil/

Esta forma de trabalho através de um KANBAN físico é ideal para equipes centralizadas que trabalham no mesmo ambiente, mas em equipes geograficamente distribuída, faz-se necessário o uso de ferramentas web que simulem o KANBAN e possibilitem o acesso da informação contida no KANBAN em qualquer lugar.

Existem várias ferramentas para tal, como:

  • ICESCRUM - http://www.icescrum.org/

  • Firescrum - http://sourceforge.net/projects/firescrum/

  • Digaboard - http://www.digaboard.net/

  • PPTS - http://ses-ppts.sourceforge.net/

Neste post serão descritos o passo a passo para instalação do ICESCRUM no ubuntu 13.04

ICESCRUM

O Icescrum (http://www.icescrum.org) é um aplicativo web open source desenvolvido em Grails/Java capaz de fornecer um ambiente para gerenciar os pilares do gerenciamento de projetos ágeis através do SCRUM:

  • Gerenciamento do Product Backlog: através do ICESCRUM podem ser cadastradas as os casos de uso do produto (user stories) e que formarão o conjunto de requisitos que serão posteriormente escolhidas

  • Gerenciamento da Sprint: uma parte do Product backlog é escolhida e a partir daí são definidas atividades que serão desenvovlvidas dentro da interação de trabalho

Um exemplo do funcionamento do Icescrum é mostrado na Figura a seguir

Ambiente de Implantação

Neste tutorial, o Icescrum foi instalado na versão 12.10 do Ubuntu Server 64bits. Como o Icescrum roda sobre um servidor de aplicação, é necessário instalar a Java, bem como algumas dependências de uso desta ferramenta.

Instalando Pré-requisitos

Para rodar o icescrum deve-se ter instalado os seguintes pacotes

  • apache2: servidor http no linux

  • tomcat7: versão mais recente do servidor de aplicação baseado no apache2

  • openjdk-7: versão da máquina virtual java

  • mysql: banco de dados mysql para criação de usuários

  • unzip: para extrair o arquivo do icescrum baixado no site.

para instalação de todas estas dependências, chame o seguinte comando

$ sudo su # apt-get install openjdk-7-jdk default-jdk tomcat7 apache2 libtomcat7-java mysql-server-5.5 mysql-client unzip

Após a instalação de todos os pacotes é solicitada a senha de root do mysql

Neste momento, o usuário deve digitar a senha de root do mysql.

Para a utilização do icescrum, será criado o banco de dados e um usuário icescrum para acessar apenas o banco de dados criado.

$ mysql -u root -p Enter password: <digite a senha de root do mysql>

Após a digitação da senha o usuário terá acesso ao gerenciamento do mysql

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 43 Server version: 5.5.32-0ubuntu0.12.10.1 (Ubuntu) Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> CREATE DATABASE IF NOT EXISTS icescrum; GRANT ALL PRIVILEGES ON icescrum.* TO 'icescrum'@'localhost'IDENTIFIED BY 'senha do icescrum'; mysql> FLUSH PRIVILEGES; mysql> quit;

Após a criação do banco de dados podemos dar continuidade fazendo algumas configurações importantes do tomcat7 para rodar o icescrum. Sabendo que as configurações do tomcat encontram-se na pasta /var/lib/tomcat7/ é necessário modificar a forma de acesso do tomcat para uma compatível com o icescrum.

$ sudo su # vim /var/lib/tomcat7/conf/server.xml

comente a linha 72 e insira uma nova configuração de conexão

<!--<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" />--> <Connector port="8080" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="2000" maxThreads="500" URIEncoding="UTF-8"/>

obs: inserindo um texto entre <!-- --> faz com que uma parte do arquivo xml seja comentada. Inseri <!-- antes do <connector e um --> após o />

Depois disto, inseri algumas variáveis de ambiente diretamente na configuração do tomcat para tornar possível a devida configuração, bem como, funcionamento correto do Icescrum em questão de uso de memória. Para isto, chama-se o seguinte comando:

# vim /etc/default/tomcat7

No arquivo inseri as seguintes entradas

icescrum_config_location=/usr/share/tomcat7/icescrum/config.groovy CATALINA_OPTS="-Dicescrum.log.dir=/usr/share/tomcat7/icescrum -Duser.timezone=UTC -Dicescrum_config_location=/usr/share/tomcat7/icescrum/config.groovy -Xmx512m -XX:MaxPermSize=256m"

Após isto, o tomcat7 está pronto para receber o icescrum.

Configurando o ICESCRUM

Antes de mais nada, é necessário configurar o icescrum. Uma coisa que o tutorial do site não fala é que devemos criar a pasta onde haverá as configurações, nem passa ao usuário as configurações de forma intuitiva. Então vamos lá.

# mkdir /usr/share/tomcat7/icescrum # touch /usr/share/tomcat7/icescrum/config.groovy # chown tomcat7.tomcat7 -R /usr/share/tomcat7/icescrum # mkdir /home/icescrum # chown tomcat7.tomcat7 -R /home/icescrum

Depois disto, é necessário editar o arquivo /usr/share/tomcat7/icescrum/config.groovy e colocar todas as configurações do icescrum.

icescrum.project.import.enable = true icescrum.project.export.enable = true icescrum.project.creation.enable = true icescrum.project.private.enable = true icescrum.gravatar.secure = false icescrum.gravatar.enable = false icescrum.registration.enable = true icescrum.login.retrieve.enable = true icescrum.auto_follow_productowner = true icescrum.auto_follow_stakeholder = true icescrum.auto_follow_scrummaster = true icescrum.alerts.errors.to = "dev@icescrum.org" icescrum.alerts.subject_prefix = "[icescrum]" icescrum.alerts.enable = true icescrum.alerts.default.from = "webmaster@icescrum.org" grails.serverURL = "http://<ip do servidor>:8080/icescrum" /* Changing the port will require to change it in the Tomcat server.xml Connector*/ icescrum.debug.enable = false icescrum.securitydebug.enable = false icescrum.baseDir = "/home/icescrum" icescrum.cors.enable = true /* CORS is enabled by default However, it's enabled only for projects where web services are enabled */ icescrum.cors.allow.origin.regex = "*" /* Use double backslash for escaping e.g. (http://|.+\.)mydomain\.com */ dataSource.dialect = "org.hibernate.dialect.MySQL5InnoDBDialect" dataSource.driverClassName = "com.mysql.jdbc.Driver" dataSource.url = "jdbc:mysql://localhost:3306/icescrum?useUnicode=true&characterEncoding=utf8" dataSource.username = "icescrum" dataSource.password = "password"

OBS: atente para configurar da forma correta os trechos de código em vermelho.

Depois disto, você pode baixar o icescrum através do comando.

# wget -c http://www.icescrum.org/downloads/icescrum_R6_9_war.zip

depois disto, extraia o arquivo através do comando

# unzip icescrum_R6_9_war.zip

depois disto, copie o arquivo extraído para a pasta webapps do tomcat. mas antes é altamente recomendável parar o tomcat

# service tomcat7 stop # mv icescrum.war /var/lib/tomcat7/webapps

Para evitar problemas com o mysql-conector, copie da pasta do icescrum para a pasta do tomcat o mysql conector.

# cp /var/lib/tomcat7/webapps/icescrum/WEB-INF/lib/mysql-connector-java-5.1.18.jar /usr/share/tomcat7/lib/

e depois reinicie o tomcat

# service tomcat7 start

Depois disto, o tomcat faz a sua parte fazendo o deploy do icescrum, extraindo o arquivo war e iniciando o tomcat.

Para verificar o status do icescrum, configure o tomcat-users para verificar o webadmin do tomcat. Inserindo as seguintes linhas no arquivo /var/lib/tomcat7/conf/tomcat-users.xml na penúltima linha do arquivo.

<role rolename="manager-gui"/> <user username="admin" password="pass" roles="manager-gui"/>

Ao fazer o login, você perceberá que o icescrum já está em execução

depois disto, é só chamá-lo através de http://ip_do_seu_servidor:8080/icescrum

Ao clicar em connect, vc vai ser guiado a tela de login e poderá criar seu usuário no sistema.

Por fim, para tornar transparente ao usuário o uso da porta 8080, basta ativar em seu apache2 o módulo proxy através do comando

# a2enmod a2enmod proxy proxy_http

depois disto, edite o arquivo de configuração padrão do apache2

# vim /etc/apache2/sites-available/default

e insira logo no início do <Virtualhost *:80>

ProxyRequests Off ProxyPreserveHost On ProxyStatus On ProxyPass /icescrum/ http://localhost:8080/icescrum/ ProxyPassReverse /icescrum/ http://localhost:8080/icescrum/

Pronto, agora vc vai ter também o icescrum de forma transparente, sem chamar o :8080, assim, seu icescrum será acessível através do

http://ip_do_seu_servidor/icescrum