Falando em Agile 2008: eu fui!

Por alexandre.magno em 31/10/08

O Falando em Agile 2008 deixou saudades! Foi muito bom ver profissionais experientes não só em Agile, mas no mundo de software como um todo, discutindo durante dois dias sobre a difícil arte de fazer projetos darem certo, entregando software funcionando e com valor para o cliente. Foi muito bom ver profissionais de todos os mundo juntos: Java, .NET, Delphi, PMBok, Scrum, XP, FDD…em busca de um único objetivo!

Tivemos palestras abordando assunto para todos os gostos: cases de sucesso apresentados pela Dell, Aeronáutica e Globo.com; alertas sobre as dificuldades para a implantação de Agile; modelos para contratação de projetos ágeis; Scrum em ambientes PMBok; Kanban e muito mais. Foi realmente uma overdose!

DSC_7741_50 DSC_7744_50
DSC_7675_50 DSC_7653_50

Eu poderia neste post relatar cada uma das palestras, citar pontos positivos e negativos do evento, enfim, falar em detalhes do evento. No entanto a comunidade já está fazendo isto com maestria, então cito abaixo alguns posts sobre o Falando em Agile 2008:

Vitor Hugo Germano,
Daniel Wildt
André Faria Gomes
Fabricio Sousa
Inove
André Ferreira
Danilo Bardusco,
Guilherme Chapiewski
Antonio Carlos Silveira
Philip Calçado
Flickr do Antônio Carlos
Danilo Sato

Nós da Caelum agradecemos a todos os palestrantes, que tornaram o evento muito mais especial, e as empresas que patrocinaram e apoiaram o evento: Globo.com, Yahoo! Brasil, Borland, além da Heptagon, Sea Tecnologia, Locaweb, Scrum Alliance e ThoughtWorks. Vejo vocês
no Falando em Agile 2009, e aguardem a disponbilização de algumas palestras do evento!

Treinamento Certified ScrumMaster na Caelum

Por Guilherme Silveira em 20/08/08

FJ-16 Laboratório Swing Não é de hoje que nós, da Caelum, temos declarado o nosso comprometimento com Scrum. No começo de 2007 lançamos o primeiro treinamento de Scrum totalmente nacional, e este se mostrou um sucesso absoluto. Também em 2007 a Caelum adotou Scrum em seus projetos internos e externos, e começou a oferecer serviços de Scrum para seus clientes.

Na última semana tivemos a grata surpresa de receber a notícia da aprovação do Alexandre Magno, responsável pela unidade de Scrum da Caelum, no processo de Certified Scrum Trainer da Scrum Alliance. Ele é o primeiro e único brasileiro a possuir esse título. Com isso, a Caelum estará oferecendo os treinamentos Certified ScrumMaster para todo Brasil e América Latina. Isto é um grande passo para a comunidade brasileira!

Certified ScrumMaster

O treinamento Certified ScrumMaster é, sem dúvida, um treinamento de alta qualidade. Seu conteúdo programático é definido pela Scrum Alliance, e seu material é totalmente em português, elaborado de acordo com a realidade de nossas empresas e mercado. O Alexandre elaborou grandes novidades para este treinamento, como a visualização completa de um projeto real que utilizou Scrum, com a apresentação de todos seus artefatos (Documento de Visão, Product Backlog, Sprint Backlog, Plano de Releases, Impediments Backlog, Burndowns, etc), cerimônias, depoimentos, ou seja, um histórico completo deste projeto, que será de grande valia para os alunos que irão implantar Scrum em sua empresa. Além disso, neste treinamento será apresentando o Scrumland Game, uma versão mais extensa, completa, detalhada e divertida do consagrado Scrum 59 Game… é Scrum realmente na prática! Tópicos mais específicos como: Scrum of Scrums e Scrum em ambientes solo e offshore também são abordados.

Bom, o treinamento Certified ScrumMaster está na estrada, e já possui um extenso calendário cobrindo grande parte do território nacional.

Novo treinamento: PM-51, Programação Extrema (XP) com Java

Por Sérgio Lopes em 21/10/07

Você já desenvolveu software usando o modelo waterfall? Brigou com o cliente para discutir se aquele requisito fazia ou não parte do contrato? Se perdeu com tantas obrigações do processo unificado? Cansou de escrever todo UML antes de escrever uma única linha de código? E aí alterar todo o UML pois ele não representava aquilo que o cliente queria? Só faz uma release estável de ano em ano?

O mercado está mudando. O gerenciamento de software está mudando. Precisamos de releases  rápidos, código testado, responder rapidamente aos novos requisitos do cliente, não se perder em milhares de páginas de contratos e requisitos. Agilidade.

Curso de XPA Caelum acaba de anunciar a criação de um novo treinamento focado em desenvolvimento ágil: PM-51, Programação Extrema (XP) com Java. A elaboração do treinamento contou com a consultoria de Danilo Sato, mestre em Ciência da Computação pela USP em metodologias ágeis.

As metodologias “tradicionais” de desenvolvimento de software têm causado cada vez mais complicações para as empresas. A abordagem das metodologias ágeis (como Scrum e XP) procura resolver esses problemas focando no resultado final do produto, na rápida resposta às mudanças e na satisfação do cliente. Grandes nomes do desenvolvimento de software e grandes empresas pelo mundo todo (como Google, Yahoo e Microsoft) têm apostado nas metodologias ágeis e têm tido ótimos resultados. A Caelum também abraçou a causa, e utiliza metodologias ágeis em seus projetos e clientes.

Iniciamos o enfoque em metodologias ágeis com o treinamento de Scrum no início desse semestre, com Alexandre Magno. Agora completamos a grade com o treinamento de Extreme Programming (XP), metodologia que é inclusive muito utilizada em conjunto com Scrum.

Neste treinamento de XP abordaremos as práticas da metodologia e as práticas de programação que trazem agilidade ao desenvolvimento de software. Desde tópicos técnicos como testes automatizados, design patterns, refatoração e o processo de build até a integração contínua, programação pareada e o uso de controle de versão. Além disso, falaremos dos valores ágeis, das reuniões diárias, jogo do planejamento, métricas de qualidade de código e tracking para controle geral do processo de desenvolvimento. Diferentemente do treinamento de Scrum, a parte prática deste treinamento possui bastante código e desenvolvimento.

Entre em contato conosco para saber mais ou fazer sua reserva.

Domain Specific Languages em ação

Por Paulo Silveira em 21/09/07

Em diversos momentos sentimos a necessidade de utilizar uma linguagem para atacar um problema mais específico. Utilizar Java ou C# nesse tipo de problema pode gerar uma enorme quantidade desnecessária de código. Veja um exemplo que passamos na Caelum:

Set<Strategy> strategies = new HashSet<Strategy>();
Indicator<Double> close = new ClosePriceIndicator(timeSeries);
for (int i = 1; i <= 50; i++) {
  Indicator<Double> tracker = new EMAIndicator(close, i);
  Strategy strategy = new 
    IndicatorCrossedIndicatorStrategy(close, tracker);
  strategies.add(strategy);
}

No nosso caso, esse trecho de código deve ser compreensível para analistas de negócio, que não são necessariamente programadores, muito menos possuem conhecimento de Java.

Domain Specific Languages é o nome dado a prática de se criar pequenas linguagens para resolver um problemas bem específicos. Elas existem em dois sabores: as externas, que criam uma linguagem própria, e as internas, que na verdade utilizam um subconjunto de instruções de um linguagem já existente e utilizada no sistema.

Entre alguns clássicos exemplos de DSLs internas temos o uso da Criteria do hibernate, o uso do ruby nos arquivos de build do rake. Entre as DSL externas, temos as macros do excel e o xml do ant.

Utilizando a api de scripting do java 6, passamos a usar ruby (através da JRuby) para escrever essa parte da lógica de negócios, e nosso código em java ficou assim:

(1..50).collect{|x|
	Tail::IndicatorCrossedIndicatorStrategy.new(close,
		Tail::EMAIndicator.new(close, x))
}

Criando algumas factories, conseguimos chegar a um código muito mais simples:

(1..50).collect{|x|
	cross(close, ema(x))
}

Logo, estamos próximos de chegar a algo parecido com uma linguagem natural:

x de 1 a 50
       quando cruzar (fechamento, ema(x))

Para tal, uma das possibilidades seria usar um dos compiladores de compiladores existentes para Java, porém isso daria muito trabalho.

O Rodrigo Kumpera sugeriu escrever o próprio parser, como fez o Gilad Bracha no Small Talk. Tanto o Rodrigo quanto o Renato Lucindo citaram o spirit++, que faz isso para C++. Uma pena não existir algo equivalente para o Java.

Phillip Calçado recomendou fazer um teste para saber se devemos ou não melhorar ainda mais essa DSL. O teste consiste em colocar a linguagem natural ao lado da DSL ruby e ver se o especialista consegue fazer a ponte entre uma e outra. Exemplo:

(1..50).collect{|x|
	cross(close, ema(x))
}

x de 1 a 50
       quando cruzar (fechamento, ema(x))

Se o especialista no domínio não entender a semelhança entre os dois códigos, é necessário aprimorar a DSL em questão.

Primeira turma de Scrum na Caelum

Por Paulo Silveira em 13/09/07

O consultor e instrutor Alexandre Magno colocou suas impressões sobre o primeiro treinamento de Scrum que ele ministrou na Caelum, como segue:

Na semana de 30 de julho a 03 de agosto ministrei o treinamento “Gerenciamento de Projetos de Software com Scrum” para a primeira turma na Caelum. O resultado final superou as minhas expectativas, e um grande fator para isto foi o espírito de time que foi criado nos 05 dias que passamos juntos aprendendo Scrum. Também fiquei bastante satisfeito por ter conseguindo atingir um dos meus principais objetivos, que era o de conduzir um treinamento de Scrum focado principalmente na prática, colaborando para que todos os membros do time aprendessem com nossos próprios erros. Acho que ficou claro para todos a evolução que cada um teve no decorrer da semana através de uma comparação de resultados alcançados em cada atividade, e o quão cultural são a maioria destes problemas.

scrum caelum 1072229271_22ff49e3fd_o
1072228845_15a37026ed_o 1072228597_44c1b022c6_o

O feedback realmente foi muito bom! Tivemos uma participação bem heterogênea, desde gerentes de projeto até desenvoldores.

O Alexandre Magno estará em Londres palestrando no Scrum Gathering, com a palestra “Why Scrum Intimidates?“. Não é a toa que o Phillip Calçado, que cordena uma equipe de 8 desenvolvedores na globo.com, escreveu um excelente texto sobre como adotar agilidade na sua empresa. Nesse texto o Phillip começa falando sobre essa reação negativa a respeito de novidades, e em especial a metodologias ágeis. Além do texto, as fotos também estão excelentes. Sua empresa está pronta para a mudança?