Tag Archives: development

Campus Party – Slides sobre Agile Development

Esta semana estive no Campus Party e fiz uma apresentação sobre conceitos básicos em Desenvolvimento Ágil com Scrum, abaixo seguem os slides.

Campus Party 2009 – eu vou

Começa esta semana o Campus Party 2009, um dos maiores eventos de tecnologia e “coisas” digitais do Brasil, que possui diversas edições ao redor do mundo.

Neste ano vou fazer uma apresentação na área de Desenvolvimento no dia 22/01 às 18:00, falando, obviamente, sobre desenvolvimento ágil, onde vamos discutir sobre conceitos básicos e trocar algumas experiências sobre agilidade e os principais problemas na implantação destes principios nas empresas. Adicione ao seu Google Calendar ou ao seu Yahoo! Calendar.

O Yahoo! estará presente no Campus Party com dois stands e o patrocínio da área de blogs – a CampusBlog.

Um dos stands terá o Flickr como tema central na parte aberta ao público, próximo a praça de alimentação e o outro stand será na parte interna, junto aos “campuseiros”, ao lado do portão de acesso. Neste último onde haverá uma agenda de bate-papos sobre os produtos Y!, como o novo Yahoo Open Mail, Y! Respostas, Y!OS APIs e Flickr.

Haverão muitas outras apresentações na áre de desenvolvimento que com certeza serão bem legais como as do Fabio Akita sobre Ruby on Rails e do Pedro Valente sobre Y!OS APIs.

Aqui segue a agenda completa da área de desenvolvimento

Agile UX: como integrar UX e desenvolvimento

Agilidade envolvendo Experiencia do Usuário, ou simplesmente UX, é um dos assuntos mais quentes no “mundo ágil” nos últimos tempos, como fazer para integrar o desenvolvimento de software com a Experiência do Usuário e Design. O Jakob Nielsen fez um ótimo post a respeito (com um viés um pouco “nós contra eles”) com direito a um post resposta bem legal do Alistair Cockburn. E alguns dias atrás o Guilherme Chapiewski fez um excelente post sobre como tem sido a experiência na Globo.com até o momento. Eu passei por este problema lá e quando vim para o Yahoo! resolvi tentar um novo “approach”, que na verdade era o que eu sempre quis fazer na Globo.com.

A primeira diferença que notei é que no Yahoo! não existem as diversas camadas de responsabilidades na parte de Interface/UX/Design. Na Globo.com existem três camadas que são responsáveis pelo visual e UX de um projeto: Os designers, os Arquitetos da Informação e os desenvolvedores Client Side. Claro que os problemas são muito amenizados quando estes três profissionais são alocados no mesmo time ágil. Mas agora olhando de fora, eu sinceramente acho que isso não resolve o problema.

No final o problema principal é a comunicação, como todos sabemos e já foi mencionado por Jack Welch (veja o quote abaixo) quanto mais camadas vc tiver pior será a comunicação, maior será a burocracia e principalmente o comprometimento com o produto final, podendo gerar os mini-waterfalls.

The more layers in a business, the more spin, meddling, and worst of all, delays

Quando estava formando meu time no Y! uma das principais premissas era não criar silos de especialização, ou seja, ter desenvolvedores que queiram mexer com todo o ciclo de desenvolvimento desde BackEnd, Banco de dados até Frameworks Javascript e TDD; um Product Owner que queira entender a importância dos desenvolvimentos de infra-estrutura e processos de qualidade e, neste mesmo contexto, eu tb estava procurando um Designer que não tivesse medo que meter a mão em código e desenvolver a parte Client Side quando fosse necessário. A primeira parte não foi tão difícil, existem muitos desenvolvedores multifuncionais e que tem a cabeça aberta para assimilar que eles devem entender de todo o ciclo e não apenas de uma ou outra parte. Mas achar um Designer/UX que também entenda de implementação não é nada fácil. Apesar de que todos os Designers que conheço (ou quase todos) fazem “freelas” que envolvem escrever código e muitas vezes desenvolvimento usando PHP ou Ruby, quando estão trabalhando na empresa muitos deles se limitam a gerar um PSD, muitas vezes não porque queiram, mas devido a forma como o processo foi estruturado.

No meu time atual tive a sorte (e bota sorte nisso) de encontrar um Designer que gosta de desenvolver toda a experiência, e tem a função de garantir que a visão de funcionamento e design do produto esta sendo bem executada do início ao fim. Neste caso o Designer ou UED (User Experience Designer) tem a responsabilidade de criar a experiência usando sua ferramenta favorita (Fireworks no caso) e depois implementar este design em código garantindo que tanto o visual quanto a experiência será a mesma em todos os browsers que suportamos e de que as boas práticas de implementação estão sendo seguidas.

O que sempre ouvi dizer é que não é possível fazer a interface/design sem pensar no produto todo, na experiência que estou tendo nesse momento posso dizer que isso é meia verdade. A visão do produto precisa estar clara: o que é o produto, quais as funcionalidades chave, qual o público que ele se destina, etc. Mas estou podendo constatar que não é preciso ter todos os detalhes para desenhar a experiência, e que sim podemos fazer a implementação da experiência aos poucos junto com a evolução do produto. No nosso caso estamos apenas no segundo Sprint e o desenvolvimento da interface/design e UX estão seguindo as histórias priorizadas no Backlog, e é muito legal ver a interface ganhando forma de uma maneira iterativa, posso dizer que a interface do nosso protótipo mudou umas 10 vezes (totalmente) e isso em nada impactou os desenvolvedores.

Isso acontece porque decidimos separar totalmente a “camada de apresentação” da “camada de negócios”, o UED é responsável pela camada de apresentação codificando e comitando os templates Django diretamente no SVN. Com isso o UED tem total controle da interface e pode alterar totalmente a usabilidade sem necessitar de outras pessoas (camadas) para isso.

Na última semana, foi até engraçado, pois estavamos todos trabalhando com uma interface na cabeça e de um dia para o outro o UED do time mudou totalmente o funcionamento da interface – para melhor claro. Neste momento me lembrei de como seria se tivessemos as três camadas envolvidas (designer, arquiteto, clientside) … acho que levaria alguns dias/semanas para discutir tudo e no final provavelmente a interface seria vetada por se tratar de uma mudança muito radical. Neste ponto vale lembrar que não adianta ter pessoas de qualidade se vc não deixar que elas tomem decisões, neste caso quem possui a última palavra em termos de UX é o nosso UED.

Voltando aos principios ágeis, onde pensamos iterativamente, sempre entregando software funcionando a cada sprint, posso dizer que se fossemos utilizar a forma antiga onde o UED investe 20 dias (no mínimo) pensando em todos os fluxos possíveis do produto, mais a identidade visual, mais toda a teoria. Com certeza hoje estariamos jogando grande parte deste trabalho fora, pois a idéia do funcionamento do produto evoluiu muito nos últimos 15 dias, e ao incluirmos evoluções iterativas do design/UX conseguimos fazer os ajustes necessários e o impacto foi mínimo. Claro que estou contando com possíveis grandes alterações no futuro, mas pelo menos estas alterações serão fruto da visualização do design aplicado na prática e não de um monte de PSDs e Fluxos de arquitetura.

Ainda não sei o quanto esta forma de trabalhar vai escalar no futuro, mas o ganho que tivemos na agilidade e na qualidade neste início estão valendo a pena.

Open Hack Day 2008 – retrospectiva

No final de semana passado tive o prazer de poder participar do Open HackDay 2008, um evento promovido e organizado pelo Yahoo! que contou com a parceria do SENAC que nos cedeu toda a infra estrutura do local. O Brasil foi o quinto país a sediar um OHD, o que mostra claramente como estamos bem posicionados internacionalmente e quao importante é o Brasil para o Yahoo!.

Este foi sem dúvida alguma o melhor evento de tecnologia do qual participei, estiveram presentes aproximadamente 200 desenvolvedores e geeks que começaram a fazer fila cedinho por volta de 8:00 do Sábado quando abrimos as portas. Também tivemos a oportunidade de trazer alguns Yahoos internacionais como Christian Heilmann (@codepo8), Erik Eldridge e Zach Graves (@basictheory), além da equipe com base em Miami: Ryan teixeira, CJ, Varnit e a visita do nosso VP de engenharia Amit Dayal direto de Bangalore na Índia, além é claro de toda a equipe de engenharia do Yahoo no Brasil.

Logo de cara percebe-se um clima diferente, que tem a ver com o fato que todos estão ali porque gostam do que fazem e para poder se divertir e conhecer novas pessoas, é incrível a atmosfera. Um fato que todos os “gringos” comentaram comigo é que eles perceberam que os desenvolvedores brasileiros são famintos por conhecimento, mesmo com a barreira do inglês, nossos hackers estavam sempre interagindo, tirando dúvidas e querendo aprender mais.

Alguns hackers resolveram desenvolver sozinhos outros se organizaram em grupos, alguns grupos chegaram a ter 11 pessoas. No final o evento superou nossas espectativas tanto em número de interessados e na quantidade de projetos submetidos quanto na qualidade e criatividade dos Hacks. Isso tanto foi verdade que os juizes resolveram criar mais quatro categorias além das quatro originalmente planejadas.

A lista completa dos hacks está no Wiki criado pelo pessoal durante o evento (BrHackday Wiki) mas eu achei alguns muito interessantes e gostaria de comentar sobre eles:

O @divless desenvolveu uma Interface de busca para iPhone baseada no BOSS que ficou bem legal.

Meus amigos do Yahoo! @lhonda, @pedrovalente e @rzouain desenvolveram um bot feito em Python para o Twitter em conjunto com o Yahoo Respostas, chamado @fasassim. Quando alguém usar a tag ou a palavra Comofas/ o @fasassim responde. Para saber mais do @fasassim vejam o Blog do Pedro.

O Event-o-meeter que foi desenvolvido pela equipe de 11 pessoas que falei acima, é um projeto que leva na sua essência a palavra hack, porque foi uma grande mistura de tecnologias que mostrou toda a criatividade dos desenvolvedores brasileiros. O pessoal misturou Python, API de Search do Twitter, API do Flickr com um Arduino e um protoboard com leds e diversos fios. O objetivo do Hack era que os LEDs que formavam a palavra Yahoo se acendessem de acordo com a freqüência de twitts com a tag #brhackday08 e piscavam de acordo com a freqüência de novas fotos no Flickr com a tag brhackday08.

Fiquei impressionado também com a quantidade de hacks que usaram a plataforma móvel do Yahoo (Y! Mobile Blueprint), no total foram 8 hacks que usaram esta plataforma entre eles um hack com LastFM e outro com cálculo de consumo de combustível, que acabou sendo campeão da categoria Green

Outro exemplo de inventividade foi o campeão da categoria Using the environment, um vídeo criado pelo Fabricio Zuardi e pelo Marcio Galli que tem tudo a ver com o espírito do Open HackDay, vejam abaixo:


Puff Hacking from fczuardi on Vimeo.

Para mim foi um evento muito legal, tive a oportunidade de conhecer pessoalmente vários desenvolvedores e poder compartilhar um pouco deste espírito de companheirismo e paixão que nossas comunidades de possuem. Fica agora a vontade de fazer um OHD 2009, acho que com o sucesso da primeira edição provavelmente teremos a versão 2009.

Aqui estão as fotos do evento no Flickr e o resumo no Twitter

Y! Open Hack day – 24h de hacking sem parar.

Depois de ter participado do Falando em Agile 2008, agora gostaria de falar um pouco sobre um outro evento que estou participando. Como vcs sabem recentemente me juntei a equipe do Yahoo! no Brasil e um dos eventos que serão realizados este ano é o Open Hackday. O Hackday surgiu há alguns anos no Yahoo! e sempre foi realizado internamente por funcionários ao redor do mundo, mas recentemente o Y! decidiu abrir o Hackday para qq desenvolvedor que deseje participar. Assim surgiu o Open Hackday, que já passou por diversas cidades ao redor do mundo como Londres, Bangalore, Taiwan e é claro em Sunnyvale. Além dos Internal Hackdays e dos Open Hackdays, ainda há uma iniciativa bem legal do Rasmus Lerdorf (criador do PHP) chamado HackU (ou Yahoo! Hackday University) que é focado em realizar Hackdays em Univerdades e já esteve em Stanford, Waterloo, Carnegie Mellon e mais recentemente Berkeley.

Agora chegou a vez do Brasil sediar o Open Hackday, o evento acontecerá nos dias 08 e 09 de Novembro na Centro Universitário Senac – campus Santo Amaro, totalizando mais de 36 horas de Hacking, TechTalks e muita diversão podem ter certeza. É importante lembrar que, assim como no RailsRumble, os hackers possuem um determinado tempo, no nosso caso 24 horas, para desenvolver suas aplicações.

Na verdade, o Open Hackday é parte de uma estratégia bem maior do Yahoo! que tem o objetivo de abrir seu social graph (mais de 270MM de usuários logados) e suas propriedades (Flickr, Delicious, Yahoo Mail, Profiles, Updates, Upcoming, MyBloglog, entre outros) para desenvolvedores e usuários e assim permitir que estes criem e construam novas aplicações e mashups sobre a infra estrutura do Yahoo. Esta iniciativa de abertura, chamada de Yahoo Open Strategy ou Y!OS, foi anunciada alguns meses atrás, mas esta sendo desenvolvida e preparada internamente há pouco mais de um ano. A primeira versão do Y!OS será lançada nesta semana (27 de Outubro) e conta com muitas coisas legais que tornarão o Open HackDay no Brasil ainda mais legal, pois uma série de recursos novos estarão disponíveis para os hackers Brasileiros em primeira mão.

Não deixe de consultar o Site oficial do HackDay aqui: http://hackday.org

E de dar uma olhada nas documentações das APIs no Yahoo Developer Network: http://developer.yahoo.com

No Twitter sigam o: @brhackday