Archive for the ‘Agile’ Category

eXtreme Programming em Cinco Minutos

A eXtreme Programmig (XP) proposta por Kent Beck [BECK, 2004] tem o objetivo de propor uma metodologia ágil para equipes de tamanho pequeno a médio, onde o desenvolvendo de software está inserido em um contexto de requerimentos vagos ou que mudam rapidamente.  O próprio autor descreve a Programação eXtrema como: “A XP é uma maneira leve, eficiente, de baixo risco, flexível, previsível, científica e divertida de desenvolver software”. [BECK, 2004].  Ainda segundo [BECK, 2004], a XP reconhece que os projetos precisam dedicar-se à obtenção da redução dos custos e tirar vantagem daquilo que foi economizado. Além disso, defende a não especialização dos membros do time, ou seja, todos participam de todas as atividades, em pares e com sistema de rodízio dos pares o desenvolvimento de infra-estrutura e frameworks durante o desenvolvimento da aplicação, e a comunicação face a face ou por meio de testes eficientes e código cuidadosamente escrito.

Segundo [BECK, 2004], a XP se distingue das outras metodologias por:

  • Seu feedback antecipado;
  • O planejamento incremental, que gera rapidamente um plano geral que evolui com o decorrer do projeto;
  • Sua habilidade de implementar as funcionalidades de forma flexível considerando as necessidades mutáveis do negócio;
  • Sua confiança nos testes automatizados;
  • Sua confiança em comunicação oral;
  • Sua confiança em um processo de projeto evolutivo que dura tanto quanto o sistema;

Risco: O Problema Básico

A principal motivação da Programação eXtrema parte do princípio que o desenvolvimento de software tem falhas na entrega e falhas nos produtos entregues caracterizando o problema básico – o risco, portanto, produz-se software de baixa qualidade. Segundo [BECK, 2004], existem vários riscos associados ao desenvolvimento do software, como: (i) cronograma irreal; (ii) cancelamento do projeto por vários atrasos no cronograma; (iii) o sistema é descontinuado pelo alto custo de se fazer modificações ou a taxa de erros cresce tanto que o sistema deve ser substituído; (iv) o negócio é mal compreendido e o software desenvolvido não resolve o problema original; (v) as regras de negócio mudam antes que o software seja finalizado; (vi) funcionalidades inúteis. A missão da XP é aceitar o risco como problema a ser resolvido, onde o objetivo é encontrar a solução. Nesse sentido, a necessidade é criar um modelo de desenvolvimento de software que trate desses riscos.

Além de mitigar ao máximo os riscos, a metodologia XP advoga que quatro variáveis têm de ser controladas no projeto – custo, tempo, qualidade e escopo. Dessa forma, o modelo desenvolvimento de software é dirigido sob a perspectiva de controlar as referidas variáveis. Em um projeto, as referidas variáveis são restrições inerentes ao produto final. Eventualmente se o custo e/ou o tempo forem escassos, é muito provável que a qualidade do produto entregue possa estar muito inferior àquela esperada no escopo do projeto.  A XP cria valores, princípios de atividades básicas e práticas para tentar conduzir bem os problemas correlacionados à efetivação dos riscos do projeto. Esses valores podem ser caracterizados em:

  1. Comunicação: deve ser extremamente aberta e franca. A XP dá uma ênfase especial à comunicação e é essencial para tudo o que acontece no contexto de um projeto. Segundo [BECK, 2004], “Os problemas nos projetos podem ser invariavelmente rastreados a alguém não ter conversado com alguém mais sobre alguma coisa importante”.
  2. Simplicidade: é representada na XP pela busca pela “coisa mais simples que possa funcionar” [BECK, 2004]. O propósito é construir algo simples e direto que solucione problemas de hoje e ter certeza de que isso seja suficientemente flexível para ser refinado e expandido de modo a solucionar os problemas de amanhã, mas fundamentalmente não se preocupa hoje com os problemas de amanhã.
  3. Feedback: seu objetivo é criar ciclos de realimentação que atuam em intervalos de tempos pequenos como dias e minutos, em relação aos testes de unidade, e, grandes semanas (dias, semanas) em associação a teste de aceitação de usuário, e,  planejamento e cronograma de projeto.
  4. Coragem: é o valor que permite aos participantes da XP se aventurarem em projetos de alto risco e alta recompensa nas tarefas de desenvolvimento. Isso muitas vezes se manifesta na forma de desenvolvedores que constroem protótipos descartáveis durante a codificação.

Princípios Fundamentais da XP

De acordo com [BECK, 2004] os princípios fundamentais da XP são:

  1. Feedback rápido: o princípio é obter o feedback, interpretá-lo e aplicar o que é aprendido no sistema o mais rápido possível, realimentando o que foi aprendido em dias ou semanas, em vez de meses ou de anos.
  2. Simplicidade presumida: este princípio dita que a equipe deve pressupor que todo problema tem uma solução razoavelmente simples. Como conseqüência, o tempo poupado na maioria dos problemas para os quais isso é válido pode ser usado para abordar problemas que realmente necessitem de soluções complexas.
  3. Mudanças incrementais: parte do princípio que grandes modificações feitas de uma só vez têm grandes chances de não dar certo. Assim, qualquer problema é resolvido por meio de uma série de mudanças menores.
  4. Aceitação das mudanças: este princípio se apóia na premissa da XP que de desenvolver software no contexto de requerimentos vagos ou que mudam rapidamente. As idéias é que os membros da equipe devem simplesmente aceitar as mudanças como algo natural, diário, em vez de algo que ocorre eventualmente.
  5. Alta qualidade: ninguém gosta de fazer um trabalho de baixa qualidade. Todos gostam de fazer um bom trabalho. A XP defende que se você não vai fazer algo bem, então não faça independentemente das restrições de cronograma e orçamento.

Atividades Básicas do Desenvolvimento

[BECK, 2004] define quatro atividades básicas associadas ao desenvolvimento de software utilizando XP, sendo elas:

  1. Codificar: as práticas da XP utilizam o código como um mecanismo para atingir objetivos secundários incluindo o aprendizado rápido e uma melhor comunicação. Algumas das práticas citadas no tópico a seguir estão ligadas à codificação: refatoração, programação em pares e integração continua.
  2. Testar: está fortemente relacionada à codificação. Os desenvolvedores devem escrever códigos de teste de unidade antes escrever o código e verificar se o código passa por todos esses testes antes de se tornar um sistema. O cliente também é envolvido nos testes funcionais, onde os mesmos devem confirmar se o sistema satisfaz as regras de negócio.
  3. Escutar: refere-se à necessidade de estruturar a comunicação de modo que as conversas, sempre que possível, envolvam os problemas de hoje, não os de amanha, em um nível de detalhe apropriado.
  4. Projetar: está associado a necessidade de criar uma estrutura que organiza a lógica dentro do sistema de modo a torná-lo robusto e possível de manter. Nesse contexto, a prática utilizada é projetar simples.

Práticas do XP

[BECK, 2004] lista algumas práticas que devem ser seguidas pela equipe de desenvolvimento para que os valores, princípios e atividades básicas da metodologia sejam alcançados, são elas:

  1. O jogo do planejamento: determinar o escopo da próxima versão de forma que os requisitos mais importantes sejam contemplados e a entrega possa ser um praza não muito longo. Quando o planejado fugir do realizado, então o plano deve ser reajustado.
  2. Entregas freqüentes: dividir o desenvolvimento em pequenos módulos de acordo com as funcionalidades de forma que possa ser rapidamente colocado em produção.
  3. Metáfora: conduzir o desenvolvimento por meio de histórias simples, compartilhada por todos os envolvidos, sobre como o sistema deverá funcionar.
  4. Projeto Simples: o sistema deve ser pensado e projetado de maneira simplista. Complexidades desnecessárias são removidas assim que descobertas.
  5. Testes: os programadores escrevem os testes de unidade durante todo o desenvolvimento, o qual deve ser executado sem falha para o desenvolvimento continue.
  6. Refatoração: os programadores se preocupam sempre em deixar o código estruturado removendo códigos redundantes, simplificando e aumentando a flexibilidade.
  7. Programação em pares: todo o desenvolvimento é realizado por programadores trabalhando em pares.
  8. Propriedade coletiva: todos podem alterar o código em qualquer trecho e em qualquer momento.
  9. Integração contínua: integre e atualize as versões do sistema várias vezes por dia, cada vez que uma tarefa fora terminada.
  10. Semana de 40 horas: como regra, trabalhe no máximo quarenta horas por semana, evitando fazer hora extra por duas semanas consecutivas.
  11. Cliente presente: mantenha o cliente o mais próximo possível para responder a questões.
  12. Padrões de codificação: os programadores escrevem código respeitando as regras que enfatizam comunicação através do código.

Referência:  BECK, Kent (2004). Programação eXtrema explicada: escolha as mudanças, Bookman, 2004.


Princípios do Pensamento Lean

O nome “Pensamento Lean” nasceu nos anos 90 com o lançamento do best seller The Machine That Changed the World : The Story of Lean Production.  Os princípios de demanda puxada, just-in-time, qualidade total, melhoria contínua e flexibilidade aplicados na indústria japonesa, mais precisamente na Toyota e conhecidos como Toyota Way inspiraram também a indústria de software e fez surgir a abordagem do Lean Software Development

O Lean Software Development provê uma série de princípios sobre a aplicação de um conjunto de técnicas oriundas da indústria e aplicadas em desenvolvimento de software. Esses princípios foram amplamente adotados na manufatura japonesa aonde vieram a ser conhecidos como “Lean Production“.

Nesse contexto, Mary e Tom Poppendieck identificaram sete princípios fundamentais denominados “Lean Principles” e mostraram como eles podem ser aplicados em abordagens de desenvolvimento de software ágil.  Ao longo dos princípios, eles introduziram também e vinte e dois “thinking tools” para traduzir cada princípio em práticas ágeis, em particular eles apresentaram um toolkit para gerentes, lideres técnicos e gerentes de tecnologia que esperam adicionar valor ao invés de criarem barreiras para suas equipes de projetos, como os a seguir:

  • Melhoria contínua em direção à excelência: desenvolvimento de software é como um exercício de descoberta.
  • Gerenciando incertezas: “decidir o mais tardio possível” para adicionar mudanças dentro do sistema.
  • Reduzindo o fluxo de valor: desenvolvimento rápido, feedback, e melhorias contínua.
  • Dê autonomia ao time e ao indivíduo sem coordenação e comando-controle.
  • Software com qualidade: promovendo coerência, usabilidade, alta coesão, manutenabilidade e adaptabilidade.

Princípio 1: Elimine o Desperdício

Elimine qualquer coisa que não agregue valor ao produto e que não são percebidos pelo cliente. No pensamento Lean, o conceito de desperdício é um grande obstáculo. Se um programador implementa mais funcionalidades do que o necessário de imediato, isso é um desperdício.  Se a equipe produz documentação de análise apenas para estar em concordância com o processo, isso é um desperdício. Se o time entrega funcionalidades incompletas, isso é um desperdício. O ideal é perceber o que os clientes precisam para então desenvolver e entregar exatamente o que eles querem o mais rápido possível. Qualquer outra coisa que fica e que não satisfaça as necessidades do cliente é um desperdício.

Princípio 2: Amplifique o Aprendizado

Desenvolvimento é um exercício de descoberta, enquanto produção é um exercício de redução de variações, e por essa razão, aprender a abordagem de desenvolvimento resultam em práticas que são bastante diferentes do que aprender abordagens de práticas de produção.

Desenvolvimento é como fazer uma nova receita, enquanto produção é como fazer um prato. Receitas são formuladas a partir da experiência de chefes de cozinha. Desenvolver uma receita é um processo de descoberta, onde o chefe utilizando de toda sua experiência e dos ingredientes a sua disposição faz iterações, experimentações, até encontrar a melhor combinação de ingrediente para o melhor sabor. Não se espera que os chefes obtenham uma receita perfeita na primeira tentativa; espera-se produzir diversas variações como parte do processo de aprendizagem. Desenvolvimento de software é concebido de forma melhor com um processo de aprendizado similar ao de criar uma nova receita. A melhor abordagem para melhorar o ambiente de desenvolvimento de software é pelo conhecimento amplificado, em um espiral de criação do conhecimento.

Princípio 3: Decida o Mais Tarde Possível

Práticas de desenvolvimento que assegurem a tomada de decisão tardia são mais eficazes em domínios que envolvem incertezas. Decidir o mais tarde possível significa manter suas opções aberta o maior tempo possível. O principal conceito deste princípio é diminuir as incertezas retardando as decisões até que possam serem feitas com base em acontecimentos mais firmes, previsíveis e conhecidos. Decisões tardias tendem a ser mais acertadas porque as melhores decisões são feitas baseadas em fatos, e não em suposições ou especulações. A principal estratégia de atrasar as decisões em um desenvolvimento de um sistema complexo é construí-lo com a capacidade de suportar mudanças.

Princípio 4: Entregue o Mais Rápido Possível

Sem entregas rápidas é impossível haver decisões tardias durante o desenvolvimento. Sem entregas rápidas não haverá feedbacks confiáveis no curto prazo.  No desenvolvimento o ciclo de descoberta é fundamental para a aprendizagem: estórias, implementação, feedback e melhorias. Quanto menor esse ciclo, mais pode ser aprendido.

Uma vez que os clientes decidam o que querem, seu objetivo deve ser para criar esse valor tão rapidamente quanto possível. Entregas rápidas garantem que o cliente vai ter o que ele precisa hoje, e não o que ele precisa amanhã.

Em uma organização madura em desenvolvimento de software, tudo isso acontece em um fluxo rápido em resposta a uma necessidade dos clientes.

Princípio 5: Dê autonomia à Equipe

Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu trabalho.” Esse já é um dos doze princípios por atrás do manifesto ágil. A equipe de trabalho deve ter autonomia para adequar seus próprios processos de engenharia, assumir os seus próprios compromissos e reunir as informações necessárias para alcançar seus objetivos e cumprir as suas metas. Equipes autônomas são multidisciplinares, possuem indivíduos multidisciplinares, trabalham bem com a interdisciplinaridade  e promovem a auto-organização. A esse  tipo de equipe mais um princípio ágil é adicionado: em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de acordo.”

Nesse ambiente, a equipe de desenvolvimento está em melhor posição para saber responder a problemas difíceis e a pedidos urgentes. A melhor maneira de ter certeza de estar fazendo as coisas corretas é trabalhar diretamente com o cliente para entender suas necessidades, colaborar com os colegas para descobrir como satisfazer essas necessidades, e, frequentemente apresentar os resultados aos interessados para ter certeza de que estamos no caminho certo.

Princípio 6: Construa com Integridade

Qualidade é inegociável. Entregue qualidade intrínseca e explícita aos seus clientes, se eles perceberem isso, significa que foi uma entrega de qualidade. Mary e tom Poppendieck em seu livro identificaram duas dimensões de integridade: integridade percebida e integridade conceitual. A integridade percebida significa que a totalidade do produto alcança um equilíbrio entre as funções, usabilidade, confiabilidade, economia e isso encanta o cliente. A integridade conceitual significa que os conceitos centrais do sistema de trabalho em conjunto são facilitados e coesos. Essa última é fator crítico de sucesso para a integridade percebida.

Um produto possui integridade percebida quando o cliente o experimenta e diz: Isso! Era exatamente isso que eu queria! Esse exemplo acontece com frequencia em aplicações do google. Eu particularmente senti isso quando experimentei o novo recurso de caixa prioritária do gmail.

Um produto de software deve estar sempre adicionando integridade. Isso prolonga o seu ciclo de vida operacional. Software com integridade possui boas arquiteturas, possuem um alto nível de usabilidade e facilidade de uso, são fáceis de dar manutenção, de adaptar e de estender.

Princípio 7: Visualize o Todo

Integridade em sistemas complexos exigem um conhecimento holístico e profundo em diversas áreas. Um dos problemas mais intratáveis com o desenvolvimento do produto é que especialistas em qualquer área (por exemplo, banco de dados ou design) têm uma tendência natural em maximizar o desempenho da parte do produto que representa a sua própria especialidade, ao invés de focar no desempenho do sistema como um todo. Muitas vezes, a integridade do produto como um todo pode ser prejudicado se as pessoas atenderem aos seus próprios interesses especializados em primeiro lugar.

Tradução do inglês para português

práticas de desenvolvimento que assegurem a tomada de decisão tardia são eficazes em domínios que envolvem incerteza


Conformidade com o Produto vs. Conformidade com o Processo

Foque na conformidade com o produto e não na conformidade com processo.

Em desenvolvimento de software não existe mágica, não existe bala de prata, não existe nenhuma conformidade processual que garanta um produto conforme.  Existe, no entanto, um ambiente de descoberta, aprendizado e melhoria constante. Um ambiente formado por pessoas, que praticam socialização, externalização, combinação e internalização em um espiral contínuo de criação de conhecimento, em nível individual, do grupo, e organizacional.  Desenvolvimento de Software pode ser encarado como um jogo cooperativo infinito onde, além de suas atividades de engenharia, também deve ser encarado como uma atividade de ciências humanas, acima das questões técnicas e puramente lógicas. Existem pessoas envolvidas no processo; as que criam e as que usam o software.  A interação entre elas é um dos principais fatores críticos de sucesso para alcançar a conformidade com o produto.

Um dos princípios do manifesto ágil já afirma que “Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.” e um dos valores do manifesto completa que Indivíduos e interação entre eles mais que processos e ferramentas“. Em desenvolvimento de software os esforços devem ser desprendidos para alcançar a conformidade com o produto e nem tanto para alcançar a conformidade com o processo. O processo é o meio para alcançar o produto e não o fim. Elimine qualquer coisa que não agregue valor ao produto e que não são percebidos pelo cliente. Elimine o desperdício, simplifique e aceite mais um princípio ágil: “simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.” Segundo o pensamento Lean, existem alguns desperdícios clássicos em desenvolvimento de software, a seguir:

  • Trabalho parcialmente feito  (o “inventário” de um processo de desenvolvimento)
  • Processos extras (fáceis de encontrar no desenvolvimento centrado em documentação)
  • Funcionalidades extras (desenvolvem-se apenas o que os clientes querem agora)
  • Troca de tarefas (todos devem fazer uma coisa de cada vez)
  • Espera (para instruções, para mais informações, típico em ambiente comando-controle)
  • Handoffs (toneladas de conhecimento tácito se perde)
  • Defeitos (pelo menos defeitos que não são rapidamente capturados por um teste)

Manter a conformidade com processo de desenvolvimento formais, tradicionais, prescritivos e centrados em documentação implica em um problema que está muito além de afirmações de serem burocráticos, waterfall, rígidos, etc.  O principal problema é o auto custo de se manter esse tipo de processo. Processo formal é caro, manter a conformidade com o processo é caro, manter conformidade na documentação é caro, manter uma equipe de Quality Assurance é caro e fazer alterações de requisitos no meio do projeto é mais caro ainda.  Processo de desenvolvimento de software baseado em modelos de maturidade como CMMI e MPS-BR só podem ser considerados maduros se houver uma equipe de Quality Assurance atuante, autônoma e não condicionada. Sem Quality Assurance nesse tipo de abordagem grande parte dos esforços no desenvolvimento de um produto em conformidade com o processo é puro desperdício. O que se espera desse tipo de processo, como em qualquer processo, é um ciclo de melhoria contínua a fim eliminar paulatinamente qualquer fonte de desperdício, e por mais incrível que pareça, as referidas fontes de desperdício acabam sendo em atividades redundantes e, sobretudo, em atividades da própria equipe de Quality Assurance. Quando uma equipe formal chega nesse nível significa que ela está madura. Quanto mais madura a equipe, menos atividades de inspeção e verificação são necessárias para garantir a conformidade com o processo e mais esforços podem ser realocado para garantir a conformidade do produto.

Em métodos ágeis, a conformidade com o produto é uma premissa, talvez seja por isso que são chamados de ágeis, e podem ser  observados no próprio manifesto ágil e em seus doze princípios.  As referidas premissas também podem ser observadas nos princípios do pensamento Lean, nos valores e práticas do eXtreme Programming, no jogo cooperativo do Crystal e nas cerimônias do Scrum.

Independente da abordagem, o que importa é “satisfazer o cliente, através da entrega adiantada e contínua de software de valor“. No entanto, no caminho para alcançar esse objetivo, as empresas que desenvolvem software tem que lidar com clientes que lidam diariamente com o caos, e freqüentes mudanças operacionais. Esse ambiente em constante mutação gera novas oportunidades e novas demandas dos clientes. O processo tem que ser flexível, melhorado continuamente  para atender as essas “oportunidades”, focando sempre na satisfação do cliente e embarcando conhecimento em conformidade com o  produto.


Pós Graduação UNA- Engenharia de Software Centrada em Métodos Ágeis

Objetivo do Curso

O curso de pós-graduação lato sensu em Engenharia de Software Centrada em Métodos Ágeis tem como objetivo principal especializar profissionais para o desenvolvimento de softwares de qualidade. Este curso busca capacitar os participantes para uma visão abrangente e atualizada de engenharia de software e, em especial, capacitá-los em métodos ágeis focalizando nas tecnologias correntes para o desenvolvimento de software. O curso contempla tópicos como métodos ágeis, programação orientada a objetos, padrões de projeto, engenharia de requisitos ágeis , usabilidade, arquitetura e teste de software bem com o desenvolvimento aplicações WEB e RIA (Rich Internet Application). Durante o curso, os alunos exercitarão práticas ágeis integradas às outras disciplinas, proporcionando a transversalidade de conhecimento entre os conteúdos. No final, o aluno estará capacitado a implantar, integrar, liderar equipes ágeis de desenvolvimento de software aplicando técnicas e tecnologias atuais de mercado.

Read the rest of this entry »


A “Fantástica” Fábrica de Software

Pode até parecer que neste post vou falar mal das fábricas de software. É, e eu vou mesmo! Os puritanos que me perdoem.

Desde a conferência de NATO em 1968 a indústria de software discute problemas referentes a imaturidade em processos de desenvolvimento de software. A questão discutida desde então é a baixa qualidade dos produtos de software,  os custos e prazos não cumpridos e sobretudo funcionalidades em desacordo às necessidades do negócio.

Para tentar reduzir os problemas da crise do software, várias abordagens foram iniciadas. Uma delas foi a iniciativa do governo americano juntamente com universidade de Carnegie Mellon em desenvolver o modelo de maturidade CMMI. Abordagem semelhantes foram adotadas pelo governo brasileiro em conjunto com universidades e a Softex para desenvolver o MPS-BR.

Desde então, a indústria de software vem evoluindo e, a partir dos anos 90, surgiram propostas de desenvolvimento de processos formais como RUP, pautados sobre modelos de maturidade, além da evolução de autores consagrados como Sommerville, Pressman, Yourdon, Rumbaugh, Booch, Jacobson, etc.

Read the rest of this entry »


Ciclo de palestra na UNA sobre RIA, Flex, Scrum, XP, Ruby e Rails

Na última segunda-feira, 26/04/2010 aconteceu no Centro Universitário UNA um ciclo de palestras sobre RIA, Flex, Scrum, XP, Ruby. Veja grade completado do evento aqui.

O objetivo do evento foi mostrar, por meio de palestras, novas tecnologias e metodologias que já estão sendo utilizadas com sucesso no mercado como: RIA, FLEX, Ruby on Rails, Scrum e XP. Também foi objetivo do evento, despertar o interesse da platéia para as “possibilidades” que as referidas tecnologias e metodologias podem trazer para um produto de software.

Esse objetivo foi cumprido com sucesso graças aos palestrantes que, gentilmente, aceitaram o convite. Agradeço novamente ao André Lanna (@andreperon) ao Daniel Lopes (@danielvlopes) e ao Leonardo Braga (@leonardobraga)

Read the rest of this entry »


Palestras sobre RIA, Flex, Ruby on Rails, Scrum e XP.

1. Palestras e palestrantes

Palestra 01

Palestra: RIA e Flex - Dando Formas a Inovação

  • Mini currículo: Leonardo trabalha há 12 anos com desenvolvimento de sistemas. Formado em Design pela Mídia Escola de Artes Visuais, Técnico em Processamento de dados pelo Cotemig e em Análise e Desenvolvimento de Sistemas pela UNA. Fundador e Diretor de Operações da Augix IT Solutions, empresa que há 4 anos fornece soluções inovadoras alinhadas ao core-business de seus clientes, além de atuar como fornecedora de tecnologia para agências de publicidade no Brasil e no exterior. É certificado pela Microsoft como MCP, MCTS e MCPD em aplicações Web em .NET, pela Adobe como Flash Developer, Designer, e Dreamweaver Advanced Developer, pela Brainbench como Delphi Advanced Developer, Windows API Programmer entre outras. Trabalha ativamente com consultoria e desenvolvimento de soluções para Web, Desktop e Serviços Corporativos, em .NET, Flash Platform, Java e PHP.
  • Descrição da palestra: As aplicações RIA revolucionaram o mercado de web nos últimos anos. Você verá alguns exemplos de como explorar o potencial do framework Adobe Flex na construção deste tipo de aplicações interativas, seja para a internet, desktop ou dispositivos móveis como iPhone, Android, etc.
Palestra 02

Palestra: Nunca houve época melhor para desenvolver!

  • Mini currículo: Daniel trabalha com TI a mais de 7 anos (técnico em informática e bacharel em S.I.), é fundador da Area (www.areacriacoes.com.br), empresa especializada em soluções web customizadas e produtos como o Cifras (www.cifrascash.com). Utiliza Ruby e Rails como principais tecnologia e é membro ativo da comunidade brasileira, participando em projetos como os Guias(http://guias.rubyonrails.pro.br) e RailsMG (http://railsmg.org/) além de já ter palestrado em diversos eventos como RailsForKids, Linguágil, FlexForKids e etc. Já treinou quase 250 profissionais nas tecnologias Ruby e Flex além de ser um dos autores do livro teórico de Ruby on Rails da eGenial (http://www.egenial.com.br/cursorails).
  • Descrição da palestra: Estão ocorrendo mudanças rápidas no mercado de tecnologia e as empresas precisam de uma linha diferente de profissionais. Você descobrirá por que nunca houve uma época melhor para investir em desenvolvimento além de aprender o que um freelancer de sucesso, um empresário de TI e um grande desenvolvedor tem em comum.
Palestra 03

Palestra: Métodos ágeis de desenvolvimento de software

  • Mini currículo: André é bacharel em Ciência da Computação e mestre em Engenharia Elétrica, ambos pela PUC-Minas. Atualmente é professor do curso de Sistemas de Informação nas faculdades Cotemig e PUC-Minas. Desde 2006 suas pesquisas concentram-se na área de qualidade de software, sobretudo processos de software, modelos de melhoria e capacitação (CMMI e MPS.Br) e reuso de software. Dentre os assuntos de seu interesse, destacam-se metodologias de desenvolvimento, sobretudo os métodos ágeis de desenvolvimento.
  • Descrição da palestra: Nesta palestra serão abordados alguns pontos chaves de métodos ágeis pautados nos princípios do manifesto ágil. Serão abordados assuntos como XP e Scrum.

Read the rest of this entry »


Maré de Agilidade em BH

A 5ª Edição do evento Maré de Agilidade será em Belo Horizonte

Nos dias 20, 21 e 22 de maio de 2010 , o Maré de Agilidade reunirá na capital de Minas Gerais palestras, mini-cursos e workshops de grandes nomes do seguimento, sempre com o apoio de empresas e instituições de destaque no mercado de metodologias ágeis.

Read the rest of this entry »


Métodos ágeis de desenvolvimento

Este post é uma tradução e adaptação parcial do original Scrum in five minutes

QuestionRESPONDA A SI MESMO AS SEGUINTES PERGUNTAS:

  1. Você quer lidar de forma mais eficiente com as mudanças de requisitos, aumentar a motivação da equipe e melhorar comunicação com o cliente do projeto?
  2. Você está pronto para introduzir uma nova cultura de liderança que irá alterar os papeis e trará uma nova forma de trabalhar transferindo parte da responsabilidade gerente do projeto para a equipe?
  3. Você está disposto a seguir os passos de empresas como a Google, Microsoft e Xerox, que com sucesso remediaram as falhas de seu processo de desenvolvimento de software?

Se você respondeu “SIM” a todas, definitivamente você pode continuar lendo.

Kanban

Read the rest of this entry »


Scrum em cinco minutos

Este post é uma tradução parcial do original Scrum in five minutes

Scrum

SCRUM – project management

O Scrum é um método de gerenciamento de projetos que está se tornando cada vez mais comum na indústria de software. Pequenos grupos constituídos de, no máximo 6-8 pessoas dividem o seu trabalhar em projetos de “mini” que têm uma duração de cerca de um mês durante o qual um número limitado de tarefas detalhadas são resolvidos.

Introdução

Scrum é baseada no que é chamado de Sprint – um esforço concentrado para um período de 30 dias em direção às metas fixadas.

Read the rest of this entry »


Procurar


Edgard Davidson
nova Profissional especialista em engenharia de software e desenvol- vimento de sistemas, professor universitário, coordenador do curso de pós graduação em Engenharia de Software Centrada em Métodos Ágeis ofertado pela UNA, mestrando em Engenharia Elétrica com ênfase em Engenharia de Software, Especialista em Engenharia de Software, Graduado em Sistemas de Informação. Sou sócio da MÉRITA - ENGENHARIA DE SERVIÇOS E SISTEMAS e criei este blog dedicado a assuntos como: desenvolvimento e engenharia de software, opiniões pessoais sobre assuntos pertinentes. Os posts deste blog são escritos sem muito rigor científicos e expressam opiniões exclusivamente minhas

Mérita - Engenharia de Serviços e Sistemas

Curso de Pós Graduação em Engenharia de Software Centrada em Métodos Ágeis

Categorias

Arquivo

Tags

Pagea