Monthly Archives: July 2008

Desenvolvimento Ágil: o que seu chefe deve saber?

De acordo com um estudo da Evans Data (registro é necessário), mais da metade dos desenvolvedores americanos estão utilizando algum tipo de metodologia de desenvolvimento ágil. Parece que alguns chefes desta turma toda nem sequer conhecem os benefícios da abordagem ágil para o desenvolvimento de sistemas.

No Brasil, sempre pobre em estatísticas, não encontrei uma pesquisa que indicasse qual o porcentual dos desenvolvedores brasileiros que fazem uso de alguma metodologia ágil. Imagino que tenhamos um cenário semelhante ao dos E.U.A. Se você pesquisar no Google Scholar, verá que nossas universidadem produzem muita pesquisa sobre estas metodologias.

Neste artigo do CIO.com, o autor lista 7 pontos importantes que todo gerente de software (e desenvolvedor) deveria saber sobre métodos ágeis.

1. Permitem o Desenvolvimento de Software de Melhor Qualidade

Foco nas funcionalidade, no que o software irá fazer, revisões com pares (peer reviews), processos mais leves liberando o desenvolvedor da burocracia pesada das metodologias tradicionais… …tudo isto produz softwares de melhor qualidade.

2. Promove uma Mudança na “mentalidade” do time de desenvolvimento

Não é apenas um processo, metodologias ágeis promovem uma “nova atitude” na forma como o software é desenhado e implementado. Segundo o consultor Mike Sutton (Wizewerx.com), ocorre uma mudança da forma de pensar. A adoção é um processo, por vezes, doloroso pois “…força as organizações as organizações e indivíduos a confrontar o desperdício, ineficiência e falta de informação”. Ainda segundo ele, os desenvolvedores nerds vão precisar conversar uns com os outros e com o resto do mundo. Pasmem!

3. Mudanças ágeis além do tradicional “fluxo de desenvolvimento”

A adoção de metodologia ágil produzi um impacto na cultura da organização. intensa colaboração, feedback constantes, formas não tradicionais de acompanhamento de projeto, reuniões curtas e objetivas (meu sonho!)… …tudo isto é confrontado com um processo já estabelecido (o status quo).

Se problemas surgirem, e eles irão surgir, não culpem a nova metodologia. Eles já estavam aí, a nova abordagem apenas mostrou os problemas de forma mais explícita. Vejam o que afirma um outro consultor (Steven Gordon):

collaboration brings to the surface a lot of issues, problems and obstructions in the organization. Do not kill the messenger, Gordon urges; agile is not creating these issues, only making them more apparent. CIOs have to prioritize and address the problems. “If the organization appears to be ignoring these issues after they are surfaced, people will come to believe that the agile principles make no difference and will go back to just minding their own business and doing their jobs in isolation…

4. Ágil não Significa “Caos é Bom”

Existe uma idéia pré-concebida de que tais métodos trarão uma “bagunça” para o processo. Agilidade não significa desorganização.

Por outro lado, nem todo projeto pode utilizar uma metodologia deste tipo. Esta abordagem se encaixa muito bem para aqueles desenvolvimentos (que precisam ser feitos) rápidos e cujos requisitos não estão claros(!).

(eu sei, todos nossos projetos também são assim…)

5. Benefícios de uma Metodologia Ágil Compensam a Espera

Como toda mudança os benefícios não serão vistos imediatamente. Segundo o artigo, quem adotou não quer voltar atrás.

Um grande benefício é que, devido a iterações mais curtas, a equipe de TI pode verificar os riscos mais cedo e as decisões de “go/no-go” serão feitas nas fases iniciais.

6. Não existe a “Bala de Prata”

Não se engane, a metodologia ágil não será a “salvação da lavoura”. Programadores ruins continuaram ruins. Veja outro trecho:

Give competent and invested people agile, and you’ll have happier
people doing better work more rapidly. Give incompetent, unempowered
people agile (or even worse, just the word agile), and you’ll still fail

7. Sucesso Depende das Pessoas

Ainda bem. Desenvolvedores gostam de ver suas criações em ação. Nada é mais frustante do que ver todo seu esforço criativo, para construir uma solução de software, ser arquivado ou abortado. Já participei de vários projetos de software que não tiveram continuidade. É altamente desmotivador.

Com um processo ágil o time que implementa pode ver o resultado mais rápido e isto motiva ainda mais, apesar de todos os problemas de requisitos incompletos e a eterna insatisfação dos usuários.

Category: Agile

Já ouviu falar em “Cuil”? É um concorrente do Google?

Sim, é um concorrente do Google. De Tempos em tempos surge um novo sistema de busca para concorrer com o onipresente Google (mais conhecido como “o oráculo!”).

Esta semana visitei o Cuil (pronuncia-se “cool”). É mais um sistema de busca. Sim, mas promete trazer algumas inovações. Um exemplo é a separação da buca em abas, tente pesquisar o termo “BPM”.

Quem são os fundadores? Ex-Googles! E não são ex-funcionários “comuns”. São engenheiros que trabalharam nos centros de pesquisa da IBM e ajudaram na implementação do “engine” de busca do Google. Para completar o time de peso, um ex-engenheiro chefe do pioneiro sistema de busca “AltaVista”, que reinou por muito tempo no início da Web.

Já são mais de 121 bilhões de páginas indexadas e, de fato, um visual interessante. Já recebeu US$ 33 milhões em investimento de venture investors.

A briga promete!

Abraços!

Category: inovation

POJO Web services, Spring e Apache CXF

Posted on by

O site DeveloperWorks/IBM está lançando uma série de tutoriais sobre a implementação de Web services utilizando Apache CXF e Spring. A parte 1 deste tutorial está disponível aqui (acesso livre).

O tutorial é muito “hands on” com exemplos dos códigos e link para download de todos os fontes e aquivos de configuração da aplicação-exemplo.

Category: Ibm, web-service

Implementações de SOA falham devido a Pessoas?!

Pouco falamos das falhas das implementações ou implantações dos nossos projetos e iniciativas. Acho que compartilhar estas informações pode ajudar outras pessoas e empresas a reduzir os riscos e, no mínimo, faze-las parar e pensar se estão mesmo no caminho certo. Com a arquitetura SOA não é diferente.

Muitas iniciativas falharam (e falham). É claro que as empresas e consultorias que “vendem” SOA não irão te contar nada a respeito disto e muito mesmo irão colocar em seus sites os “cases de falha de implementação SOA”, esqueça!.

E por que falham? Porque a tecnologia ou produto é ruim? Não necessariamente. Iniciativas de SOA, como qualquer outra, são conduzidas por pessoas. Parece óbvio (e é!). Logo, muitas vezes, a falha está em nós mesmos que lideramos e propomos esta nova abordagem orientada a serviço.

Isto é o que Mike Kavis escreve neste artigo para o site CIO.com. Resumo abaixo as 10 razões que ele destaca. O artigo vale a leitura porque o autor não se limite a apontar os erros; ele faz recomendações para cada umas das razões.

Iniciativas SOA falham porque as pessoas…

  1. não sabem explicar o valor de SOA para o negócio
  2. subestimam o impacto da mudança organizacional que SOA traz
  3. não garatem o patrocínio dos executivos ou alta gerência
  4. tentar implementar uma arquitetura SOA “baratinha”, apenas com base em produtos “free”, sem ajuda externa (nós sabemos tudo, certo?!)
  5. não investem em treinamento e pessoas com conhecimento suficiente e experiente para conduzir uma mudança de arquitetura
  6. não tem um gerenciamento de projetos eficiente. Empresas com forte cultura de gerenciamento de projetos tem 2 vezes mais chances de sucesso
  7. acham que SOA é um projeto e não uma arquitetura. Sem comentários!
  8. subestimam a complexidade que a arquitetura orientada a serviços traz
  9. não acreditam na importância da governança SOA
  10. deixam os fornecedores e consultores externos ditarem e “dirigirem” a arquitetura



Governança SOA Open-source?

A proposta vem da empresa MuleSource que recentemente anunciou a liberação do “Mule Galaxy Enterprise“. Este pode ser considerado a primeira plataforma open-source de governança SOA, com registry e repository integrados.

Acreditem, este é um mercado muito interessante. Segue minhas impressões:

  • O retorno de investimento em governança SOA é de difícil mensuração. De acordo com o Burton Group, apenas 20% das empresas conseguiram comprovar o retorno positivo.
  • São poucas empresas (realidadade do Brasil) que já necessitam de um ferramental para governança SOA
  • Já é difícil “vender” SOA, “Governança SOA” então. Segundo um estudo da AMR (USA!), em 2007, o custo médio de adoção da arquitetura SOA foi de US$ 1.4 milhões
  • Se o gestor de TI tiver que um orçamento bem limitado (quem não tem?), fatalmente ele irá priorizar as soluções de integração (broker) e/ou ferramentas de desenvolvimento para esta nova arquitetura. Governança? Bem, se sobrar algum dinheiro…
  • Governança está relacionado primeiramente com processo e controle. O software ajuda, principalmente, se você tem vários serviços que podem ser disponibilizados em várias versões, que são reutilizados largamente por toda organização (cuidado com a performance), se seu ambiente de desenvolvimento é descentralizado…
  • O custo de aquisição da maior parte das ferramentas ainda é muito alto (vide investimento médio na adoção de SOA)

Por estes e por outros motivos é que iniciativas como esta da MuleSource facilitam a vida dos gestores de TI, na medida em que temos ferramentas para testar e comprovar os benefícios da Governança SOA.

Segundo o post original o mercado deve investir US$ 50 bilhões em soluções SOA, ao mesmo tempo em que não vemos muitos dados (números!) dos benefícios equivalentes. É um desafio e tanto e eu acredito que isto é absolutamente normal no processo de adoção de SOA.

Category: Governance, open-source

Cloud Computing em uma Guerra

Nos E.U.A. existe uma agência que é responsável pela maior parte dos sistemas do Departamento de Defesa (DoD): Defense Information Systems Agency (DISA).

O CIO da DISA (John Garing, coronel reformado da força aérea) está em contato com empresas como Google, Amazon, FedEx e outras para tratar de Cloud Computing. Ele está convencido que serviços de TI baseados em Cloud Computing serão o futuro dos sistemas militares.O DISA já está liberando um sistema cuja arquitetura é semelhante à “nuvem computacional elástica” (EC2) da Amazon.

Internamente, na agência do governo, este novo sistema é conhecido como RACE (Rapid Access Computing Environment). O exemplo da utilização deste ambiente em “cloud” é interessante:

 

  • Um soldado está em um campo de batalha com um dispositivo (ex. smartphone) com suporte a web e acesso à alguma rede sem fio (EUA já utiliza isto na guerra)
  • Em um dado momento este soldado precisa ter acesso a mapas do campo de batalha, fontes de fornecimento de combustível mais próximo, a localização do apoio aéreo (aviões e helicópteros), enfim, tudo o que for necessário para completar uma missão
  • Todas estas informações viriam de uma “nuvem” (cloud) que, de alguma forma, disponibilizaria todo este arsenal de informação para o soldado em campo de guerra

Mais uma vez a inspiração vem do Google, que precisa apenas de meses para conceber uma solução desta em seus laboratórios e levar para a produção graças à “cloud computing”. Segundo o CIO da DISA, “Velocidade e flexibilidade é o que fazem com que companhias como Google e outras serem bem-sucedidas”.

O DISA está utilizando vários fornecedores para implementar sua “cloud computing” e, segundo a reportagem original do NY Times, parte desta “nuvem” está rodando em servidores blades da HP.

.

Category: Cloud Computing, HP

Banco de Dados Orientado a Coluna?

Posted on by 1 comment

Este é um assunto que não está muito ligado à SOA, mas gostaria de compartilhar com vocês uma tecnologia que é parte da maioria dos sistemas: o banco de dados. Algumas semanas atrás conversei com um representante de um grande fornecedor americano de banco de dados. Ele me apresentou algo que, para mim, era novo: o banco de dados orientado a colunas.

Este conceito não é novo. Como funciona?

Vejamos, como exemplo a tabela abaixo:

Pois bem, em um banco de dados relacional “orientado a linhas”, todos os dados são armazenados em uma linha, após o último elemento desta linha vem o primeiro elemento da linha seguinte:

2152, Eduardo, “R Estela, 222″, SP; 3421, Mariana, “R Gov Pedro, 34″, CE;

Se estes dados estivessem armazenados em um “orientado a colunas”, teríamos a informação da mesma coluna armazenada em sequencia, com o final de uma coluna seguida do primeiro elemento da coluna seguinte. Parece complicado, mas não é, veja:

2152, 3421, 2156; Eduardo, Mariana, Ricardo; “R Estela, 222″, “R Gov Pedro, 34″, “R Jaguare. 45 ap.61″; SP,…

Claro que todos os bancos de dados tem seus mecanismos para ganhar performance, mas não vamos tratar deste assunto aqui.

Dependendo da forma como o dado é recuperado, o banco de dados “orientado a colunas” é mais eficiente. Veja uma tabela onde um é melhor que outro:

Como podemos ver cada situação exige uma abordagem diferente.

O Caso do Yahoo!

O Yahoo! tem um case interessante de utilização de “column-oriented database”, como nos conta este post da ComputerWorld. Segundo o autor, o Yahoo! tem o datawarehouse mais rápido utilizando a tecnologia de bancos de dados “orientado a colunas”.

São mais de 2 petabytes de dados e, segundo o VP Waqar Hasan, irá crescer várias dezenas até o final de 2009. A empresa utiliza o SybaseIQ.


Até tu Google?

Claro que o onipresente Google não poderia ficar de fora. Não encontrando nenhuma solução que tivesse uma performance exigida pelos seus clientes, o gigante de buscas construiu seu próprio banco de dados, chamado pelo sugestivo nome de BigTable.

O BigTable foi construido utilizando um file system também do Google, o Google File System (GFS). YouTube, Google Earth, Blogger, Orkut, Google Maps etc são usuários deste banco de dados.

BigTable é considerado um DBMS extremamente rápido e, sim, várias características de bancos de dados “orientado a colunas”. Na verdade possui características de bancos de dados tradicionais também (“orientado a linhas”). Foi projetado para ter vários petabytes e ser distribuido através de centenas e milhares de máquinas (vide a nuvem do Google).