Mini-Cursos

Gerenciamento Ágil de Projetos com Scrum

Aprenda na prática como vencer os desafios da implantação da metodologia Scrum para o gerenciamento de projetos de software.

Objetivo: Nesse mini-curso, o aluno aprenderá na prática, através de várias dinâmicas e exercícios, como usar os conceitos do Scrum combinado com outras metodologias como FDD (Feature-Driven Development) e TOC (Theory Of Constraints), para gerenciar e executar os ciclos de um projeto ágil de software, semelhante ao que importantes empresas estão aplicando em seus processos internos para gerar produtos com maior qualidade, mais velocidade e com menores custos.

Tópicos:

  • Abordagens ágeis
  • Engenharia de Requisitos
  • Planejamento
  • Estimativas
  • Desenvolvimento
  • Métricas e Acompanhamentos
  • Entregas
  • Melhoria contínua
  • Relação do Scrum com os modelos de maturidade como CMMi e MPsBr


eXtreme Programming (XP) na Prática

Venha experimentar na pele o dia a dia de um projeto XP real! Nesse minicurso serão apresentados os conceitos básicos do Extreme Programming, e teremos um primeiro contato com a metodologia "de dentro pra fora", do ponto de vista da própria equipe. Ao longo de um dia inteiro de atividades a turma realizará todas as etapas de um projeto XP real, envolvendo planejamento, levantamento de requisitos, design, programação e testes de verdade, chegando ao fim do dia (se Deus quiser :-P ) com uma versão funcional de um pequeno software - simples, mas palpável e útil.

Saber programar não é, de forma alguma, um pré-requisito para o curso, embora algumas noções básicas e familiaridade com lógica de programação sejam desejáveis. De qualquer forma, haverá espaço para todos, pois as sessões de programação se darão de forma coletiva - em formato CodingDojo - e porque uma equipe XP é formada, na prática, com todo tipo de especialidades. Quem não se sentir à vontade programando poderá no mínimo observar de perto como o design do código floresce naturalmente, cultivado por práticas como Desenvolvimento Orientado a Testes, Refatoração, programação em par, e Integração contínua - além de participar ativamente do levantamento de histórias, jogo do planejamento e retrospectivas.


Desenvolvimento web ágil com RubyOnRails

Agilidade não tem nada a ver com qualquer tecnologia, mas algumas tecnologias tem muito a ver com agilidade.

Ao contrário do que acredita senso comum de mercado, o desenvolvimento ágil (agile) não é consequência de mudança tecnológica, aquisição de produtos ou implantação de ferramentas. Não se compra Agile. Uma equipe não se torna ágil do dia pra noite com o estalo mágico dos dedos de qualquer consultor. Agile não é uma mudança de processos ou ferramentas, mas sim uma grande transformação interior de valores e princípios. Aderir à agilidade diz respeito, em primeiríssimo lugar, a uma mudança radical na forma de se pensar software. Para que métodos ágeis funcionem, a convicção absoluta da equipe é de principal importância. Enfim, não se justifica o uso de qualquer tecnologia específica para que se seja ágil no desenvolvimento.

Este mini-curso irá então introduzir a linguagem de programação Ruby e o framework Web Rail, relacionando sua integração com a plataforma Java, através dos seguintes tópicos:

  • Ruby: linguagem de programação
  • JRuby: implementação da linguagem Ruby sobre a plataforma Java
  • RubyOnRails: framework de desenvolvimento web em Ruby, famoso por sua produtividade
  • JRubyOnRails: uso do framework Rails sobre a implementação JRuby
  • Construção de aplicativos web JRubyOnRails no NetBeans
  • Deploy de aplicativos JRubyOnRails no Glassfish e no JBoss

Os únicos pré-requisitos necessários para participação do treinamento são (a) alguma noção de desenvolvimento web e (b) vontade absurda de aprender.


Gestão Ágil de Requisitos

Nesse treinamento, será exposta uma visão pragmática da aplicação de práticas ágeis e enxutas para promover o aprendizado iterativo e incremental para modelar e desenvolver um produto de software, alinhado à estrutura de uma organização e dentro das expectativas de prioridades para as entregas.
Tópicos:

  • A estrutura de produto dentro uma organização
  • As dimensões do escopo (Tamanho, simplicidade e aderência.)
  • Modelagem de negócios
  • Processo de aprendizado de escopo
  • Estado Lean para o desenho de software
  • Representando desejos com User Story
  • Modelando Papéis
  • Formato para User Story
  • O modelo INVEST
  • Usando Temas e Épicos
  • Representando desejos com Features
  • O modelo ARO (Ação Resultado Objeto)
  • Aplicando a FBS (Feature Breakdown Structure) da FDD (Feature Driven Development)
  • Usando Áreas e Atividades
  • Priorização por Áreas, Atividades ou Temas
  • Estratégia de entrega em alto nível
  • Critérios de Aceitação em diferentes níveis
  • DoD (Definition of Done) em diferentes níveis
  • Monitoramento de resultados
  • Exemplos de Product Backlogs
  • Técnicas de Modelagem Ágil
  • E como ficam meus casos de usos?
  • Aplicando a TOC (Teoria das Restrições) na engenharia de requisitos
  • Terminei o projeto e agora, onde fica toda a informação?
  • Dinâmicas para aplicação dos conceitos

Teste de aplicações Rails

Muito se diz que Rails é um meta-framework com forte personalidade. Dessa personsalidade, destaca-se o amplo incentivo à cultura de testes. Por isso, geralmente, o próximo passo de programadores recém introduzidos às tecnologias Ruby/Rails é a busca por mais informações a respeito de práticas e ferramentas para o desenvolvimento orientado a testes.

Este curso discute a filosofia dos testes, algumas práticas básicas, introduz o processo de testes do Rails e finaliza com a apresentação de ferramentas complementares que ganharam espaço na comunidade nos últimos anos. Será debatida a real motivação da prática contínua de testes, quebrando alguns preconceitos herdados da cultura não ágil e refletindo sobre o equilíbrio a ser encontrado. Os principais conceitos de testes do Rails serão apresentados, como testes unitários, testes funcionais e testes de integração, fixtures e instruções Rake. Por fim, trabalharemos com outras ferramentas de TDD, BDD e Mock Objects, como RSpec, Cucumber, Mocha, Faker e Autotest.


Planejamento e estimativas em projetos ágeis

Neste workshop você trabalhará unicamente em volta das mais importantes técnicas para ter um projeto ágil bem planejado. Ao final do workshop você saberá a importância do tamanho para itens de um Backlog e entenderá como utilizar bem esta unidade, entenderá as diferenças entre story points e ideal time, as vantagens de utilizá-las e verá na prática (em um projeto real) a utilização das melhores técnicas para estimativa. Saber quando e porque re-estimar também será entendido aqui, e ainda como trabalhar desta forma tanto em projetos com escopo aberto como fechado.

Conteúdo programático:

  • O que difere um planejamento ágil do planejamento tradicional?
  • Necessidades para o processo de estimativa;
  • Falando sobre unidades: size, story points, ideal day e hours;
  • Quando e porque estimar em horas? Quando e porque estimar em tamanho?
  • Técnicas de estimativa: analogia, desagregação e planning poker;
  • Planejamento de Releases em detalhes;
  • Planejamento de Sprints em detalhes;
  • Utilizando a Sprint Review para potencializar seu planejamento;
  • Técnicas para uma planning meeting bem sucedida;
  • Planejando projetos de escopo aberto;
  • Planejando projetos de escopo fechado.
Patrocínio Ouro

Patrocínio Prata

Patrocínio Bronze

Realização

Organização

Apoio