Posts Tagged "caelum"

O futuro do Java em meio a computação em nuvem

Posted by on Nov 16, 2009 in Eventos | 6 comments

Aconteceu nos dias 6 e 7 de novembro de 2009 a 3ª edição do evento The Developers Conference realizado pela Global Code. Diferente do ano passado houve apenas uma trilha, porém maior enfoque em palestrantes internacionais.

Em sua palestra “Major Trends in Enterprise Software Development”, Rod Johnson, fundador da SpringSource, apresentou um pouco sobre a sua visão do futuro da linguagem e da plataforma Java e as novas tendências que o mercado de Tecnologia da Informação deverá seguir nos próximos anos. Gostaria de explorar um pouco os tópicos que foram abordados e registrar minhas impressões.

Bancos de Dados e a Computação em Nuvem

Foto por Florin Mogos

Foto por Florin Mogos

Segundo Rod, o mercado de tecnologia da informação está sofrendo grandes transformações em virtude da computação em nuvem (Cloud Computing) e do fato de o maior custo ter sido movido de hardware para pessoas.

A computação em nuvem não é somente uma modismo imposto por fornecedores de ferramentas como foi SOA

Em meio a essa realidade uma série de suposições tornou-se questionáveis como, por exemplo, a forma com que os dados são armazenados. A maioria esmagadora dos softwares construídos na atualidade utiliza bancos de dados relacionais, porém, sabe-se que estes não famosos por sua habilidade de escalar aplicações. Neste cenário, bancos de dados orientados a documentos ou Document Stores vêm ganhando mais e mais espaço. O Google Big Table, o Hadoop e o Couch DB são exemplos de soluções inovadoras que devem ser consideradas. As aplicações do futuro deverão ser capazes de lidar com novos tipos de bancos de dados.

Google, Amazon, Facebook e LinkedIn utilizam bancos de dados NÃO Relacionais.

A computação em nuvem oferece escalabilidade dinâmica, a cobrança é realizada de acordo o consumo que as aplicações demandam, e a plataforma que suporta a aplicação passa a ser vista com um serviço (PaaS – Plataform as a Service). “A cada dia faz menos sentido para a maior parte das organizações possuírem e manterem seus próprios DataCenters” afirmou Rod, “É como fábricas que já não fabricam sua própria energia elétrica”.

E o Java Está Morto?

Coffe por databhi

Coffe por databhi

É fato que com a popularização de linguagens dinâmicas como Ruby e Python e em virtude da produtividade de frameworks para desenvolvimento de softwares para a web como Rails e Django muitas pessoas já se perguntaram: ‘A final de contas será que Java está morrendo?’. Muitos também vêm se questionado sobre as intenções da Oracle (que recentemente comprou a Sun) em relação à plataforma.

Penso que quanto a isso, a resposta é muito simples:

As pessoas estão acordando e começando a utilizar as ferramentas certas para resolver os problemas que têm.

Como disse Fred Brooks: ‘Não existe bala de Prata!’, isso é, não uma única solução que resolva todos os problemas. Java ainda faz muito sentido resolver muitos problemas, Ruby faz muito sentido para resolver outros, Erlang para outros, Scala para outros…
Resumindo, Java não está morto, no entanto já não é uma linguagem inovadora, e outras linguagens estão ganhando seu merecido espaço, não se acomode, corrá atrás de entender as motivações por trás dessas novas tendências, e, sobretudo, os princípios por trás delas.

No DevInRio, o Guabanara gravou uma entrevista com Guilherme e Paulo Silveira da Caelum em que esse assunto foi tratado com autoridade. Ouça ao MP3 ou assista o vídeo no Vimeo do  Guilherme Chapiewski.

Já em relação a Oracle, Rod, afirmou que a empresa depende de tecnologia Java para atingir o sucesso, não é novidade que muitas soluções da Oracle são altamente dependes da plataforma Java e é obvio que a empresa não vai arruinar com tudo sem mais nem menos.

Para Rod, Java provavelmente será a última linguagem genérica de adoção em massa e no futuro mais e mais linguagens para finalidades específicas ganharão espaço no mercado, e muitas dessas novas linguagens serão executadas na Java Virtual Machine (JVM). Soluções integradas como Rails, Grails e Spring Roo tendem a ganhar espaço em virtude da alta produtividade que proporcionam.

Parabéns a Global Code pela realização do Evento!

Read More

Participação no "Falando em Agile 2008"

Posted by on Oct 26, 2008 in Agile, Eventos | 11 comments

Nos dias 23 e 24 de Outubro participei do evento “Falando em Agile 2008” realizado pela Caelum aqui em São Paulo. Da mesma forma que fiz no “Rails Summit 2008“, tentarei transmitir um pouco da minha visão sobre o evento.

No primeiro dia, Alexandre Magno fez a abertura apresentando a proposta do evento e lançou uma questão para que as pessoas refletissem: “Agile simplesmente está na moda ou veio para ficar”?

Em seqüencia houve o Keynote de David Anderson, uma grande personalidade do mundo ágil envolvido na criação da metodologia Feature Driven Development (FDD), ele foi trazido à São Paulo pela Heptagon para ministrar o treinamento Zen Of Agile. Algumas pessoas falaram sobre a palestra do David, mas gostaria de comentar alguns pontos que me chamaram atenção.

Working Hard - Foto por Karol M

Working Hard - Foto por Karol M

Working harden rather than smarter:” David questionou sobre simplesmente trabalhar duro ao invés de trabalhar e forma inteligente, e comentou sobre a fato de as pessoas não terem vida social ou tempo para a família porque trabalham mais (ou muito mais) de 40 horas semanais. Será que isso é mesmo necessário?

Starbucks citado por David - Foto por Rob

Starbucks citado por David - Foto por Rob

The workers are not the problem, managers are:” Essa é uma frase de Barry Boehm que foi citada para começar uma reflexão sobre diversos problemas de gerenciamento de software, segundo David, um fraco gerenciamento pode encarecer o desenvolvimento de software mais intensamente do que qualquer outro fator. O palestrante disse acreditar que os gerentes do Starbucks são melhores do que a maioria dos gerentes de projetos de desenvolvimento de software: – “Eles simplesmente fazem o que tem que ser feito“.

Todo trabalhador do conhecimento é um executivo:” No sentido de que tomamos milhares de decisões todos os dias para realizar nosso trabalho, não se trata apenas de seguir uma especificação.

Bugs - Foto por Michael Porter

Bugs - Foto por Michael Porter

Software quase sem defeitos é possível:” David afirmou que um software sem defeitos pode até ser impossível, mas quase sem defeitos, com certeza, é possível. Comentou sobre a idéia que vem do Lean de parar tudo para resolver defeitos e falou da importância incentivar e dar condições aos desenvolvedores de fazer tudo de forma apropriada (inclusive dando a eles mais tempo se for necessário).

Alguns outros bons conselhos de David foram:

Arte por Nilson - www.nilson.de

Arte por Nilson - www.nilson.de

O Adail Retamal da Heptagon fez uma apresentação sobre Agile Thinking (Pensamento Ágil) onde apresentou diversas técnicas que utiliza como apoio ao desenvolvimento ágil. Adail fez um tributo a filósofos e pensadores que o ajudaram a formar seus principais conceitos: Platão, Aristóteles, Arquimedes, Newton, Professor Júlio César de Melo, Richard Feynman e Eliyahu Moshe Goldratt.

Mind Map - Foto por Keith Davenport

Mind Map - Foto por Keith Davenport

Em seqüencia, foi apresentada a técnica de desenhar Mapas Mentais, que são um tipo de diagrama voltados para a gestão de informações, de conhecimento e de capital intelectual, que pode ser usado para desenvolver documentação de projetos. Foi sugerido que se faça um mapa para projetos que responda as perguntas:

  • O que?
  • Por que?
  • Quem?
  • Quando?
  • Onde?
  • Como?
  • Quanto Custa?

Adail explicou como funciona a UML em cores, e apresentou o conceito de Teoria das Restrições (TOC), e como utilizá-los no desenvolvimento de software para melhoria contínua, identificar problemas, encontrar raízes de problemas, manter o foco no que é importante, e suas solucionar problemas.

Foto por ScottieT812

Foto por ScottieT812

A Galera da Sea Tecnologia e o Tenente Souto apresentaram um case de desenvolvimento ágil de software dentro da aeronáutica, comentaram sobre a experiência adquirida na quebra de paradigmas e enfrentando diversas dificuldades culturais.

O Guilherme Chapiewski da Globo.com fez uma apresentação sobre liderança em equipes ágeis, os principais conceitos na minha perspectiva foram os seguintes:

  • Um bom líder deve ter a Visão que incluí o Propósito, a Missão e os Valores, e deve transmitir isso para sua equipe.
  • Deve dar as direções para equipe.
  • Deve construir um bom ambiente para que as pessoas se desenvolvam.
  • Deve ter paixão pelo que faz.
  • Deve ser útil.
  • Deve estar presente.
  • Deve dar o melhor de si.
  • Deve ser autêntico.
  • Dever dar bom exemplo.
  • Deve incentivar as pessoas a tomar iniciativa para resolver problemas sozinhos (deve ser descentralizador).
  • Deve garantir que o trabalho está alinhado as expectativas.
  • Deve ser tolerante.
  • Não deve dar respostas deve ajudar as pessoas a encontrá-las.
  • Deve garantir que as pessoas têm as ferramentas necessárias para trabalhar.
  • Deve manter o seu time e contratar novos membros.
Happy Hour no Bar Opção - Foto por Victor Hugo

Happy Hour no Bar Opção - Foto por Victor Hugo

No final no primeiro dia, claro, assim como no Rails Summit, tivemos um Happy Hour no bar opção que fica na região da Avenida Paulista com presença da maioria dos palestrantes e uma galera super bacana.

No segundo dia, o Danilo Bardusco da Globo.com falou sobre como foi a introdução do Scrum na Globo.com, como surgiu a idéia, quais eram as necessidades, quais foram as dificuldades e como eles estão as vencendo. Entre as dificuldades, Danilo citou a quebra do paradigma do Big Design Up Front (BDUF), ter a equipe toda trabalhando em uma historia por vez e enfrentar a resistência de quem acha que está perdendo o poder. Achei interessante a idéia de utilizar personas para ajudar entender as histórias e reuniões periódicas entre disciplinas (arquitetos da informação scrum masters, etc.). Os Slides da apresentação estão disponíveis no blog do Bardusco.

Foto por Sara Petagna

O Daniel Cukier e o Professor Fábio Kon, ambos da Agilcoop e do IME/USP fizeram uma apresentação sobre “Padrões para Introduzir Nova Idéias” com base no livro “Fearless Change” de Linda Rising e Mary Lynn Manns, uma ótima abordagem quem está implementando metodologias ágeis em organizações. Recomendo assistir à esta entrevista (em inglês) e ouvir à este podcast da Agilcoop (em português) para mais informações sobre o assunto.

O Daniel Wildt da Dell em sua palestra contou um pouco sobre sua experiência na implantação de metodologias ágeis em equipes distribuídas, acho que a principal mensagem da palestra foi “Qualidade não é um opção“. Segundo Daniel, os princípios de qualidade da norma ISO 9000 são coerentes com o Manifesto Ágil.

O Antonio Carlos Silveira do Yahoo falou sobre o papel o Product Owner e a Priorizarão do Product Backlog. Os principais recados foram:

  • Entenda o cliente. Utilizar personas (pessoas que representam seus usuários) podem ajudar.
  • O Product Owner precisa entender muito bem do domínio do problema e precisa saber e ser muito bom em tomar decisões.
  • O Product Owner pode ser técnico? Depende do domínio do problema, se o domínio for técnico, claro que pode.

Antônio também apresentou as técnicas “Kano Model” e “Benefício Relativo” para estimativa de histórias, mas disse que no fim das contas a o chute é a técnica que impera.

Arte por Leo Reynolds

O Phillip Calçado “Shoes” da ThoughtWorks em sua palestra “A Maldição da Fábrica de Software” falou sobre algumas lições que aprendeu em projetos que trabalhou na Austrália.

O Primeiro problema citado foi o de um projeto onde muitas pessoas foram envolvidas e como “gente demais compromete a comunicação” as coisas foram ficando complicadas, até chegar a um ponto em que 4 pessoas desenvolveram a mesma coisa no mesmo dia. Eu acho que este tipo de coisa acontece porque algumas pessoas ainda não entenderam que a idéia de que “o fato de 1 mulher poder ter 1 filho em 9 meses não significa que 9 Mulheres podem ter 1 filho em 1 mês“.

O Segundo problema foi referente a um projeto com um pouco de BDUF em que havia um arquiteto super-herói que dizia aos programadores o que e como desenvolver. Como resultado, a primeira versão do projeto foi entregue em metade do tempo planejado porém, na segunda versão os programadores queriam começar tudo de novo porque era impossível dar manutenção no código que havia sido desenvolvido. Isso aconteceu principalmente porque não houve refactoring.

De acordo com Shoes problemas como os citados acima acontecem porque as pessoas muitas vezes não entendem que tudo em métodos ágeis é um ciclo e que como as práticas estão relacionadas, jogar uma prática fora pode comprometer as outras, por isso experimente antes de jogar fora. Isso não quer dizer que você não possa adaptar métodos ágeis a uma forma mais adequada a sua realidade, mas quer dizer que você deve tomar cuidado e adaptar conscientemente. Saiba o que você está fazendo e pense no que você perde.

Algumas dicas do Shoes:

  • Estude e Entenda os Conceitos. Saiba o que você está fazendo.
  • Lembre-se que você desenvolve software.
  • Não leve nada a ferro e fogo.
  • Cuidado com quem você contrata (existem falsos agilistas).
  • Só melhoria contínua salva.
  • É muito fácil ser medíocre, mas você precisa ir além.

Além das palestras citadas, houveram outras de excelente qualidade apresentadas por Danilo Sato, Francisco Trindade, Professor José Papo, Alexandre Magno e  Robinson Caiado.

Meus parabéns a toda a equipe da Caelum pela realização do evento, a Globo.com, ao Yahoo e a Borland pelo patrocínio, e todas a pessoas que tornaram o “Falando em Agile 2008″ realidade.

Fique Ligado nos próximos eventos: OpenHack 2008 e Lançamento da InfoQ Brasil.

Read More