leds zeppellin infraestrutura de apoio ao desenvolvimento
TRANSCRIPT
Infraestrutura de apoio ao Desenvolvimento e Gestão de Projetos de Software
Diego Pasti
Parte I – Contexto
Sobre o LEDS
Inovações.. Como?!
Um pouco de Agilidade
Parte II – Metodologias
Manifesto Ágil
Extreme Programming
Scrum
Outras Metodologias
Parte III – Infraestrutura
Taiga
Maven
Gitlab
Jenkins
Sonar
Nexus
Tomcat
O Laboratório de Extensão em Desenvolvimento de Sistemas (LEDS) é um ambiente experimental e multidisciplinar, que integra discentes e docentes com o objetivo de criar uma ponte entre a teoria e prática, propiciando o aprendizado e a inovação.
Parte I – Contexto
Sobre o LEDS
Inovações.. Como?!
Um pouco de Agilidade
Parte II – Metodologias
Manifesto Ágil
Extreme Programming
Scrum
Outras Metodologias
Parte III – Infraestrutura
Taiga
Maven
Gitlab
Jenkins
Sonar
Nexus
Tomcat
Como entregar Softwares melhores e mais rapidamente?
Existe uma pressão muito grande no mercado de software. Com clientes cada vez mais exigentes e demandas cada vez mais complexas.
Existe uma distancia sobre o que se aprende em sala de aula e o que se tem no mercado de trabalho. No laboratório os alunos são incentivados a buscarem soluções inovadoras e atuais, alinhada com as novidades da tecnologia de forma a reduzir essa distancia.
Uma dessas soluções é a adoção de metodologias de desenvolvimento que considerem melhor as especificidades da realidade desse mercado
Parte I – Contexto
Sobre o LEDS
Inovações.. Como?!
Um pouco de Agilidade
Parte II – Metodologias
Manifesto Ágil
Extreme Programming
Scrum
Outras Metodologias
Parte III – Infraestrutura
Taiga
Maven
Gitlab
Jenkins
Sonar
Nexus
Tomcat
Entregar software de melhor qualidade, com prazos e recursos cada vez menores tem sido um desafio para muitas empresa em resposta as novas e crescentes demandas.
Parte I – Contexto
Sobre o LEDS
Inovações.. Como?!
Um pouco de Agilidade
Parte II – Metodologias
Manifesto Ágil
Extreme Programming
Scrum
Outras Metodologias
Parte III – Infraestrutura
Taiga
Maven
Gitlab
Jenkins
Sonar
Nexus
Tomcat
O que é?
O Manifesto Ágil é uma declaração de princípios que fundamentam o desenvolvimento de software. Divulgado em 2001, declarava uma
nova forma de entender projetos que lidam diariamente com imprecisão e imprevisibilidade.
Porquê?
No início da década de 90, desenvolvedores se uniram para propor novas metodologias que atendesse melhor as demandas do mercado, cujas metodologias tradicionais não vinham atendendo de forma satisfatória [PÁDUA FILHO, 2009].
Pra quê?
Acelerar o desenvolvimento do software visando a melhoria contínua do processo, gerando benefícios como o aumento da comunicação e interação da equipe, organização diária para o alcance da meta definida, evitar falhas na elaboração, respostas rápidas às mudanças e aumento significativo da produtividade.
Valores:
Indivíduos e interação entre eles mais que processos e ferramentas.
Software em funcionamento mais do que documentação abrangente.
Colaboração com o cliente mais do que negociação de contratos.
Responder às mudanças mais do que seguir um plano [LUNA, COSTA, MOURA, 2011].
Princípios:
P1 – A prioridade é a satisfação do cliente, mediante o rápido e contínuo fornecimento de software que agregue um valor ao negócio.
P2 – As mudanças são bem-vindas, mesmo no final do desenvolvimento, principalmente se as alterações darão vantagem competitiva para os nossos clientes.
P3 – Fazer entregas frequentes de software que funcionem a partir de um par de semanas a um par de meses, sempre procurando o menor intervalo de tempo entre as entregas.
Princípios:
P4 – As pessoas de negócio (executivos) e os desenvolvedores devem trabalhar juntos diariamente e ao longo de todo o projeto.
P5 – Construir o projeto em torno de indivíduos motivados. Fornecer todo apoio necessário ao ambiente do projeto e confiar plenamente na equipe.
P6 – O diálogo face a face é a mais eficiente e eficaz forma de comunicar as informações dentro da equipe de desenvolvimento.
Princípios:
P7 – Software que funciona é a principal medida de progresso.
P8 – Os processos ágeis promovem um desenvolvimento sustentável. Os promotores, usuários e desenvolvedores devem ser capazes de manter um ritmo de trabalho constante por tempo indeterminado.
P9 – A atenção contínua à qualidade técnica e ao bom design melhora a agilidade.
Princípios:
P10 – A simplicidade é essencial. É preciso saber
maximizar o trabalho que não deve ser feito.
P11 – As melhores arquiteturas, requisitos e desenhos surgem a partir da própria equipe através de sua pró-atividade e auto-organização (inteligência coletiva e colaborativa).
P12 – Em intervalos regulares, a equipe deve refletir sobre como se tornar mais eficaz, e ajustar o seu comportamento para alcançar este objetivo
Parte I – Contexto
Sobre o LEDS
Inovações.. Como?!
Um pouco de Agilidade
Parte II – Metodologias
Manifesto Ágil
Extreme Programming
Scrum
Outras Metodologias
Parte III – Infraestrutura
Taiga
Maven
Gitlab
Jenkins
Sonar
Nexus
Tomcat
O que é?
Extreme Programming (XP) é uma metodologia ágil de desenvolvimento de software, nascida nos Estados Unidos ao final da década de 90.
Porque usar?
A metodologia Extreme Programming é uma resposta às novas e crescentes demandas do mercado por software, onde entregar o produto melhor e mais rápido tem sido uma necessidade, e atender essa demanda com as metodologias tradicionais eram completamente inviáveis.
Pra quê serve?
Ajudar a criar sistemas de melhor qualidade, que são produzidos em menos tempo e de forma mais econômica que o habitual
Quando usar? •Projetos cujos requisitos são vagos e mudam com frequência; •Desenvolvimento de sistemas orientados a objeto; •Equipes pequenas, preferencialmente até 12 desenvolvedores; •Desenvolvimento incremental (ou iterativo), onde o sistema começa a ser implementado logo no início do projeto e vai ganhando novas funcionalidades ao longo do tempo.
Valores: Feedback, Comunicação, Simplicidade e Coragem.
Quando o cliente é envolvido no processo de desenvolvimento ele aprende com o sistema e realimenta a equipe com alterações sobre a sua real necessidade.
A comunicação é fundamental seja entre e o cliente e a equipe e dentro da equipe em si.
Não gastar tempo tentando prever o futuro, pois dificilmente acertará. Gaste o tempo para atender de forma objetiva o que o cliente quer hoje, pois ele pode não querer aquilo mais no futuro a medida que vai aprendendo sobre sua necessidade.
Coragem.. Isso funciona!
Princípios:
Cliente Presente
Jogo do Planejamento (Trabalhar no que é mais importante pro cliente..)
Stand Up Meeting (Reunião em pé)
Programação em Par
Desenvolvimento Guiado pelos Testes
Refactoring
Código Coletivo
Código Padronizado
Design Simples
Metáfora
Ritmo Sustentável
Integração Contínua
Releases Curtos
Parte I – Contexto
Sobre o LEDS
Inovações.. Como?!
Um pouco de Agilidade
Parte II – Metodologias
Manifesto Ágil
Extreme Programming
Scrum
Outras Metodologias
Parte III – Infraestrutura
Taiga
Maven
Gitlab
Jenkins
Sonar
Nexus
Tomcat
O que é?
É um framework de gestão de projetos de software que seguem a metodologia ágil.
Porque usar?
Novas formas de se desenvolver software exigem novas formas de se gerenciá-los.
Como usar?
As tarefas de um projeto devem ser listados e priorizados pelo cliente gerando uma lista de tarefas (Product Backlog) e a sua realização é feita em etapas (Sprints) de curto prazo. São feitas reuniões diárias para avaliar o progresso, e reunião ao fim de cada etapa pra apresentar os resultados obtidos.
Parte I – Contexto
Sobre o LEDS
Inovações.. Como?!
Um pouco de Agilidade
Parte II – Metodologias
Manifesto Ágil
Extreme Programming
Scrum
Outras Metodologias
Parte III – Infraestrutura
Taiga
Maven
Gitlab
Jenkins
Sonar
Nexus
Tomcat
Parte I – Contexto
Sobre o LEDS
Inovações.. Como?!
Um pouco de Agilidade
Parte II – Metodologias
Manifesto Ágil
Extreme Programming
Scrum
Outras Metodologias
Parte III – Infraestrutura
Taiga
Maven
Gitlab
Jenkins
Sonar
Nexus
Tomcat
FIM
Email: [email protected]