domingo, 17 de maio de 2009

Scrum Gathering Brasil

Aconteceu esta semana em São Paulo o primeiro Scrum Gathering Brasil, evento promovido pela Scrum Alliance e que pela primeira vez ocorre fora dos EUA e Europa. Foram dois dias de palestras com temas como a gestão ágil de projetos, práticas de aplicação e cases de Scrum e muito network entre os participantes, grupos de usuários e empresas.
Grosso modo, Scrum é um framework para melhorar a gestão e a taxa de sucesso em projetos. É aplicado na criação de produtos complexos, principalmente no ambiente de software, onde existe uma alta taxa de mudanças ao longo do desenvolvimento.
O Gathering Brasil teve várias palestras ocorrendo simultaneamente e das que eu assisti posso destacar:
  • O grupo de usuários de Scrum de Recife falou sobre Definition of Done (DoD), um conceito que muitas vezes na aplicação do Scrum não se tem clareza e é mal aplicado. Eles propõem a realização de um workshop com o time do projeto, onde o time define desde o início como caracterizar que um item do backlog esteja “pronto”. Não vou entrar em detalhes neste post, mas que quiser saber mais pode ir direto nas fontes (artigo do Mitch Lacey, artigo do Dhaval Panchal).
  • Ken Schwaber, um dos criadores do Scrum fez uma palestra de introdução ao tema e falou avanço do Scrum e metodologias ágeis nos últimos anos. Alguns dados impressionam, o que mais me chamou atenção é que numa pesquisa realizada sobre a adoção de metodologias de software nos EUA mostra que desde meados de 2008, a aplicação de métodos ágeis superou os métodos baseados em Waterfall.
  • Boris Glogger, com quem fiz o treinamento de CSM, trouxe “6 segredos para um retrospectiva de sucesso”. Não vou me estender muito aqui, pois ele fez a publicação dos slides no seu próprio Blog, mas recomendo fortemente para aqueles que estão lutando para aplicar uma boa retrospectiva de Sprint (é... aquele que você aprendeu e aos poucos parou de fazer direito nos seus projetos).
  • José Papo apresentou diferentes modelos de contratos ágeis, tema que eu pessoalmente estou batalhando para evoluir na minha empresa. A idéia básica é você evoluir dos modelos de escopo e valor fixos para um modelo de escopo variável, que permita a sua adequação à medida que o projeto evolui e mudanças ocorrem no desenvolvimento.
Espero que o evento continue todo ano no Brasil, já que é uma ótima oportunidade para aqueles que praticam metodologias ágeis trocarem experiências e aprenderem mais.

quarta-feira, 22 de abril de 2009

App Engine em Java

O Google lançou neste mês a nova versão do App Engine, agora com suporte a linguagem Java. O sistema já dava suporte ao Python e o suporte ao Java era um pedido freqüente nas listas de discussão e issue trackers do App engine, tornando uma escolha quase natural ao processo. Num post recente do Paul McDonald, já estava sendo anunciado que era breve a liberação do novo runtime e eu estava particularmente ansioso por isso, já que fiz alguns testes com a primeira versão do runtime em Python e fiquei bastante surpreendido com o potencial.
Ao primeiro olhar, o App Engine é uma solução que fornece uma série de recursos que simplificam o processo de publicação de um aplicativo na web e libera o programador de tarefas de configuração e infra-estrutura: não há necessidade de configurar um servidor web, nem um banco de dados, nem DNS, nem cachê, entre outros.
Muito além de simplificar estas tarefas de publicação, o App Engine é um ambiente de execução altamente escalável para aplicações web. Um exemplo disto é o seu Datastore, um repositório de dados escalável e sem esquema, baseado na tecnologia do Big Table do Google. Em resumo, você pode guardar grande quantidade de dados sem se preocupar com o particionamento, múltiplos bancos e a redundância do armazenamento. Outro exemplo é a sua capacidade de automaticamente lançar novas máquinas virtuais à medida que o número de acessos a aplicação aumenta, o que pode ser útil em situações de um pico nos acessos da aplicação.
Fora estes e mais outros recursos bem atrativos fica a questão se você realmente quer sacrificar a portabilidade da sua aplicação para poder tirar proveito de todas estas facilidades que o App Engine oferece. Seria muito legal se você pudesse migrar a aplicação para a sua própria infra num momento desejado.
No mais, a plataforma vem evoluindo muito rápido e com a promessa de recursos bem interessantes de processamento offline também. Experimente!

(ATUALIZADO: assisti a uma demonstração onde uma aplicação criada no App Engine roda na infra de um servidor Web Sphere fora da infra do Google, apenas alterando arquivos de configuração e sem mudanças no código. Isto é possível porque a camada de acesso a dados usa o JDO/JPA, padrão Java)

terça-feira, 17 de março de 2009

Teorizando sobre dados

Em palestra recente no TED, Tim Berners-Lee aborda o tema da publicação de dados brutos na Web. Na sua visão, existem muitos dados escondidos em bancos de dados não acessíveis na internet. Estes dados disponíveis em padrões aberto poderiam formar um campo de exploração para pesquisadores do mundo todo. Recomendo!



Acredito que o potencial para pesquisa com base nestes dados é enorme, não só em dados brutos mas no que temos hoje na Web. Um dos exemplos que considero excepcional é o aprendizado de idiomas com base em textos da Web em diferentes línguas. Na palestra do Peter Norvig, ex-NASA e atual pesquisador do Google, ele mostra como são usadas técnicas computacionais para melhorar as traduções automáticas. O sistema é treinado com o volume de dados superior a qualquer sistema tradicional e os resultados mostram a diferença: o uso da Web com base aumenta significativamente a qualidade das traduções.

"It’s a capital mistake to theorize before one has data.", já dizia Sherlock Holmes em suas investigações, 1891.

segunda-feira, 9 de março de 2009

Trilhas e Caminhos

Mashup do Projeto Trilhas e Caminhos, com indicações de trilhas de Floripa. O site foi baseado na tecnologia Mashup Editor, do Google. Para compor o serviço, são agregados dados do Flickr, Google Base e Google Maps.



Acessível neste link.

sexta-feira, 9 de maio de 2008

O Feiticeiro de Menlo Park

Tantas foram as invenções de Thomas Edison que torna difícil saber por onde começar. Nascido na costa leste dos EUA, descendente de holandeses e britânicos, Edison foi capaz de conceber invenções nos mais variados ramos da ciência e da indústria.

Embora não fosse pobre, a família de Edison também não gozava de riqueza. Desde garoto começou ganhar seus trocados vendendo jornais, trabalhando inclusive com a venda em percursos de trem, parando de estação em estação. Aquilo que ganhava com a venda destas notícias era o capital necessário para investir em seus experimentos - estas notícias eram especialmente desejadas pois tratava-se do período que antecipava a gerra civil americana.

Chegou mesmo a montar um pequeno laboratório dentro do proprio trem, fazendo ali experimentos em química. Num incidente em que o trem descarrilhou causando confusão e quebra dos vagões, o pequeno laboratório chegou a pegar fogo e incendiando o vagão. Sem o mesmo interesse pela química que o jovem Edison, o maquinista expulsou e correu com o pequeno cientista do trem.

Seguindo o seu caminho, Edison tornou-se operador de telégrafo. Dominava como poucos da sua idade o código morse, destacando-se rapidamente no meio. Durante os longos anos em que trabalhou com telégrafos nunca deixou de inventar e experimentar. Suas contribuições nesta arte foram das mais variadas e reconhecidas em seu tempo, criando dispositivos mais rápidos, capazes de trafegar mais mensagens na mesma rede, reduzindo ruídos de comunicação, etc.

Despontava ali um ancestral da atual Internet, um sistema elétrico de transmissão de dados a longa distância. Junto ao telégrafo, surgiam aos poucos os primeiros sistema de telefone nos EUA. Aqui Edison também inscreveu seu nome com a invenção de um telefone usando um transmissor de carbono. Esta invenção melhorava o telefone inventado por Bell e era capaz de transmitir a longas distâncias, enquanto a invenção de podia transmitir apenas em distâncias de 3-5km.

“Nunca fiz nada de valor por acidente; da mesma forma, nenhuma de minhas invenções aconteceu por acidente; elas ocorreram depois de muito trabalho”
(Thomas Edison).

As invenções e empreitadas ainda vão longe, passando pela lâmpada incandescente, o cinema e tantas outras. Conheça mais sobre Thomas Edison na Wikipedia.

sábado, 10 de fevereiro de 2007

O significa ser criativo?


Idéias que transformaram a ciência, a relatividade de Einstein e a física quântica; gestos de compaixão e dedicação como a erradicação a febre amarela por Osvaldo Cruz, a política de não-violência de Gandhi. Pequenos truques do dia-dia para ganhar alguns centímetros no quarto, ou como perder menos tempo no transito.


"Grandes ou pequenos, cada um desses exemplos ressalta a essência do ato de criação: aquele que é ao mesmo tempo novo e apropriado. Uma inovação difere daquilo que já foi feito antes, mas isso não basta: ela não pode ser apenas bizarra ou excêntrica; tem de 'funcionar'.Para ser criativa, precisa ser correta, útil, valiosa e significativa"

O significa ser criativo? Qual a importância do "público" no ato da criação?

"Ser criativo significa fazer uma coisa antes de tudo incomum", segundo Haward Gardner, psicólogo na Universidade de Harvard. "Mas também importa muito que as outras pessoas a levem a sério apesar da novidade. Ou seja, posso conversar de cabeça para baixo e isso seria incomum; mas, a menos que eu e outras pessoas achemos essa postura conveniente, não mereço ser chamado de criativo por causa dela." "Digamos, porém, que descobrisse uma maneira de transmitir o dobro de informações no mesmo período de tempo e isso fizesse com que as pessoas apreciassem isso: seria um ato criativo. E mesmo que fosse bastante incomum acabaria se impondo por que é eficaz."