quinta-feira, janeiro 31, 2008

Uma Introdução ao OpenUP na revista Visão Ágil

Escrevi um artigo na terceira edição da revista Visão Ágil com uma introdução ao OpenUP. Basta acessar a terceira edição da revista e buscar pela matéria na página 25.

O texto inicia assim:

"OpenUP é um processo enxuto, baseado no 'Unified Process', que possui um ciclo de vida iterativo e incremental. O OpenUP também foi elaborado como uma filosofia ágil, pragmática e que foca na natureza colaborativa do desenvolvimento de software. É um processo de baixa cerimônia e que não indica nenhum tipo de ferramenta específica. Uma das características visíveis do OpenUP é que a disciplina de gestão de projetos é uma adaptação do Scrum (processo ágil empírico com foco nos aspectos de gestão de projetos, sem entrar em detalhes da engenharia de software).

O OpenUP possui princípios (isto é, se você não seguir um dos princípios você não está na realidade adotando o processo como se deve) semelhantes à versão 7 do RUP. Eles são:

● Balancear prioridades competidoras para maximizar o valor aos envolvidos do projeto.
● Colaborar para alinhar interesses e compartilhar entendimento.
● Focar cedo na arquitetura para minimizar riscos e organizar o desenvolvimento.
● Evoluir para continuamente obter feedback e melhorar.

O OpenUP pode ser mais facilmente entendido através dos seus ciclos de visibilidade. Vamos falar sobre cada um deles separadamente, na seqüência do ciclos mais curto até o ciclos mais longo, para dar uma visão clara de como é a vida em um projeto OpenUP...".

Marcadores: ,

terça-feira, janeiro 15, 2008

Crap4j - Ferramenta de Métrica de qualidade para código Java

Crap4j é um software que auxilia a detectar código Java ruim. O acrônimo crap significa "Change Risk Analysis and Predictions", mas também é uma brincadeira para descrever o naipe de um código ruim :-) .


Como o Crap4j analisa se um código é ruim? Ele faz isso comparando duas métricas de qualidade de código fundamentais: a complexidade ciclomática e a cobertura de caminhos de código.


Pode-se resumir a tabela da ferramenta assim:


Complexidade ciclomática do método - % de cobertura para ficar abaixo do CRAP limite
0 – 5 --> 0%
6 - 10 --> 42%
11-15 --> 57%
16-20 --> 71%
21-25 --> 80%
26-30 --> 100%
31+ --> Hora de refatorar!!!


Isto significa que você pode ter métodos complexos, porém estes devem possuir um mínimo de cobertura de testes para garantir uma melhor manutenção de código.

Abaixo temos um screenshot de um relatório emitido pela ferramenta crap4j. Note que, quanto maior o número CRAP, maior o risco e complexidade de um método. Qualquer método com 30 ou mais de CRAP necessita de atuação (aumento do número de testes unitários para aumentar a cobertura ou refatorar para diminuir a complexidade ciclomática... ou ambas as coisas!).

Marcadores: ,

quinta-feira, janeiro 10, 2008

Benefícios da Certificação RUP - Rational Unified Process V7.0

A certificação "IBM Certified Solution Designer - IBM Rational Unified Process V7.0", da IBM Rational, pode ser obtida com a realização do teste 839. Esse teste é uma prova realizada por um centro autorizado Prometric e seu objetivo é mostrar que o candidato conhece realmente o RUP versão 7.



Quais são, então, os benefícios da certificação RUP?



O primeiro é demonstrar para os empregadores que você estudou a fundo o tema e que realmente sabe quais são os princípios do RUP, como ele é formado, quais são suas disciplinas, papéis, atividades, etc. Isso é um diferencial, pois nota-se em sites de emprego que o conhecimento de RUP é um requisito muito pedido. Um grande número de empresas e consultorias no Brasil utiliza o framework do RUP para customizar seus processos de desenvolvimento de software.



A segunda vantagem é que você se tornará um profissional mais valioso para uma consultoria ou fábrica de software. Diversas licitações governamentais já pontuam bem as empresas que possuem profissionais certificados em RUP. Mesmo empresas privadas gostam de saber e conhecer os currículos das pessoas que trabalharão em seus projetos.



A terceira vantagem é que a certificação do RUP abre as portas para diversas outras certificações da IBM Rational. Para você se tornar um "IBM Certified Specialist for Rational Requirements Management w/Use Cases" (isto é, um especialista em gestão de requisitos) você obrigatoriamente precisa ter sido certificado em RUP 7.0. A certificação RUP, aliada a uma certificação de UML como a da OMG, demonstrará com ainda mais ênfase o seu valor.



É claro que devemos sempre lembrar que uma certificação não garante que um profissional aplicou na prática uma determinada tecnologia ou conceito, porém ela mostra que esse profissional é disciplinado o suficiente para ter estudado o assunto a fundo. Assim, ele terá mais facilidades em aplicar esse conhecimento do que aquele que ainda não teve nenhum contato com o processo.



Um ponto a favor da certificação RUP é que ele é um dos raros frameworks de processos de desenvolvimento de software que possuem uma certificação formal que ajuda a mostrar que o profissional possui um conhecimento aprofundado no assunto.



O conteúdo do exame foca no conhecimento do RUP clássico para grandes projetos e, desse modo, abrange uma grande quantidade de informações.



Portanto, no mundo competitivo do mercado corporativo, a certificação Rational Unified Process provavelmente ajudará você numa potencial disputa por vagas em uma empresa que adota o RUP como processo e também pode alavancar sua carreira e suas recompensas financeiras.



Para as empresas, contratar um profissional certificado em RUP 7 garante que aquela pessoa já possui um conhecimento razoável do framework e que, desse modo, terá maior facilidade de se adaptar ao processo de trabalho da organização. Mostra também que a pessoa é disciplinada e interessada o suficiente para estudar maneiras de melhorar seu trabalho (um processo está aí para isso: ajudar você a melhorar continuamente sua forma de desenvolver software com qualidade e agilidade).



Logo teremos uma grande novidade para ajudar as pessoas a obter a certificação IBM Certified Solution Designer - IBM Rational Unified Process V7.0. No início de fevereiro haverá maiores detalhes aqui no blog. Quem tiver interesse em tirar a certificação ainda este ano pode mandar um email para mim. Empresas interessadas em fazer com que seus profissionais sejam certificados em RUP também podem entrar em contato. Eu responderei com as informações iniciais desse apoio que ainda não existe com força aqui no Brasil. O endereço é jose ponto papo arroba gmail ponto com ( transforme a palavra ponto em . e a palavra arroba em @ ).

Vamos nos capacitar e crescer profissionalmente para tornar o Brasil um país mais avançado!

Marcadores: ,

sexta-feira, janeiro 04, 2008

Bibliografia sobre Marketing e Otimizacao para Sites de Busca

Na parte 1 da série sobre otimização para sites de busca fizemos uma breve introdução aos conceitos e à necessidade de pensar a arquitetura de um site voltada para a leitura também por sites de busca.

Abaixo segue uma bibliografia básica interessantíssima sobre esse vasto assunto. Para quem quiser ou precisar entrar nesse mundo as leituras abaixo são obrigatórias.

"Search Engine Marketing, Inc.: Driving Search Traffic to Your Company's Web Site" de Mike Moran e Bill Hunt - Este livro trata de estratégias para marketing de busca, tanto orgânicas como pagas. Eu diria que este é o primeiro livro que todo profissional de marketing ou desenvolvedor SEO deveria ler sobre o assunto. Ele trata de Retorno sobre investimento das estratégias de SEM, de como criar um plano de Marketing focado em busca, dicas de como pagar links patrocinados e criar sites otimizados, entre outros assuntos.



"Search Engine Optimization For Dummies, Second Edition" de Peter Kent - Apesar do nome "For Dummies" esse é um livro fundamental sobre otimização para sites de busca. Deve ser o primeiro livro a ser lido. Ele aborda com profundidade as principais técnicas de SEO, bem como dá dicas para você não cometer fraudes que podem diminuir seu ranqueamento.



Pay Per Click Search Engine Marketing For Dummies de Peter Kent - Também da série "for Dummies" esse é um livro que explica em detalhes como utilizar links patrocinados e técnicas para comprar palavras-chave ( keywords ). Fundamental para os marketeiros de plantão que adotarem também a estratégia pay-per-click.



"Web Design for ROI: Turning Browsers into Buyers & Prospects into Leads" de Lance Loveday e Sandra Niehaus - Um livro interessantíssimo, que ajuda web designers a pensar na construção de um site com o ponto de vista do objetivo final daquele site (realizar uma compra em um site de comércio eletrônico, fazer uma assinatura mensal num site de serviços, etc). Aborda extraordinariamente bem como projetar home pages, landing pages, category pages, formulários e processo de checkout.



"AdWords For Dummies" de Howie Jacobson - Este é para quem quer se aprofundar na ferramenta para adquirir e gerenciar links patrocinados no site de buscas Google.



"Professional Search Engine Optimization with PHP: A Developer's Guide to SEO" de Jaimie Sirovich e Cristian Darie - Este é um livro fundamental para desenvolvedores. Os autores explicam em detalhes como deve ser feita a arquitetura de um site que atenda também a otimização para sites de busca. Apesar de dar exemplos de código em PHP as dicas e técnicas encontradas no livro podem ser adaptadas com facilidade para qualquer linguagem e plataforma (Java, JEE, Ruby on Rails, Delphi, Python, etc).



"Professional Search Engine Optimization with ASP.NET: A Developer's Guide to SEO" de Cristian Darie e Jaimie Sirovich - O livro é muito parecido com o imediatamente acima. A principal diferença são os exemplos de códigos, que são fornecidos em ASP .NET.



"Search Engine Optimization: An Hour a Day" de Jennifer Grappone e Gradiva Couzin - Esse é um livro muito bom para quem já possui ou dá manutenção em um site e precisa otimizá-lo para sites de busca. As autoras fornecem técnicas passo a passo para você melhorar continuamente a otimização do seu site. Neste livro fica ainda mais clara a dificuldade para otimizar um site de buscas depois que ele já foi construído. Planejar a otimização desde a arquitetura trará maiores benefícios e também um custo menor. É claro que a otimização para sites de busca nunca pode parar, mas ter uma boa fundação arquitetural facilitará o trabalho de manutenção da estratégia de SEO.

Marcadores: , ,

Otimização de sites de busca ( SEO ) para desenvolvedores - Introdução

Esse é o artigo introdutório na série sobre Marketing em sites de busca ( Search Engine Marketing ) e Otimização de sites de busca ou Search Engine Optimization - SEO.

O Marketing em sites de busca ( Search Engine Marketing ) se tornou um negócio de bilhões de dólares em todo o mundo. Aparentemente esse deveria ser assunto para profissionais da área de Marketing. Porém, como veremos nesse e outros artigos, essa matéria precisa ser pensada e feita pelos desenvolvedores também.

Vamos começar com os conceitos básicos. Podemos dividir o Marketing de busca em duas grandes estratégias:

- A busca paga com links patrocinados ( chamada de Pay-per-Click Search Engine Marketing ).
- Um bom resultado do seu site em uma busca orgânica ( onde pode-se usar técnicas de Otimização de sites de busca ou Search Engine Optimization - SEO ), isto é, o link do seu site aparecendo na lista não paga do site de busca.

Este artigo trata da estratégia de melhoria das buscas orgânicas, através de técnicas de otimização de sites de busca ( Search Engine Optimization - SEO ). Mas por que esse assunto é importante também para os desenvolvedores (arquitetos, gerentes de projeto, programadores, analistas de sistemas, analistas de requisitos e testadores)? Porque, para obter um bom posicionamento nas listas orgânicas de sites de busca, a arquitetura de um site é tão importante quanto o conteúdo otimizado para buscas criado por publicitários e profissionais de marketing.

Por ser um aspecto arquitetural crítico ouso dizer que esse pode ser considerado um novo requisito não funcional! Para criar um site dinâmico que seja acessível na Internet os analistas de requisitos deveriam ter mais algumas perguntas para fazer em suas entrevistas, dentro da categoria de requisitos não-funcionais:

- O site deve ser otimizado para sites de busca?

- Qual deve ser o nível dessa otimização?

- O site possui como um de seus objetivos estar no topo do ranqueamento do Google, Yahoo e MSN?

Mas por que devemos nos preocupar com a otimização de sites de busca o mais cedo possível em um projeto de site na Internet? Porque um bom conteúdo só será bem otimizado se estiver assentado numa boa fundação arquitetural. Se essa fundação estiver ruim, não há bom conteúdo que salvará o site de um posicionamento também ruim em um site de busca. E devemos lembrar a motivação por trás de um bom posicionamento no Google, Yahoo e MSN: uma grande quantidade de pessoas ( ouso até dizer que a maioria! ) chegará ao seu site pela primeira vez através de cliques em listas orgânicas de sites de busca, e não através da digitação direta da URL do seu site em um browser! A grande maioria das pessoas que usam sites de busca tendem a clicar em um ou mais dos 10 primeiros resultados que aparecem na listagem orgânica (não paga) desses sites. Uma porcentagem menor clica nos links pagos e em links orgânicos mais afastados (que estão no final da primeira página natural ou na segunda página natural em diante).

Na parte 2 da série - Bibliografia - passarei uma excelente bibliografia comentada para que desenvolvedores e marketeiros se aprofundem neste mundo de estratégias de SEM ( Search Engine Marketing ).

Na parte 3 da série - Erros arquiteturais - trataremos dos principais problemas relacionados a SEO ( Search Engine Optimization ), cometidos por desenvolvedores ao construir um site na Internet.

E não esqueça! Se tiver alguma dúvida e/ou sugestão deixe seus comentários. Isso enriquecerá os assuntos do blog.

Marcadores: , ,

quarta-feira, janeiro 02, 2008

NetBeans 6 e JBoss Developer Studio - Novidades em IDEs Java para 2008

Começo o ano de 2008 tratando sobre novidades nas IDEs (ambientes integrados de desenvolvimento) Java.

NetBeans 6

Essa IDE gratuita apoiada pela Sun está com diversas novidades e está se tornando uma forte concorrente ao Eclipse no mercado corporativo. As facilidades na construção de aplicações Java Gui e no desenvolvimento de aplicações Web de forma visual impressionam.

Uma coisa chata no NetBeans 5.5 era a dificuldade para conectar os controles visuais Web com componentes EJB e JPA do JEE 5. Agora isso foi melhorado no NetBeans 6! Veja o artigo sobre como usar a API de Persistência Java dentro de uma aplicação Web visual.

Outra boa novidade: suporte a desenvolvimento Ruby on Rails dentro do NetBeans 6!


JBoss Developer Studio

Essa IDE lançada pela RedHat/JBoss é a nova face da antiga ferramenta da empresa Exadel, que foi comprada pela RedHat.

A ferramenta é baseada no Eclipse 3.3 (Europa) e no Web Tools Project 2.0 . Suas funcionalidades mais interessantes são relacionadas ao JBoss Seam e as capacidades AJAX baseadas no JBoss RichFaces. Além, é claro, dos clássicos wizards para Hibernate, JBoss jBPM, Spring, Struts e apadtador otimizado para o JBoss Application Server.

O custo padrão da ferramenta é de 99 dólares.


Marcadores:


Veja as Estatísticas