Scrum com Alexandre Magno em Fortaleza

25, junho, 2009 Paulo Jr Sem comentários

Ontem (24/06/09) tivemos aqui no Instituto Atlântico uma palestra sobre Scrum, ministrada por Alexandre Magno.

Alexandre Magno é conhecido em todo o Brasil como o cara do Scrum, ele é sócio/dono da empresa AdaptWorks e é também o único cara até então certificado para dar treinamento de Scrum Master aqui no Brasil.

O tema da palestra foi “Scrum na sua empresa: O que você tem a ganhar com isso?”, e o assunto foi muito bem abordado, com certeza nem precisava comentar, já era de se esperar.

Scrum na sua empresa: o que você tem a ganhar com isso!

Scrum na sua empresa: o que você tem a ganhar com isso!

Já participei de mini-cursos de Scrum e de projetos com Scrum e XP, estou familiarizado com o estilo da palestra. Porém na de ontem existiram pontos que fizeram a diferença na apresentação, e gostaria de destaca-los:

Quão péssimos eram RUP, PMBOOK, etc: O Alexandre comentou que em alguns lugares, quando ele vai iniciar suas palestras o pessoal fica pedindo para ele contar uma piada ou outra sobre Como o RUP era Ruim, ou O Quanto o PMBOOK é amarrado, etc. Porém, ao invés dele ir nessa mesma onda, ele fala o que é fato, “as pessoas usam essas ferramentas e/ou frameworks de forma inadequada, ou usam apenas o que lhes interessa e a tendência é o Fracasso!” Obviamente que o mesmo ocorre com SCRUM. A galera começa a colocar nas empresa apenas a parte que lhes interessa, e deixam a essência de fora, ai vem a razão pela qual Scrum não vai funcionar! Depois, quando vier a próxima ferramenta ágil da moda, a galera vai estar pedindo para contar piada de SCRUM.

A culpa sempre é do Cliente: Essa foi uma parte da palestra que se eu fosse comentar por completo, passaria pela palestra inteira, mas em resumo, é aquela velha história de que a culpa é Sempre do Cliente. Nos nosso projetos, se o cliente quiser mudar um simples caso de uso ou uma funcionalidade, ele não pode, isso vai gerar atraso, o cronograma não suporta a mudança, etc.., resultado: sistema atrasa e A culpa é do Cliente. No geral, o que o Alexandre quis dizer com isso é que precisamos estar preparados para mudanças e suporta-las. O cliente diz o que ele quer, se aquela mudança for mais importante para o cliente do que um novo caso de uso, isso é o que vai agregar valor a ele, e isso é o que deve ser mudado no sistema. Então, a desculpa de que a Culpa é do cliente ou da metodologia ou do processo, etc…, não pode mais ser usada, precisamos assumir a responsabilidade e melhorar a visão da área de TI no Brasil e no Mundo!

Conclusão:
Uma palestra excelente e animadora, que agregou em muito valor aqueles que participaram, mesmo os que já tem uma certa vivência na área como eu. Em outra ocasião posso postar mais sobre métodos ágeis ou o próprio Scrum. Por enquanto para os que ficaram com “água na boca” pelo assunto, recomento o vídeo http://www.viddler.com/explore/vinicius/videos/2/ (clique no link ou assista abaixo). Ele é do Vinícius Telles da ImproveIt, e é excelente para o início em métodos ágeis e em XP também. Lembrando que uma boa parte dos conceitos também são válidos para Scrum e outros métodos ágeis.

Categories: agile, framework, scrum, xp Tags: , , ,

Internacionalizar pra que?

4, junho, 2009 Paulo Jr 4 comentários

A idéia de internacionalizar a aplicação hoje em dia tem se tornado algo muito falado e comum. A idéia é que todo sistema desenvolvido a partir de agora tenha isso por default. Porém ainda assim é possível ouvir algumas dúvidas mais comuns: “Internacionalizar pra que? Meu sistema só vai rodar no Brasil mesmo.”, “O tempo que vou gastar internacionazando o sistema não compensa, é melhor colocar a String no código direto mesmo e pronto.”, dentre outros…

Apesar dessas idéias “controversas”, os pontos dessa idéia são pontos fracos e facilmente derrubados. O problema é que cada desenvolvedor pensa somente nele mesmo, se o MEU caso de uso estiver funcionando, se o MEU código não quebrar, se as MINHAS mensagens estão corretas, etc… o que deveria ser mudado. O desenvolvedor deveria programar pensando em reuso, seja um método inteiro que estivesse pronto para ser reusado, seja uma simples mensagem, e é exatamente ai que a Internacionalização entra.

Porque Internacionalizar? Porque em outras palavras, internacionalizar é reusar. Talvez seu sistema não vá para fora do Brasil; mas com certeza as mensagens se repetem dentro dele mesmo. Talvez seu tempo seja resumido; então ganhe tempo internacionalizando e economizando tempo digitando frases já feitas. A razão para internacionalizar são várias e essas são as principais que gostaria de colocar.

Os mais diversos tipos de sistemas possuem uma característica única: texto. O texto no sistema é muito heterogêneos e essa heterogeneidade gera problemas para o usuário, por exemplo, em alguns sistemas para o usuário inserir um determinado dado, ele clica em “Inserir”, já em outra tela “Gravar”, e talvez em outra “Salvar Dados”, e por ai vai. Uma mensagem de erro para validação do CPF poderia ser, “CPF Inválido” e em outra parte do sistema “O Campo CPF é Inválido”, e em outro lugar poderia ter “O CPF deve ser digitado na máscara 000.000.000-00″.Internacionalizando essa mensagem teríamos a mesma em todos os lugares. Agora imagine que a mensagem é a mesma em todos os locais “CPF Inválido”, ai o analista diz que não está bem explicada, e que deveria ser mudado para “O CPF deve ser digitado na máscara 000.000.000-00″, qual a chance de você esquecer um local qualquer do sistema que tenha essa mensagem?

Para finalizar, a internacionalização torna o sistema mais profissional, as mensagens unificadas e reusadas. Os exemplos dados foram simples mas existem coisas muito mais sérias e complexas onde a Internacionalização fará a diferença. As principais linguagens de programação de hoje tem suporte a internacionalização, e isso é facilitado, não hesite em usar.

ReadOnly versus Disabled

10, fevereiro, 2009 Paulo Jr Sem comentários

Em determinados sistemas que desenvolvemos, existe a necessidade de se criar campos que são apenas de leitura, um campo que o usuário não pode altera o valor, apenas vê-lo. Essa necessidade se dá quando existem valores em tela que precisam ser calculados e mostrados ao usuário em tempo de digitação, assim o usuário pode acompanhar se os valores estão corretos, dentre outros. O importante nessa história, é que o calculo realizado não seja alterado. Outras vezes é necessário apresentar informações como os dependentes de um cliente e os mesmos não podem ser alterados. Os dois casos são bastante comuns.

Diferenciando um pouco cada tag, vamos as definições da própria W3C:

Readonly: Esse atributo permite ao usuário selecionar o texto e copiar o seu valor dentro da caixa de texto, porém o valor não pode ser alterado. (http://www.w3schools.com/tags/att_input_readonly.asp)

Disabled: Para atributos do tipo “text” esse atributo não permite que usuário selecione o conteúdo da caixa de texto ou copie o mesmo. (http://www.w3schools.com/tags/att_input_disabled.asp)

Algumas características específicas:

É difícil dizer todos os casos que você deva utilizar um ou outro, mas vamos tentar explorar o caso de o valor ser calculado por sistema enquanto o usuário digita, e então um calculo é exibido em um campo readonly. Utilize readonly, se você quiser que esse calculo seja enviado pelo request da página, pois os campos marcados com readonly são enviados através do request, o que não ocorre com os campos marcados com disabled, campos marcados com disabled não enviam seu valor pelo request, o campo “morre” naquela mesma página.

Com isso já podemos entender um pouco mais onde usar cada um dos tipos. E em caso de dúvidas, visite o www.w3schools.com, esse site é a melhor referência javascript e html dom que eu conheço.

Categories: Iniciante, desenvolvimento, jsf Tags: , ,

PUJ 2008 - Eu Participei!

6, agosto, 2008 Paulo Jr 1 comentário
Logo PUJ 2008

Logo PUJ 2008

O PUJ (Prêmio Universitário Java) 2008 foi realmente sensacional. Foi a segunda versão do prêmio universitário, que teve em 2007.2 a primeira versão com 2 (dois) participantes. Nesta versão foram nada menos que 12 (doze) participantes no prêmio e cada um fez o melhor que pode para que seus projetos de faculdade tivessem um nível alto para o concurso.

As aplicações foram de vários estilos diferentes, desde aplicações desktop com swing a aplicações robustas WEB com Spring, Hibernate e JSF. Vale a pena BAIXAR (Link para todos os trabalhos em um .rar) as aplicações para conferir. O código está o mais fácil e legível possível para poder ser avaliado pelos professores e profissionais do mercado.

Abaixo, seguem 2 (dois) screenshots, um da aplicação vencedora que foi a do Daniel Velente (UNIFOR), onde ele se garantiu mesmo ultilizando a tecnica de busca de melhor caminho através de grafos. Sendo que a aplicação ainda lhe permite ultilizar diversos algoritmos para o cálculo do melhor caminho. Ficou realmente espetacular, mereceu o prêmio. E a outra da minha aplicação, que é um aperfeiçoamento do famoso jogo Pong, um dos jogos mais antigos (talvez o mais) que existe para computador. A idéia era usar OpenGL com Java. E foi mostrado que era possível de se fazer através desse projeto.

ScreenShot 01- Trabalho de Grafos

Aplicação do Daniel Valente

Aplicação do Daniel Valente

ScreenShot 02 - Jogo do OpenGL (PonGL)

Tela de abertura do Jogo

Tela de abertura do Jogo

A parte do Jogo em 3D

A parte do Jogo em 3D

Estou anexando os arquivos fonte e também o jogo para os interessados. E indico desde já um site que é excelente  para aprender OpenGL, tanto em Java quanto outras linguagens. NeHe GameDev.

A classificação geral do PUJ está aqui e o Código Fonte com o Jogo Aqui.

Os demais alunos também estão de parabéns e merecem destaque. Citando pelo menos os cinco primeiros (que infelizmente não estou nessa lista):
1- Daniel Valente (UNIFOR)
2- Robson Araújo (CEFET)
3- Pedro Belmiro (UNIFOR)
4- Francisco Barroso (LOURENÇO FILHO)
5- Francisco de Assis (FIC)

O prêmio de primeiro lugar foi incrível. Uma viagem para bélgica com passagem e hospedagem paga. Ainda de quebra, um voucher para certificação java. O segundo foram livros e assinatura da revista Java Magazine, e o terceiro, apenas a assinatura da Java Magazine.

Para o próximo PUJ (2009?) eu aconselho demais a participação de todos os interessados. Fazer um projetinho simples, porém bem estruturado no código, é o que vale.

Categories: cejug, prêmios Tags: , ,