Archive for August, 2009

Ajude a facilitar a vida dos preguiçosos e ganhe um convite para o Dev in Rio!

Friday, August 28th, 2009

As inscrições para o Dev in Rio estão acabando e é melhor você correr para garantir logo a sua vaga. Caso você seja preguiçoso como eu sou, use esse script do Pyccuracy para automatizar a sua inscrição (e não esqueça de trocar essas informações “fake” pelos dados reais!):

Como um bom desenvolvedor
Eu quero me cadastrar no Dev in Rio
Para que eu possa aprender mais e ser um profissional melhor
 
Cenário 1 - Cadastro no Dev in Rio
Dado que
    Eu navego para "http://devinrio.com.br/inscricoes_bra.php"
Quando
    Eu marco a radio "tipo_participacao"
    E eu clico no elemento "tipo_participacao"
    # ... tem que esperar a página ser carregada :)
    E eu espero por 5 segundos
    E eu vejo que a página atual contém "Login - Novo cadastro"
Então
    # Login
    Eu preencho a caixa de texto "email" com "seu@email.com"
    E eu preencho a caixa de texto "senha" com "senha"
    E eu preencho a caixa de texto "re_senha" com "senha"
    # Dados Pessoais
    E eu preencho a caixa de texto "nome_cracha" com "Pyccuracy da Silva"
    E eu preencho a caixa de texto "empresa_cracha" com "Globo.com"
    E eu preencho a caixa de texto "dd" com "01"
    E eu preencho a caixa de texto "mm" com "01"
    E eu preencho a caixa de texto "aaaa" com "1980"
    E eu preencho a caixa de texto "cpf" com "12345678910"
    E eu preencho a caixa de texto "ddd" com "21"
    E eu preencho a caixa de texto "telefone" com "23452345"
    E eu preencho a caixa de texto "ddd2" com "21"
    E eu preencho a caixa de texto "telefone_celular" com "23452345"
    # Endereço
    E eu preencho a caixa de texto "cep" com "23456789"
    E eu preencho a caixa de texto "endereco" com "Rua de Exemplo"
    E eu preencho a caixa de texto "numero" com "123"
    E eu preencho a caixa de texto "complemento" com "ap 101"
    E eu preencho a caixa de texto "bairro" com "Meu Bairro"
    E eu seleciono o item com texto "Rio de Janeiro" na select "estado"
    # ... tem que esperar o treco carregar os municipios :)
    E eu espero por 5 segundos
    E eu seleciono o item com texto "RIO DE JANEIRO" na select "municipio"
    # Seu perfil - pode colocar qualquer coisa :)
    E eu seleciono o item com valor "Outros" na select "ocupacao"
    E eu seleciono o item com valor "Superior completo" na select "escolaridade"
    E eu seleciono o item com valor "Amigos" na select "conhecimento"
    E eu seleciono o item com valor "Outra" na select "areas_atuacao"
    E eu clico no botão "sis_submitbutton2"
    E eu vejo que a página atual contém "sucesso"
    # E pra terminar, espera um pouquinho pra ver que a inscrição funcionou
    E eu espero por 10 segundos

Depois disso é só rodar com o comando “pyccuracy_console -l pt-br” e pronto, você já está cadastrado! Basta agora acessar o site para efetuar o pagamento com o seu cartão de crédito! :)

E agora, a promoção surpresa!

Ganha uma inscrição como convidado para o Dev in Rio e um kit de brinde da Globo.com (com camiseta, pen drive de 4GB e etc.) o primeiro programador que terminar o que falta do script, ou seja, fazer o pagamento completo por cartão de crédito ou boleto bancário, tanto faz (e antes que algum engraçadinho tente, não vale ninguém que já trabalha com o Pyccuracy aqui na Globo.com, hehe).

Só estará participando da promoção quem enviar os scripts aqui pelos comentários e eu vou seguir a ordem de postagem. O primeiro script que funcionar leva o prêmio!

Divirtam-se! :)

“50 in 50″, por Richard P. Gabriel e Guy L. Steele

Thursday, August 27th, 2009

Quem gosta de apresentações épicas vai gostar desse vídeo. Assisti essa apresentação ao vivo na QCon 2007 e foi incrível, certamente uma das mais interessantes que eu já vi! Ontem comentei isso com o Henrique que acabou achando esse video que eu sempre procurei loucamente!

Apresentada por Richard P. Gabriel e Guy L. Steele, a palestra 50 in 50 fala de 50 tópicos sobre linguagens de programação e 50 anos de história de computação em 50 minutos. Tem pérolas musicais como a sensacional “Eternal Flame” (também conhecida como “God had a deadline, so he wrote it all in Lisp”), representações teatrais de um programa escrito usando Shakespeare Programming Language e muito mais! É imperdível!

Para ver com qualidade melhor, acesse o video no Blip.tv da JAOO.

Dev in Rio 2009: eu vou!

Thursday, August 20th, 2009

É com muito orgulho que apresentamos o Dev in Rio 2009, uma conferência inédita sobre desenvolvimento de software que acontecerá no próximo dia 14 de setembro no Centro de Convenções SulAmérica, no Rio de Janeiro!

O evento está sendo organizado por mim (Guilherme Chapiewski) em parceria com o meu amigo Henrique Bastos e a realização está sendo coordenada pelas nossas experientes amigas da Arteccom (e tê-las ao nosso lado já garante que este será um evento para marcar o circuito carioca).

Nossa programação conta com três palestrantes nacionais e três internacionais falando sobre Open Source, Java, Ruby on Rails, Django e desenvolvimento ágil de software:

“O molho secreto”: como as comunidades do Joomla! e Open Source estão melhorando o cenário de tecnologia… e mudando o mundo!

Ryan OzimekRyan Ozimek é atual membro do Steering Committee da Open Source Initiative, membro da diretoria da Open Source Matters e co-fundador e CEO da PICnet Inc. Com enfoque em tecnologias open source, Ozimek está constantemente a procura de formas em que a Internet possa servir melhor o “bem maior” e, mais especificamente, as entidades sem fins lucrativos.

O Java está morto?

Guilherme SilveiraGuilherme Silveira é especialista em Java para a web e graduando em matemática computacional na USP, ministrou diversas palestras relacionadas ao tema em eventos e empresas pelo Brasil. Atualmente é commiter do CodeHaus pelos projetos XStream e Waffle, além de um dos responsáveis pelo desenvolvimento do VRaptor.

Nico SteppatNico Steppat é Engenheiro da Computação Aplicada na Fachhochschule Brandenburg na Alemanha, é instrutor, consultor e desenvolve há cinco anos com Java no Brasil e Alemanha, atuando agora na Caelum com enfoque especial em EJB. É o responsável técnico no Rio de janeiro. Escreve para a revista MundoJava e possui as certificações SCJP, SCWCD, SCBCD e SCEA.

Ecossistema Ruby on Rails

Fabio AkitaFabio Akita é Gerente de Produtos de Hospedagem na Locaweb e ajudou a implantar Ruby on Rails pela primeira vez num grande hosting no Brazil. Ano passado também organizou o Rails Summit Latin America, o primeiro grande evento de Rails na América do Sul. Trabalhou na consultoria americana Surgeworks LLC, prestando serviços relacionados a projetos Ruby on Rails, com o cargo de Brazil Rails Practice Manager.

Django: o framework web para perfeccionistas com prazos

Jacob Kaplan-MossJacob Kaplan-Moss é um dos líderes de desenvolvimento e co-criador do Django. Jacob é um desenvolvedor de software experiente com foco em desenvolvimento de aplicações web e arquitetura de gerenciadores de conteúdo. Em 2005, Jacob ingressou no Lawrence Journal-World, um jornal local em Lawrence, Kansas, e ajudou a desenvolver e tornar open source o projeto Django. É também co-autor do livro “The Definitive Guide to Django” (Apress, 2007).

Desenvolvimento ágil e iterativo de produtos

Jeff PattonJeff Patton cria e desenvolve software nos últimos 15 anos desde sistemas de pedidos de peças de aeronaves até fichas médicas eletrônicas. Jeff se focou em metodologias ágeis desde que trabalhou com um time de Extreme Programming em 2000. Em particular, Jeff se especializou na aplicação de práticas de user experience design (UX) para melhorar requisitos ágeis, planejamentos e produtos. Desde 2007, Jeff tem aplicado Lean thinking e práticas de desenvolvimento com Kanban e Scrum para ajudar times a focarem na entrega de valor.

Vinicius TelesPara fechar com chave de ouro, no encerramento do evento faremos um bate-papo com os palestrantes, alguns membros das comunidades de desenvolvimento e a participação especial do meu amigo Vinicius Teles!

Como se isso tudo já não fosse suficiente, enquanto todas essas apresentações estão acontecendo teremos sessões de Coding Dojo rolando do lado de fora com participação especial dos nossos palestrantes (caso eles consigam ficar por lá)! Estamos planejando fazer um Dojo de Python, um de Ruby e um de Java!

Será simplesmente incrível, ninguém pode ficar de fora dessa!

As inscrições podem ser feitas no site do evento (http://www.devinrio.com.br) e custam apenas R$ 65,00. Todos os inscritos terão direito a participar de todas as sessões, incluindo o Dojo.

Nosso encontro será numa segunda-feira, ou seja, se você não for do Rio de Janeiro já tem uma ótima desculpa para passar o fim de semana aqui, assistir uma ótima conferência na segunda-feira e voltar para o trabalho cheio de idéias na terça!!! Ainda estamos tentando fechar uma parceria com algum hotel para oferecer desconto para participantes do evento. Fiquem ligados nas novidades por aqui ou pelo Twitter!

Gostaria de deixar registrados meus sinceros agradecimentos para os nossos patrocinadores Locaweb e Caelum, além de outras organizações que nos apoiaram de alguma forma: Associação Python Brasil, Fábrica Livre, Open Source Matters e Myfreecomm. E por último, meu mais sincero agradecimento para a Globo.com pois ela é a principal responsável por viabilizar essa idéia! Obrigado por mais uma vez acreditarem nesse louco aqui tarado por desenvolvimento de software! Não tenho palavras pra dizer o quanto é gratificante fazer parte dessa equipe!

Então nos vemos no Dev in Rio 2009! Faça agora sua inscrição no nosso site! Fique ligado também no Twitter do @devinrio para concorrer a inscrições gratuitas!

Ah, e uma última coisa. Por favor, nos ajudem a divulgar o evento! Falem com seus amigos, postem nos seus blogs, Twitters, coloquem nossos banners nos sites de vocês, enfim, por favor nos ajudem a divulgar esse evento! Vamos fazer barulho no Rio de Janeiro!

Agile não é bala de prata

Monday, August 17th, 2009

Esses dias numa conferência alguém veio me contar a sua história, que era de uma empresa que nos últimos anos vinha desenvolvendo seus projetos de forma tradicional, em cascata, e que tinha gostado do que tinha visto sobre metodologias ágeis e estava pensando em tentar. Ele gostou principalmente da idéia de trabalhar com desenvolvimento iterativo e decidiu que iria tentar usar Scrum na sua empresa.

Passadas algumas semanas encontrei denovo com essa pessoa em um outro evento. Para a minha surpresa, ela me disse que sua vida estava um inferno! Os clientes não estavam dispostos a fechar contratos de escopo negociável, eles queriam saber exatamente o que e quando os projetos seriam entregues. Eles definitivamente não quiseram trabalhar com desenvolvimento iterativo, até porque os projetos já eram bem curtos (menos de 1 mês). Pra terminar, por ser uma agência pequena a equipe é de menos de 10 pessoas fazendo com que uma pessoa precise trabalhar em 3 ou 4 projetos ao mesmo tempo. E por aí vai…

Então eu perguntei: Quantos projetos davam errado antes de você começar com Agile?
E ele respondeu: Todos os nossos projetos sempre foram bem sucedidos.
E eu perguntei denovo: Então qual é o problema que você está tentando resolver usando Scrum e desenvolvimento iterativo?
(silêncio…)
Eu novamente: Ok, já entendí. Faça o seguinte, volte para o seu processo de trabalho antigo. Não sei como é mas me parece ótimo.

Muita gente se surpreende quando eu falo isso. Só porque eu falo sobre desenvolvimento ágil não significa que eu acho que isso é a solução para todos os problemas. Se todos os seus clientes estão satisfeitos do jeito que você está trabalhando, seus projetos não falham, você faz ótimas entregas e tudo está ótimo, você não tem um problema. E se você não tem um problema, você não precisa resolver nada. E nesse caso eu recomendo: não use uma metodologia de desenvolvimento ágil só porque está na moda.

Metodologias ágeis partem do princípio de que os requisitos de um projeto de software vão mudar. Geralmente em projetos de software grandes é muito difícil de planejar todos os requisitos de uma vez no início do projeto. Não seria impossível fazer isso mas o custo é tão alto que vale mais a pena planejar menos e ir adaptando o software e os requisitos ao longo do tempo até que ele esteja pronto. No cenário dessa pessoa, como os projetos são muito pequenos é perfeitamente possível planejar tudo antes em pouco tempo e desenvolver em seguida.

Em alguns outros casos onde os requisitos não mudam waterfall também pode fazer sentido. Por exemplo, quando você desenvolve software para o governo, toda a especificação do projeto normalmente é produzida e informada antes em um edital. Algumas vezes até o prazo de entrega já está definido. Eu pessoalmente já trabalhei em vários projetos desse tipo que deram certo, que foram entregues dentro do prazo, atendendo a especificação e sem maiores problemas. Como tudo estava funcionando, não havia motivo para pensar em outra forma de desenvolvimento que eventualmente poderia trazer mais problemas do que soluções, como no caso dessa pessoa que conversou comigo.

O que eu quero dizer com isso tudo é que não existe uma metodologia que funciona para todos os casos e todos os projetos do mundo. Assim como você deve usar a melhor ferramenta para cada problema, você deve usar a melhor metodologia para cada projeto.

No projeto que eu estou atualmente estamos quebrando vários paradigmas de desenvolvimento ágil. Estamos com times gigantes, usando quadros de Lean totalmente customizados misturados com Scrum e por aí vai. Estamos sempre analisando os resultados das iterações e replanejando nosso processo. Apesar de todos os livros dizerem que os times têm que ser pequenos, estamos trabalhando com um time de 20 pessoas que dá certo e está super produtivo. Esse é o espírito: faça o que for melhor para o projeto e o que te fizer ter os melhores resultados, não o que alguém diz que é certo ou é errado ou o que está na moda.

É perfeitamente possível desenvolver projetos bons em qualquer metodologia. Entenda qual é o seu cenário, quais são os seus problemas, limitações e aí sim decida qual é a melhor forma de trabalhar nos seus projetos.