No Laboratório de Extensão em Desenvolvimento de Software (LEDS) utilizamos algumas das práticas recomendadas pelas metodologias Extreme Programming, SCRUM e prevemos a implantação de outras ainda em estudo. Para apoiar essas práticas um conjunto de ferramentas são necessárias e com isso a necessidade de um ambiente onde pudesse integrar tais tecnologias.
Para isso foi desenvolvido o LedsZeppellin. O LedsZeppellin integra ao todo 11 tecnologias dentre elas o Jenkins (para integração continua), Sonar (Análise Estática de Código), Gitlab (Sistema de Versionamento de Códigos), Taiga (Gerenciamento de Projetos – SCRUM) e Nexus (Sistema de Gerenciamento de Artefatos) dentre outras.
2. 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
3. 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.
4. 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
5. 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.
6. 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
7. 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
8. 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.
9. 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
10.
11. 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.
12. 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].
13. 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.
14. 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].
15. 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.
16. 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.
17. 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.
18. 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
19. 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
20. O que é?
Extreme Programming (XP) é uma metodologia ágil de
desenvolvimento de software, nascida nos Estados Unidos ao final
da década de 90.
21. 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
22. 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.
23. 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!
24. 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
25. 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
26. 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.
27. 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.
28. 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
29.
30. 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