Arquivo

Arquivo do Autor

O “Oba Oba” das novas tecnologias – Quais tecnologias são mais adequadas para a minha solução?

javascript-frameworks-500

Estão crescendo cada dia mais as opções de tecnologias e ferramentas. Então vem a seguinte questão: “Quais tecnologias as empresas devem utilizar para o desenvolvimento dos seus produtos?”.

Essa é uma pergunta bem difícil de responder e a resposta genérica é: “Existe uma solução para cada caso”.

Os desenvolvedores em geral dividem-se em dois grupos para responder essa questão: Os que tem ansiedade de novos desafios, com tecnologias emergentes e os especialistas, com tecnologias que já tem conhecimento profundo.

Nenhuma das duas abordagens está incorreta. Trabalhar com uma tecnologia que se tem muito conhecimento adquirido reduz o custo do projeto na maioria dos casos, mas existem tecnologias emergentes que tem largas vantagens em relação as já conhecidas.

Se existe esse paradigma, então o que deve ser utilizado? Eu acredito que as tecnologias devem ser propostas pelos desenvolvedores, mas devem ser escolhidas pelo Gerente do Projeto.

O responsável pelo projeto deve levar em consideração a maturidade da tecnologia, manutenibilidade, escalabilidade, valor hora médio de mercado.

A maturidade da tecnologia pode ser medida pela quantidade de documentação disponível, velocidade de atualização, velocidade de depreciação. Ainda é pertinente levar em consideração se a tecnologia possui uma comunidade ativa para ajudar em problemas que possam ocorrer, isso em tecnologias Open Source e para tecnologias proprietárias, se deve verificar se o suporte atende com velocidade suficiente para ter aderência ao projeto.

Quanto a documentação, ela deve ser clara e possuir a abrangência necessária.

A velocidade de atualizações da tecnologia deve ser analisada por dois critérios:

– Qual o motivo da atualização? Erros? Ou Melhorias? E

– Como a atualização da versão da tecnologia afeta o projeto?

Muitas atualizações por motivo de erro indicam que a tecnologia não está madura para ser utilizada em um projeto.

Ao trocar a versão da tecnologia o custo deve ser baixo para adequação ao produto. Caso contrário se torna um risco, pois melhorias das novas versões não são integradas no projeto e o produto acaba ficando estagnado em uma versão sem suporte da tecnologia.

O sucesso do projeto depende de forma significativa das tecnologias envolvidas. Uma escolha ruim, pode atrasar ou acabar com um projeto. É importante gastar um tempo escolhendo as tecnologias adequadas à solução.

Espero ter ajudado!

Obrigado por ler.

Anúncios
Categorias:dicas, gerência Tags:

Como passar na prova Professional Scrum Product Owner I ( PSPOI )?

Com a crescente área de software, existe cada vez mais a necessidade de terem pessoas capacitadas a atender o papel de dono do produto (PO – Pessoa responsável por manter a comunicação entre o cliente e os desenvolvedores, maximizando o valor do produto e do trabalho da equipe de desenvolvimento).

Foi pensando nessa demanda que tomei a decisão de me aprofundar e fazer a prova para me certificar no PSPOI da Scrum.org.

Quando tomei essa decisão percebi que deveria tomar alguns passos óbvios e outros nem tanto que pretendo descrever a seguir:

1 – As provas são feitas em inglês, então é necessário ter esse conhecimento. Para os não fluentes será necessário um esforço a mais e recomendo ler o ScrumGuide em português algumas vezes antes de ler a versão em inglês. Eu li o ScrumGuide cerca de 10 vezes durante os estudos.

2 – O Open Assesment (Avaliação Aberta) é obrigatório para ter sucesso. São duas provas abertas que estão disponíveis nesse link “https://www.scrum.org/Assessments/Open-Assessments”, são elas: Scrum Open e ProductOwnerOpen. É importante tirar 100%, nessas duas provas algumas vezes antes de ir para a prova real.

3 – Utilizar e debater as questões do Open Assesment no fórum com link “https://www.scrum.org/Community/Forums” é muito importante, pois dúvidas à cerca do entendimento das questões são esclarecidas. Ao entender melhor, facilitam a fixação na memória.

4 – A Scrum.org recomenda alguns livros e para quem tem acesso, acho interessante. Segue o link “https://www.scrum.org/Courses/Professional-Scrum-Product-Owner/PSPO-Subject-Areas”. Eu li o “Scrum Product Owndership” do Robert Galen e “Software in 30 Days” do Ken Schwaber e Jeff Sutherland.

Algumas observações:

Vale a pena ressaltar que experiência real no dia a dia acrescenta para o sucesso. Eu tenho cerca de 5 anos de experiência com Scrum, mas a experiência apesar de ser recomendada, não é obrigatória.

A prova é feita online em qualquer lugar que tenha computador e internet de sua preferência.

É altamente recomendado que seja um local que não tenha queda de luz ou link de internet com frequência. Esse caso não ocorreu comigo, mas caso ocorra, acredito que será reprovado automaticamente e será necessário comprar um novo voucher.

Estou aberto às dúvidas, críticas ou sugestões para o artigo!

Boa sorte e espero ter ajudado!

certificado2

Categorias:scrum Tags:, ,

Tornando-se Superusuário ou Root do seu Android

setembro 30, 2010 3 comentários

Uma dica para os usuários avançados de Android é se tornar root e com isso superusuário do seu aparelho Android.

Estão entre as vantagens de se tornar root, conseguir utilizar mais funcionalidades do seu aparelho, como atualizar para as versões mais novas do Android.

ATENÇÃO: Lembro a todos que esses passos e métodos são perigosos e podem danificar seu aparelho. Utilizem a sua conta e risco. Recomendo a utilização apenas para usuários avançados e que não temam inutilizar seus aparelhos.

Eu testei em um telefone Galaxy Vibrant com Android 2.1 e funcionou bem. Todos os outros aparelhos e métodos eu não testei.

Cliq e Dext: link

Motorola Droid, Droid X e Milestone e HTC/Google Nexus One: link

Aparelhos HTC: link

Galaxy Vibrant e Captivate: link

Galaxy GT-I9000B e Outros: link

Até a próxima. 🙂

Categorias:android

Telas de diferentes tamanhos no Android

Sobre o problema com as diferentes resoluções, o Android SO tenta tratar isso de forma automática da mesma forma como trata a Internacionalização.

Existe uma premissa que no Android só podem haver três tipos de dispositivos para relação aos tamanhos, aonde os smartphones estão geralmente classificados em médios e os tablets, por exemplo, estão classificados como grandes. Então no desenvolvimento, três pastas devem ser criadas por padrão para construção de aplicações Android e dentro de cada uma pasta (em inglês), “baixa”, “média” e “alta”, deve-se colocar as imgens com as resoluções respectivas. O sistema operacional cuida do resto. De acordo com a resolução do dispositivo ele exibe a imagem correta.

Ainda existe mais opções com relação a diferenças de tamanho de tela, aonde ele ainda pode no caso do tablet, por exemplo, exibir mais informações ou melhorar a organização dos componentes aproveitando melhor o espaço.

Existe uma discussão ampla em torno disso que diz que existem problemas nessa abordagem. Dizendo que pequenas diferenças de resolução que podem afetar muito o design da tela, não podem ser tratadas utilizando essa abordagem e dessa forma criando aplicações para cada resolução. Acredito que aplicações que são sensíveis a pequenas alterações de tamanho devem ser tratadas de forma especial e serem homologadas em alguns padrões oficiais de tamanho. Criar perfis de telas para cada resolução especifica a ser verificada no momento do carregamento da aplicação, após identificar o perfil do dispositivo utilizado.

Existem muitos pontos de vista sobre esse problema e não tenho a intenção de dizer que o problema não é um problema, mas existem formas hoje de tratar o problema e existem muitas empresas de peso tentando resolver essa questão.

Categorias:android

Android

Resolvi fazer um post para falar um pouco sobre desenvolvimento móvel e android.

Há muitos anos tenho tido algumas iniciativas para desenvolvimento móvel mas a falta de padrões sempre me desanimou. Com o desenvolvimento do android vejo um novo e poderoso meio de criar aplicações para dispositivos móveis.

Venho criando pequenas aplicações faz uns meses e esse final de semana resolvi dar mais um passo para consolidar meus conhecimentos sobre o assunto. Fui há São Paulo fazer um curso de android e consegui absorver conhecimentos mais detalhados e ampliei minha visão sobre o android.

O android é espetacular e já amplamente adotado pelas grandes empresas fabricantes de aparelhos móveis.

O android nos possibilita alterar todas as aplicações do telefone e utilizar todos os recursos de hardware de uma forma transparente e amigável ao desenvolvedor. Através do plugin para a IDE de desolvimento eclipse é possível debugar aplicações no emulador e até no telefone conectado a USB. Esse é apenas um exemplo do que o Google tornou possível no ambiente de desenvolvimento, pois com a possibilidade de desenvolver utilizando apis Java o android ganhou grande parte do poder do Java.

Devo voltar a falar de android nos próximos posts. Obrigado pelo seu tempo.

Categorias:android

JBoss não inicia utilizando o plugin do Eclipse – TimeOut

Mais uma dica na categoria problemas do cotidiado.

Geralmente ao utilizar o plugin de inicialização do Servidores de Aplicação dentro do Eclipse acontece um erro de TimeOut, esse erro pode ocorrer por alguns motivos, mas os pricipais são:

– Ao inciar o servidor de aplicação é necessário iniciar todas as aplicações que estão deployed dentro dele e isso requer, as vezes, um tempo maior que o configurado dentro do plugin. Isso pode gerar o erro de timeout.

Solução: Nesse caso configure a aba Timeouts “Start in seconds” para um valor maior.

– Ao iniciar o servidor JBoss embora não exiba nenhum erro de Deploy ele não inicia e após um período o eclipse exibe uma excessão de Timeout.

Solução: Esse erro geralmente ocorre quando o Tomcat interno utilizado no JBoss está utilizando um porta diferente da configurada dentro do Eclipse. Para equalizar as portas modifique ou equalize com a porta configurada no arquivo “\jboss-4.0.5.GA\server\default\deploy\jbossweb-tomcat55.sar\server.xml” HTTP port.

Categorias:dicas Tags:

JBoss Server – Port 1099 Already Bound Error.

Vou começar a postar sobre alguns erros comuns que ocorrem no cotidiano para ajudar a todos a solucionar esses problemas operacionais.

Se ao tentar inicializar o Servidor de aplicação JBoss você pegar um erro dizendo “Port 1099 already bound”, isso significa que a porta já está em uso por outra aplicação. Normalmente as aplicações que usam essa porta podem ser o Firefox ou MSN/Yahoo Messenger. Você pode parar essas aplicações e tentar iniciar o Servidor novamente. Se obtiver sucesso você pode iniciar novamente essas aplicações, pois elas sabem utilizar portas alternativas para inicializar os serviços.

Um comando interessante no windows para saber qual aplicação utiliza qual porta, utilize o DOS e rode o comando.

netstat -b

Outro motivo para gerar o problema é o Servidor já estar iniciado ou ter algum outro serviço utilizando essa porta. Nesse caso você pode alterar a porta no arquivo “\jboss-4.0.5.GA\server\ports-bindings.xml”.

Espero ter ajudado.

Categorias:dicas Tags:

Integração Continua com Hudson

Nas últimas semanas eu estive trabalhando em um projeto de Integração Contínua e foram analisadas duas ferramentes CruiseControl e Hudson.

O Hudson na análise se mostrou uma ferramenta mais prática e fácil de utilizar, tem interface gráfica e possibilita a construção de projetos auxiliares (dependências), inclusive com a possibilidade de utilizar várias máquinas para acelerar o processamento das construções.

A função da Integração Contínua é fornecer automatização da construção de aplicações e testes integrados, gerando relatórios que facilitam a homologação da aplicação e possível resgate de uma construção anterior.

O Hudson integra com repositórios como CVS, possibilitando fazer checkout do projeto e configurar um listener para gerar uma nova construção da aplicação toda vez que existir alteração da versão de qualquer aquivo no projeto. Existe ainda integração com ferramentas para construção de aplicação como ANT, que é aonde devem ser configurados para serem executados os testes Junit.

Foram testados Junit que utilizam o Selenium, uma ferramenta de testes de interface WEB ou seja ferramenta para testar o Client Side da aplicação. Este teste obteve sucesso.

Não entrei em detalhes profundos sobre o Hudson, pois já existe bastante conteúdo sobre ele no Google, um bom link para começar é : http://blog.dilas.com.br/index.php/2007/07/25/integracao-continua-com-hudson/

Com certeza manter um processo de Integração Contínua em um projeto, adiciona muito para a qualidade do projeto além da transparência para todos os participantes do processo de desenvolvimento.

Conforme for havendo o amadurecimento do projeto devo trazer algumas funcionalidades interessantes do Hudson :).

Cobertura de testes unitários com Emma

Os testes unitários facilitam a integração continua em uma aplicação! Isso muitos já sabem, mas o que talvez possa estar passando a despercebido em algumas empresas hoje, é a eficiência destes testes unitários, que reflete diretamente na qualidade da aplicação.

Na tentativa de melhorar a qualidade de testes unitários percebi que não bastava apenas visualmente verificar classe por classe, sua utilização e tentar cobrir o máximo de possibilidades, verifiquei que isso seria impossível ser alcançado utilizando apenas o bom senso. Principalmente quando são projetos muito grandes com muitas pessoas desenvolvendo testes e artefatos do software.

Um boa prática para os projetos foi implantada recentemente em um dos projetos que eu trabalho, a ferramenta Emma, bem como outras ferramentas como por exemplo: Cobertura e CodeCover, que tem como objetivo gerar relatórios sobre o código que está sendo utilizado no momento de execução dos testes unitários. Com isso eu pude verificar com exatidão quais classes, métodos, blocos e linhas do meu código não estão sendo utilizados pelos testes. Permitindo então construir novos testes para essa parte da aplicação que até então não está sendo testada, mas deveria.

A ferramenta Emma que foi implantada em um sistema EJB 2.0 e foi publicada no Jboss 3.2.7, é muito fácil de utilizar, vou descrever abaixo os passos para gerar um relatório.

Copie o arquivo “emma.jar” quem vem dentro “emma-*****-lib.zip”, é pode ser baixado no site http://emma.sourceforge.net/, para dentro do diretório do Servidor da Aplicação, no meu caso “/java/jboss-3.2.7/server/default/lib”.

É necessário gerar a versão da sua aplicação publicada com as classes instrumentadas, o que significa que suas classes originais serão modificadas para que possa ser possível o Emma verificar o que do código está sendo utilizado. Para gerara as classes instrumentadas utilize o comando “java –cp emma.jar emma instr -d output -ip ****.jar” com isso será gerado o arquivo “coverage.em” e a nova versão instrumentada do “****.jar”. Agora basta substituir o JAR publicado no seu Servidor de Aplicação por esse novo que foi instrumentado e iniciar o servidor.


Rode os testes normalmente e ao terminar desligue o Servidor de Aplicação. Com isso o Emma utilizando suas classes instrumentadas já gerou o arquivo de onde se origina o relatório no diretório aonde está sendo executado o Servidor, no meu caso “C:\java\jboss-3.2.7\bin\ coverage.ec”.
 Para concluir e gerar o relatório basta rodar o comando: 
C:\java\jboss-3.2.7\bin>java -cp emma.jar emma report -r html -in coverage.em -in C:\java\jboss-3.2.7\bin\coverage.ec, lembrando que o arquivo que foi gerado no momento da instrumentação “coverage.em”, deve estar no mesmo diretório que o “coverage.ec” ou descrever o caminho para esse arquivo. O relatório será gerado em “coverage\index.html”, existem ainda a possibilidade de gerar esse relatório em Plain Text ou XML.


Uma outra forma de utilização do Emma é executar a instrumentação e processamento do relatório através do Ant, abaixo segue o exemplo de instrumentação:

<emma>
   <instr destdir=“${emma.bin.dir}” mode=“fullcopy” merge=“false” metadatafile=“${emma.metadado.dir}/coverage.em” instrpath=“${bin.dir}”/>
</emma>

É isso, espero ter ajudado!

Categorias:java Tags:, , ,

Uma forma de começar

 

Tenho trabalhado com informática já faz bons anos, gostaria de compartilhar

minhas idéias e experiências.

Vou tentar postar aqui algumas experiências com tecnologias
interessantes que eu for conhecendo daqui para frente.

Às vezes vou escrever umas bobeiras J.

Categorias:outros