Metodologia agil no desenvolvimento criativo de software
1. METODOLOGIA ÁGIL NO DESENVOLVIMENTO
CRIATIVO DE SOFTWARES
PROF. ME. FABIO GOMES ROCHA
2. QUEM SOU EU?
Professor da Unit a 5 anos
+23 anos de experiência (mercado) e 22 como professor
Scrum Master e Scrum Master Professional – Scrum Alliance
Certificado Exin ISO 27001 Foundation
Membro da Scrum Alliance a 6 anos
Mestre em Ciências da Computação - UFS
Líder do GPITIC
Líder do Agile Sergipe
3. AGILE PROMOVE A CRIATIVIDADE?
Ser criativo é "think outside the box / pensar fora da caixa", ou seja, pensar de forma diferente.
“Agile acolhe a incerteza e a criatividade, criando um ciclo de entregas constantes e um processo de
aprendizagem continua para a equipe”
Promove assim:
Desenvolvimento de forma mais divertida;
Produtividade para a equipe cerca de 5x a10x (Joe Little);
OK, você acreditaria ser 2 vezes mais produtivo no primeiro ano ... se você remover ativamente
impedimentos. (Joe Little)
6. MITOS SOBRE AGILE
É um mito que ... Ágil:
É uma bala de prata
Vai resolver meus problemas de recursos
Não tem planejamento / documentação / arquitetura
Não se baseia na minha experiência e experiência anteriores
É indisciplinado (Cowboy Agile)
Cria problemas de qualidade
É novo e não comprovado (Scrum criado em 1993)
Não está sendo usado por líderes do setor
7. MANIFESTO ÁGIL: VALORES
Indivíduos e
interações mais
que processos e
ferramentas
01
Software
funcionando mais
que documentação
abrangente;
02
Colaboração com
o cliente mais que
negociação de
contratos;
03
Responder a
mudanças mais
que seguir um
plano
04
8. TIMES SCRUM
Scrum Master, Product Owner, Time;
Autogestão é a chave da criatividade no Agile, assim, não há um gerente como em outros métodos, mas
um líder servidor que é o Scrum Master.
9. TIMES XP
Cliente (função similar ao Product
Owner no Scrum)
Papeis do TIME
• Desenvolvedor;
• Testador;
• Treinador;
• Rastreador;
• Consultor;
• O Chefão
10. MANIFESTO ÁGIL: OS 12 PRINCÍPIOS ÁGEIS
Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.
Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o
cliente possa tirar vantagens competitivas.
Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais
curtos.
Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do
projeto.
Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu
trabalho.
O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de
uma conversa cara a cara.
Software funcional é a medida primária de progresso.
Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de
manter indefinidamente, passos constantes.
Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.
As melhores arquiteturas, requisitos e designs emergem de times auto organizáveis.
Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de
acordo.
12. EMPRESAS QUE USAM AGILE
Bank of America
Wells Fargo / Wachovia
Salesforce.com
State Farm
Vanguard Group
BMC Software
Nokia
DELL
HP
Google
Yahoo
Systematics
PatientKeeper
GSK
IBM
McKinsey
US Navy
15. TÉCNICAS ÁGEIS
Segundo Kent Beck, criador do XP, para que seja possível manter a qualidade e fazer entregas constantes é necessário trocar as
técnicas tradicionais, empregando testes integrados e refatoração.
17. SCRUM COM
PRÁTICAS XP:
PROCESSO E
PRÁTICA ÁGIL
“Longas jornadas de trabalho aumentam os riscos de acidentes, os níveis de estresse e provocam até dor física.” BBC,
2018
18. MICROSERVIÇO
Netflix, Twitter, Amazon,
eBay e Uber abandonaram
aplicações monolíticas e
adoraram microserviço.
(Fowler, 2017)
O que é um microserviço?
É uma pequena aplicação
que executa uma única
tarefa e o faz de forma
eficiente. Assim, um
microserviço é um pequeno
componente que pode ser
facilmente substituído, e é
desenvolvido e implantado
de forma independente.
21. OS 12 PRINCÍPIOS ÁGEIS
Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor.
Aceitar mudanças de requisitos, mesmo no fim do desenvolvimento. Processos ágeis se adequam a mudanças, para que o
cliente possa tirar vantagens competitivas.
Entregar software funcionando com frequência, na escala de semanas até meses, com preferência aos períodos mais
curtos.
Pessoas relacionadas à negócios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do
projeto.
Construir projetos ao redor de indivíduos motivados. Dando a eles o ambiente e suporte necessário, e confiar que farão seu
trabalho.
O Método mais eficiente e eficaz de transmitir informações para, e por dentro de um time de desenvolvimento, é através de
uma conversa cara a cara.
Software funcional é a medida primária de progresso.
Processos ágeis promovem um ambiente sustentável. Os patrocinadores, desenvolvedores e usuários, devem ser capazes de
manter indefinidamente, passos constantes.
Contínua atenção à excelência técnica e bom design, aumenta a agilidade.
Simplicidade: a arte de maximizar a quantidade de trabalho que não precisou ser feito.
As melhores arquiteturas, requisitos e designs emergem de times auto organizáveis.
Em intervalos regulares, o time reflete em como ficar mais efetivo, então, se ajustam e otimizam seu comportamento de
acordo.
23. COMO POSSO ME ADEQUAR?
Assuma a responsabilidade;
Não cause danos;
Aprenda a trabalhar em equipe;
Estabeleça ritmo;
Utilize as técnicas ágeis (BDD, TDD, DDD e o que tiver mais de D );
Considere participar e organizar DOJO´s;
Gerencie seu tempo;
Utilize o Pomodoro para praticar;
Aprenda a estimar;
Aprenda as ferramentas. (Scrumme, Trello, Git, Github, Cucumber, xUnit, etc)