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.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