Brian, dono de um aeroclube, quer um sistema de gerenciamento para o seu negócio. Ele pede ajuda a Bregaida, que sugere utilizar DDD, BDD, TDD e Scrum para desenvolver o sistema de forma ágil e iterativa, garantindo que atenda às necessidades do domínio do aeroclube. Bregaida explica os principais conceitos e práticas desses frameworks para desenvolvimento de software.
Async code on kotlin: rx java or/and coroutines - Kotlin Night TurinFabio Collini
It’s never easy to write async code but luckily there are many libraries to manage asynchronicity without adding too much complexity. In the last years RxJava and the other ReactiveX libraries have been very popular but lately there is a new way to manage async code in Kotlin: the coroutines. In this talk we’ll pros and cons of there two approaches and how to leverage them to simplify asynchronous code on Android.
Do they solve the same problem? Can we use them together? Which one can be used to write functional code? How can we use them effectively in Android development?
Spoiler alert: They are both great!
In this talk we’ll see how to solve common problems using RxJava or Coroutines, starting from basic concepts (for example the Retrofit support and how to cancel a task) to some more advanced (like threading, error management and how to combine multiple tasks).
All example of the talk are available on this repository:
https://github.com/fabioCollini/RxJavaVsCoroutines
Cloudera Morphlines is a new open source framework, recently added to the CDK, that reduces the time and skills necessary to integrate, build, and change Hadoop processing applications that extract, transform, and load data into Apache Solr, Apache HBase, HDFS, enterprise data warehouses, or analytic online dashboards.
Terraform in production - experiences, best practices and deep dive- Piotr Ki...PROIDEA
In my presentation I would like to share my experiences about working with Terraform in various infra projects (ECS/Kops/Core-infra types). I'm gonna share what's "common-sense" in deploying projects with terraform with several different approaches (Should I use module? Should I write my own? How to structure repo with code? Terraform in Terraform (kops example)?)
Async code on kotlin: rx java or/and coroutines - Kotlin Night TurinFabio Collini
It’s never easy to write async code but luckily there are many libraries to manage asynchronicity without adding too much complexity. In the last years RxJava and the other ReactiveX libraries have been very popular but lately there is a new way to manage async code in Kotlin: the coroutines. In this talk we’ll pros and cons of there two approaches and how to leverage them to simplify asynchronous code on Android.
Do they solve the same problem? Can we use them together? Which one can be used to write functional code? How can we use them effectively in Android development?
Spoiler alert: They are both great!
In this talk we’ll see how to solve common problems using RxJava or Coroutines, starting from basic concepts (for example the Retrofit support and how to cancel a task) to some more advanced (like threading, error management and how to combine multiple tasks).
All example of the talk are available on this repository:
https://github.com/fabioCollini/RxJavaVsCoroutines
Cloudera Morphlines is a new open source framework, recently added to the CDK, that reduces the time and skills necessary to integrate, build, and change Hadoop processing applications that extract, transform, and load data into Apache Solr, Apache HBase, HDFS, enterprise data warehouses, or analytic online dashboards.
Terraform in production - experiences, best practices and deep dive- Piotr Ki...PROIDEA
In my presentation I would like to share my experiences about working with Terraform in various infra projects (ECS/Kops/Core-infra types). I'm gonna share what's "common-sense" in deploying projects with terraform with several different approaches (Should I use module? Should I write my own? How to structure repo with code? Terraform in Terraform (kops example)?)
Configuration of Spring Boot applications using Spring Cloud Config and Spring Cloud Vault.
Presentation given at the meeting of the Java User Group Freiburg on October 24, 2017
Are you looking to automate your infrastructure but not sure where to start? View this presentation on ‘Getting started with Infrastructure as code’ to learn how to leverage IaC to deploy and manage resources on Azure. You will learn:
• Introduction to IaC
• Develop a simple IaC using Terraform
• Manage the deployed infrastructure using Terraform
View webinar recording at https://www.winwire.com/webinars
Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.
https://thinkcloudly.com/
How to Use Mirroring and Caching to Optimize your Container RegistryDocker, Inc.
Brandon Mitchell, Boxboat + Docker Captain -
How do you make your builds more performant? This talk looks at options to configure caching and mirroring of images that you need to save on bandwidth costs and to keep running even if something goes down upstream.
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Edureka!
( ** DevOps Training: https://www.edureka.co/devops ** )
This Docker Explained PPT will explain to you the fundamentals of Docker with a hands-on. Below are the topics covered in the PPT:
Problems Before Docker
Virtualization vs Containerization
What is Docker?
How does Docker work?
Docker Components
Docker Architecture
Docker Compose & Docker Swarm
Hands-On
Listen up, developers. You are not special. Your infrastructure is not a beautiful and unique snowflake. You have the same tech debt as everyone else. This is a talk about a better way to build and manage infrastructure: Terraform Modules. It goes over how to build infrastructure as code, package that code into reusable modules, design clean and flexible APIs for those modules, write automated tests for the modules, and combine multiple modules into an end-to-end techs tack in minutes.
You can find the video here: https://www.youtube.com/watch?v=LVgP63BkhKQ
Apresentação dedicada para gestores, times e equipes que desejam aprender e praticar técnicas de Feedback, a importância do feedback e como podemos utilizar.
Material aberto e grátis desde que mantenham a originalidade e referências sobre o autor.
In this tutorial on What are Coroutines in Kotlin, you will learn the basics of threads and understand how coroutines work in Kotlin. You'll look at the different features and examples of coroutines. Finally, you'll see a demo of Kotlin Coroutines.
Apostila Linguagens Formais e Autômatos (LFA)Ricardo Terra
1 Revisão
- Conjuntos, relações e funções
- Definições Recursivas
- Indução Matemática -
- Linguagens Formais e Autômatos (LFA)
- Lemas, Teoremas, Corolários, etc.
2 Introdução
- Hierarquia de Chomsky
- Conceitos Básicos
3 Linguagens Regulares
- Conjuntos Regulares
- Expressões Regulares
- Gramáticas Regulares
- Autômatos Finitos
- Autômatos Finitos Determinísticos
- Autômatos Finitos Não-Determinísticos
- Autômatos Finitos Não-Determinísticos com Transições-λ
- Autômatos com Saída
- Máquina de Moore
- Máquinas de Mealy
- Algoritmos de Transformação
- Algoritmos
- Transformação AFND-λ para AFD
- Minimização de AFD
- Transformação de ER para AFND-λ
- Propriedades
- Lema do Bombeamento
4 Linguagens Livres de Contexto
- Gramática Livre de Contexto
- Recursividade
- Árvore de Derivação
- Ambiguidade
- Backus-Nahur Form (BNF)
- Formas Normais
- Transformações de Gramática
- Remoção de recursividade no símbolo inicial
- Eliminação de regras λ
- Eliminação de regras de cadeia
- Remoção de símbolos inúteis (TERM e REACH)
- Forma Normal de Chomsky
- Remoção de recursividade à esquerda
- Forma Normal de Greibach
- Autômatos com Pilha
- Variantes
- Critérios de Aceitação
- Algoritmos de Reconhecimento
- Autômato com Pilha como Reconhecedor
- Autômato com Pilha Descendente
- Algoritmo de Cocke-Younger-Kasami (CYK)
- Algoritmo de Early
- Algoritmos
- Transformação de GLCs para APs
- Transformação de APs para GLCs
- Propriedades
5 Linguagens Sensíveis ao Contexto
- Gramática Sensível ao Contexto
- Autômato Linearmente Limitado
- Teoremas
6 Linguagens Irrestritas
- Gramática Irrestrita
- Teoremas
- Máquinas de Turing
- Variantes
- Teoremas
7 Considerações Finais
- Hierarquia de Chomsky
- Tese de Church-Turing
Introduction to Git/Github - A beginner's guideRohit Arora
Introduction to Git/Github - A beginner's guide
Agenda:
Installing Git
Introduction to Version Control
Git Basics
Creating a new local Git repository
Cloning a Git repository
Making use of Git commit history
Reverting files to previous states
Creating a Github Repository
Adding, Committing & Pushing changes
Branching
Merging Branches
Sending Pull Requests
Conflict Resolution
and 3 Exercises
Configuration of Spring Boot applications using Spring Cloud Config and Spring Cloud Vault.
Presentation given at the meeting of the Java User Group Freiburg on October 24, 2017
Are you looking to automate your infrastructure but not sure where to start? View this presentation on ‘Getting started with Infrastructure as code’ to learn how to leverage IaC to deploy and manage resources on Azure. You will learn:
• Introduction to IaC
• Develop a simple IaC using Terraform
• Manage the deployed infrastructure using Terraform
View webinar recording at https://www.winwire.com/webinars
Helm helps you manage Kubernetes applications — Helm Charts help you define, install, and upgrade even the most complex Kubernetes application.
https://thinkcloudly.com/
How to Use Mirroring and Caching to Optimize your Container RegistryDocker, Inc.
Brandon Mitchell, Boxboat + Docker Captain -
How do you make your builds more performant? This talk looks at options to configure caching and mirroring of images that you need to save on bandwidth costs and to keep running even if something goes down upstream.
Docker Explained | What Is A Docker Container? | Docker Simplified | Docker T...Edureka!
( ** DevOps Training: https://www.edureka.co/devops ** )
This Docker Explained PPT will explain to you the fundamentals of Docker with a hands-on. Below are the topics covered in the PPT:
Problems Before Docker
Virtualization vs Containerization
What is Docker?
How does Docker work?
Docker Components
Docker Architecture
Docker Compose & Docker Swarm
Hands-On
Listen up, developers. You are not special. Your infrastructure is not a beautiful and unique snowflake. You have the same tech debt as everyone else. This is a talk about a better way to build and manage infrastructure: Terraform Modules. It goes over how to build infrastructure as code, package that code into reusable modules, design clean and flexible APIs for those modules, write automated tests for the modules, and combine multiple modules into an end-to-end techs tack in minutes.
You can find the video here: https://www.youtube.com/watch?v=LVgP63BkhKQ
Apresentação dedicada para gestores, times e equipes que desejam aprender e praticar técnicas de Feedback, a importância do feedback e como podemos utilizar.
Material aberto e grátis desde que mantenham a originalidade e referências sobre o autor.
In this tutorial on What are Coroutines in Kotlin, you will learn the basics of threads and understand how coroutines work in Kotlin. You'll look at the different features and examples of coroutines. Finally, you'll see a demo of Kotlin Coroutines.
Apostila Linguagens Formais e Autômatos (LFA)Ricardo Terra
1 Revisão
- Conjuntos, relações e funções
- Definições Recursivas
- Indução Matemática -
- Linguagens Formais e Autômatos (LFA)
- Lemas, Teoremas, Corolários, etc.
2 Introdução
- Hierarquia de Chomsky
- Conceitos Básicos
3 Linguagens Regulares
- Conjuntos Regulares
- Expressões Regulares
- Gramáticas Regulares
- Autômatos Finitos
- Autômatos Finitos Determinísticos
- Autômatos Finitos Não-Determinísticos
- Autômatos Finitos Não-Determinísticos com Transições-λ
- Autômatos com Saída
- Máquina de Moore
- Máquinas de Mealy
- Algoritmos de Transformação
- Algoritmos
- Transformação AFND-λ para AFD
- Minimização de AFD
- Transformação de ER para AFND-λ
- Propriedades
- Lema do Bombeamento
4 Linguagens Livres de Contexto
- Gramática Livre de Contexto
- Recursividade
- Árvore de Derivação
- Ambiguidade
- Backus-Nahur Form (BNF)
- Formas Normais
- Transformações de Gramática
- Remoção de recursividade no símbolo inicial
- Eliminação de regras λ
- Eliminação de regras de cadeia
- Remoção de símbolos inúteis (TERM e REACH)
- Forma Normal de Chomsky
- Remoção de recursividade à esquerda
- Forma Normal de Greibach
- Autômatos com Pilha
- Variantes
- Critérios de Aceitação
- Algoritmos de Reconhecimento
- Autômato com Pilha como Reconhecedor
- Autômato com Pilha Descendente
- Algoritmo de Cocke-Younger-Kasami (CYK)
- Algoritmo de Early
- Algoritmos
- Transformação de GLCs para APs
- Transformação de APs para GLCs
- Propriedades
5 Linguagens Sensíveis ao Contexto
- Gramática Sensível ao Contexto
- Autômato Linearmente Limitado
- Teoremas
6 Linguagens Irrestritas
- Gramática Irrestrita
- Teoremas
- Máquinas de Turing
- Variantes
- Teoremas
7 Considerações Finais
- Hierarquia de Chomsky
- Tese de Church-Turing
Introduction to Git/Github - A beginner's guideRohit Arora
Introduction to Git/Github - A beginner's guide
Agenda:
Installing Git
Introduction to Version Control
Git Basics
Creating a new local Git repository
Cloning a Git repository
Making use of Git commit history
Reverting files to previous states
Creating a Github Repository
Adding, Committing & Pushing changes
Branching
Merging Branches
Sending Pull Requests
Conflict Resolution
and 3 Exercises
Pense fora da caixa: Aplique Agilidade com Domain Driven Design. Você ainda u...Yan Justino
Quem nunca ouviu falar a celebre frase: Meu gerente e a empresa onde eu trabalho não dão importância se estamos aplicando o padrão XYZ. Para a empresa, o que importa é ter o produto no mercado trazendo monetização para a instituição. Essa afirmação tem sua parcela de verdade. A mudança na forma de pensar não tem que partir de fora para dentro e nem de dentro para fora, o que tem que existir é o entendimento do valor curto, médio e longo prazo que essas práticas vão trazer ao projeto. O time precisa voltar seus olhares também para o seu dia a dia. Pense em algo que é divertido, escalável, fácil de manter, tem legibilidade e é fácilmente testado. Pensou? Vamos apresentar caminhos que utilizam Agilidade aplicada ao DDD+BDD+TDD para não aplicarmos mais uma Arquitetura: BOLOVO ou CEBOLA
Get into Functional Programming with ClojureJohn Stevenson
A brief guide on how to think in the way of Functional Programming, using Clojure as the example code.
Covers the main concepts and abstractions within Functional Programming & Clojure
Presented at several conferences and meetup events through 2016, with a video captured via GoPro at CeBIT Developer world 2016 on youtube at:
https://www.youtube.com/watch?v=mEfqULqChZs
Let us explore Java 8 features and start using it in your day to day work. You will be surprised how Java has evolved to become so different yet easy & powerful. In this presentation, we discuss Java 8 Stream API.
http://br.linkedin.com/pub/lorena-lopes/35/a71/b0O Scrum é uma das metodologias mais utilizadas para gerenciamento de projetos e desenvolvimento ágil de software. A apresentação faz parte do Ciclo de Palestras da Inove (www.inoveinformatica.net) e foi elaborada pela analista de sistemas Lorena Lopes (http://br.linkedin.com/pub/lorena-lopes/35/a71/b0)
Apresentação realizada na aula de Engenharia de Software pelos alunos Uriel Juliatti e Gil Gomes Pereira do quarto período de SI - Faculdade Salesiana de Vitória.
Você escuta falar de métodos Agile e se pergunta o que é? Embora muita gente considere uma “modinha”, os métodos ágeis já conquistaram espaço em empresas do mundo todo: desde pequenas Startups a corporações bilionárias.
O SCRUM é um framework que adere aos princípios Agile que encorajam a colabração constante e efetiva de forma a entregar software funcional tão cedo quanto possível e preparar os times para responder rapidamente às mudanças
Gostaria de agradecer ao Danilo Sato, Emmanuel Santana, Luca Bastos, Maciel, Moreira, Luiz Aguiar, Fernando Boaglio (ele tem umas fotos de Kanban muito boas no qual utilizei nessa apresentação), Rodrigo de Toledo e Roberto Nogueira pela ajuda e revisão dos Slides e também gostaria de agradecer toda lista de discussão do Visão Ágil, que me deram muitas dicas e fontes interessantes.
Palestra : Scrum : A arte de fazer o dobro do trabalho na metade do tempo !Ari Amaral
Palestra para público do Fastjob de como usar Scrum para potencializar os seus negócios.
Scrum é apenas para projetos ? Posso usar Scrum fora da área de Software ?
Inspeção, adaptação e transparência, alinhando os valores do Scrum com pensamento sistêmico para aumentar a produtividade nas empresas.
Di 30 de Julho teremos o Curso de Scrum para potencializar os resultados da sua empresa no Fastjob. Inscrições em www.fastjob.com.br
Modelo Espiral de Boehm, prototipação em etapas, RUP - Rational Unified Process, Desenvolvimento Ágil, manifesto ágil, Nossa maior prioridade é satisfazer o cliente, através da entrega adiantada e contínua de software de valor, Envolvimento do cliente, Manter a simplicidade, O que é Scrum, Reunião Diária, Retrospectiva da , Planning Poker
Uma introdução ao SCRUM, palestra nível iniciante que apresenta o framework, seus atores, artefatos e cerimônias.
Sinta-se a vontade para baixar, copiar e distribuir. Apenas cite a fonte.
Palestra apresentada em faculdades por volta de 2012.
PS: Sobre a diferença entre entre Scrum Master e Gerente de Projetos, amadureci muito minha visão sobre isso, se quiser bater um papo, entre em contato.
Neste material tento deixar claro de uma vez por todas como deve ser uma War Room e como é empregado errado no mercado e ao invés de uma prática de motivação juntando as pessoas as empresas conseguem afastar e desmotivar seus profissionais, utilizando as ferramentas de forma certa te garante engajamento e lealdade.
O material é livre e pode ser utilizado mantendo as referências ao autor.
Material dedicado a gestores e times de desenvolvimento de software.
Falhas nos projetos é culpa da Cultura da Empresa e não das metodologias ágeisEduardo Bregaida
Apresentação feita no Encontro Ágil #EA2010 da USP, mostrando pontos falhos na cultura da empresa. Gravação: http://bit.ly/ea2010Bregaida By Suelen Carvalho
16. Pensando...
Classe Aluno
Aluno extends Pessoa
Relatorio em IReport
Java com Spring
Maven
JQuery
Contas a Pagar e Receber
Você já tem um Web Server ou um Web Container para sua
aplicação?
51. -Driven Design
Voltado (driven) totalmente ao problema a ser resolvido (domain)
Ubiquitous Language
Funciona muito bem com Agile
Modelos ricos (não anêmicos)
Nomes importam!
Domain
55. O que é BDD?
• Foca no comportamento do sistema;
• Visando desenvolvimento voltado a testes;
• Usam uma linguagem comum como visto no DDD;
• Beneficia os desenvolvedores e os usuários de negócio;
• Comporta vários cenários;
• Não apenas o que uma determinada função deve fazer;
• Possui aspectos do DDD e conceitos fundamentais do TDD.
56. Como fazer?
• Narrativa/Estória: (Nome)
• Para ( Valor ao Negócio)
• Eu, como (Papel)
• Desejo poder realizar (Funcionalidade)
• Story: …
• In order to …
• As a …
• I want to …
57. Exemplo
• Narrativa/Estória: Cadastrar Alunos
• Para meu sistema de gerenciamento do Aeroclube
• Eu, como funcionário da secretaria
• Desejo poder realizar cadastros de novos alunos no sistema
58. O que mais?
• Cenários: (Nome)
• Dado que (Estado inicial do sistema)
• Quando (Ação a ser realizada)
• Então (O que deve fazer após a ação)
• Scenario: …
• Given a …
• And …
• When …
• Then …
Mais?
59. Exemplo
• Cenário I: Cadastro de Aluno
• Dado que um funcionário selecione a opção Cadastrar Aluno
• Quando clicar no menu
• Então deverá ser aberta a tela com os dados para efetuar o
cadastro do aluno e os botões Salvar e Cancelar.
60.
61. O que é TDD ou Test Driven Development?
• É uma técnica de desenvolvimento de software baseada em um ciclo
curto de repetições;
• Escrevendo seus testes antes de escrever o código de produção;
• Ao escrever primeiro os testes:
• Garantimos uma boa qualidade no código (mínimo de sujeira e códigos
esquecidos que nunca serão utilizados);
• Garantimos o funcionamento do que está sendo implementado;
• Não precisamos saber tudo de uma vez, conforme eu desenvolvo um
teste, crio e implemento as classes que serão utilizadas.
62. TDD - Test Driven Development
• Escreva um teste que falhe;
• Faça-o passar da maneira mais simples possível;
• Refatore o código.
• É conhecido como Ciclo Vermelho-Verde-Refatora (Red-Green-
Refactor).
Mas é muito
fácil
69. Existem dois tipos de Processos:
• Processos Definidos
• Processos Empíricos
70. Processos Definidos
São aqueles que determinam o que deve ser feito, quando e como.
Quem já trabalhou com o “início e fim do projeto” sabe que a
utilização de um processo definido não garante o sucesso.
71. Processos Empíricos
São aqueles que não se conheçam todas as variáveis de entrada
para que possa estabelecer um processo repetível.
O Scrum, parte do princípio que nem todas as características do
produto são conhecidas na análise e que provavelmente os
requisitos mudarão com o passar do tempo.
72. Exemplo do dia a dia
É como dirigir um carro, nunca se traça um destino em que a
chegada é em linha reta, sempre há pequenas correções até seu
destino.
73. Conclusão
Processos empíricos baseados em inspeção e adaptação devem
ser utilizados sempre que os processos definidos não forem
adequados devido a complexidade do projeto.
74. O que é SCRUM?
Processo de desenvolvimento iterativo e incremental que pode ser
aplicado a qualquer produto ou no gerenciamento de qualquer
atividade complexa;
Criado por Jeff Sutherland e Ken Schwaber na década de 90;
76. Product Owner (P.O.)
• Responsável por garantir o Retorno sobre o Investimento (ROI)
• Conhece as necessidades do que precisa ser feito
• Define os itens do Product Backlog
• Prioriza os itens na Sprint Planning Meeting
77. Scrum Master
• Garante o uso da Metodologia
• É um líder e um facilitador
• Precisa tirar da frente qualquer impedimento
78. Time
• Função do SCRUM Team é ser auto-gerenciado
• Define as metas dos Sprints
• Produz com qualidade e valor para o P.O.
80. Product Backlog
• Lista com as funcionalidades para o produto
• O conteúdo é definido pelo P. O.
• Não necessita estar completo
• Com o tempo o Product Backlog cresce ou
diminui dependendo do que o P.O. necessita;
81. Sprint Planning Meeting
• Reunião com o P.O., Scrum Master e Scrum Team
• P.O. descreve as funcionalidades
• A equipe questiona
• No final é gerado o Sprint Backlog
• Scrum Team e o P.O. definirão o objetivo
82. Planning Poker
• Estimar o esforço das funcionalidades
• Números menores mais simples
• Números maiores são mais complexos
• Coringas:
• Café - 15 minutos para uma pausa
• ? - Não foi entendido alguma funcionalidade falada
83. O Sprint
• Funcionalidades escolhidas na Sprint Planning Meeting na Coluna À Fazer
• É definido um prazo para o Sprint (2 ou 4 semanas)
• O prazo é mantido até o final do projeto
• Considera-se finalizado com Sucesso:
• Quando todas as tarefas estiverem na Coluna Finalizado
• Finalizado com falha:
• Quando o tempo estourar (2 semanas por exemplo) e/ou funcionalidades
mal implementadas e sem qualidade
84. Quadro KANBAN
• No quadro é colocado o andamento do Sprint
• Os Post its são importantes
• Se coloridos facilitam a visualização
• Também serve para saber o que está fazendo
• Evitem Softwares para o KANBAN
85.
86. Daily Scrum
• Reunião em Pé de 15 minutos
• Deverá ser respondida apenas 3 perguntas:
• O que você fez ontem?
• O que você fará hoje?
• Há algum impedimento no seu caminho?
• É uma reunião focada
• Não é para resolver problemas
88. Sprint Retrospective
• Ocorre ao final do Sprint
• Utilizado para identificar o que funcionou bem
• Também é utilizado para verificar o que poderia ser melhorado
• E quais ações serão tomadas para melhorá-lo
89. Sprint Review Meeting
• No final de cada Sprint Retrospective é feito um Sprint Review Meeting
• É mostrado o que foi alcançado no Sprint
• Nesta reunião estará o P.O., Scrum Team e Scrum Master
• O mais importante é que o objetivo esteja realizado