0

Debate Entre Especialistas – DevOps e Pipeline

Um debate com a presença de integrantes da equipe de plataforma e arquitetura da DBServer protagonizaram um debate sobre Pipeline e DevOps na disciplina de Tópicos Especiais em Engenharia de Software do curso de Sistemas de Informação na Politécnica da PUCRS.

Este é o quinto Debate Entre Especialistas de 2018/2, após Domain Driven Design (DDD), Behavior Driven Development (BDD), GP + Scrum Master + PMO + Agile Coach, Product Owner (PO) e por último este sobre DevOps e Pipeline.

O material utilizado está em https://www.slideshare.net/secret/spy80GbsPNOnKg.

2

DDD – Debate entre Especialistas 2018/2

Quinta-feira, 11/10 das 19:30 as 21:00, três grandes profissionais, um debate singular sobre DDD (Domain Driven Design) na Escola Politécnica promovido pelo grupo TecnoTalks aqui do TecnoPUC e protagonizado por profissionais da DBServer.

Não foi uma aula, mas um debate entre especialistas, um programa que entra em seu terceiro ano, a cada semestre discutindo temas de interesse da galera de desenvolvimento de software, o Antônio Castro, Fabrício Rissetto e Mauro Leal debateram DDD na prática:

  • O que é DDD? Quando usar/Quando não usar?
  • Quem do time deve adotar?
  • Design Discussions
  • DDD é só conceito ou código?
  • Como transformar linguagem ubíqua em código?
  • Design Estratégico e Tático
  • Lógica de aplicação e domínio
  • Como tratar de forma ágil as refatorações do código com sua evolução ao longo do projeto?
  • DDD com linguagens dinâmicas (Ruby, Python,…)
  • DDD com funcional existe?

Durante o debate, interagindo com o Cinttra Souza,  compartilhei alguns links do Martin Fowler e Eric Evans, o Cinttra um do AgileAndart:

1

11/10 – Debate entre especialistas sobre DDD

É HOJE, quinta-feira, 11/10 das 19:30 as 21:00, três grandes profissionais, um debate sobre DDD (Domain Driven Design) na Escola Politécnica promovido pelo grupo TecnoTalks aqui do TecnoPUC e apoiado pela DBServer.

Não é uma aula, é um debate entre especialistas, um programa que entra em seu terceiro ano, discutindo temas de interesse da galera de desenvolvimento de software, o Antônio, Fabrício e Mauro debaterão temas como:

– O que é DDD? Quando usar/Quando não usar?
– Quem do time deve adotar?
– Design Discussions
– DDD é só conceito ou código?
– Como transformar linguagem ubíqua em código?
– Design Estratégico e Tático
– Lógica de aplicação e domínio
– Como tratar de forma ágil as refatorações do código com sua evolução ao longo do projeto?
– DDD com linguagens dinâmicas (Ruby, Python,…)
– DDD com funcional existe?

https://www.facebook.com/events/873715292819477/

 

A cada semestre rola um programa de Debate Entre Especialistas, convidando não só profissionais de muita experiência para montar um painel ou storytelling sobre um tema de grande interesse, como BDD (Behavior Driven Development), DDD (Domain Driven Design), DevOps e GP em projetos ágeis.

O objetivo é aproximar alunos e profissionais experientes para uma hora de interação, troca de percepções, muito aprendizado vicariante. As contribuições são em 360º, além dos debatedores ou palestrante, a aula é aberta, mesclando alunos com profissionais da comunidade TecnoTalks de empresas do parque TecnoPUC.

Não só em 2018, mas em anos anteriores sempre tive a oportunidade de contar com grandes profissionais, contando com a presença e contribuição do Sr Lincolm Aguiar, Matheus Alagia, Paula Martins, Patrícia Garay, a cada ano conforme o tema e interesse das turmas nas disciplinas de GP e Tópicos Especiais em Engenharia de SW.

Sobre DDD, na apresentação do livro do Evans na Amazon, referência base de quem pratica, temos:

“A comunidade de desenvolvimento de softwares reconhece que a modelagem de domínios é fundamental para o design de softwares. Através de modelos de domínios, os desenvolvedores de software conseguem expressar valiosas funcionalidades e traduzi-las em uma implementação de software que realmente atenda às necessidades de seus usuários. Mas, apesar de sua óbvia importância, existem poucos recursos práticos que explicam como incorporar uma modelagem de domínios eficiente no processo de desenvolvimento de softwares. O Domain-Driven Design atende essa necessidade. Este não é um livro sobre tecnologias específicas. Ele oferece aos leitores uma abordagem sistemática com relação ao domain-driven design, ou DDD, apresentando um conjunto abrangente de práticas ideais de design, técnicas baseadas em experiências e princípios fundamentais que facilitam o desenvolvimento de projetos de software que enfrentam domínios complexos. Reunindo práticas de design e implementação, este livro incorpora vários exemplos baseados em projetos que ilustram a aplicação do design dirigido por domínios no desenvolvimento de softwares na vida real. Com este livro em mãos, desenvolvedores orientados a objetos, analistas de sistema e designers terão a orientação de que precisam para organizar e concentrar seu trabalho, criar modelos de domínio valiosos e úteis, e transformar esses modelos em implementações de software duradouras e de alta qualidade.”

0

Impact Mapping & Example Mapping

Já havia falado sobre Impact Mapping do Gojko Adzic, um consultor estratégico te TI que ganhou o prêmio Jolt Award de melhor livro de 2012. Eleito como o profissional de testes ágeis mais influente em 2011, seu blog ganhou o Agile Award UK pela melhor publicação on-line em 2010.

A questão não é executar a técnica de Impact Mapping ou Example Mapping para construir nossas histórias, mas o quanto exercícios como esse nos ajudam a estabelecer um mindset focado na necessidade, entendendo as personas, para só depois discutir o como e o que.

Pode até mesmo ser usado como um jogo de quebra-gelo ou aquecimento ao propormos um desafio, talvez usando um brainstorming em busca das mais importantes e valorosas necessidades, para quem sabe fazer um rodízio tipo Dojo ou World Café bem dinâmico.

IMPACT MAPPING (Gojko Adzic)

IM-Adzik

No Impact Mapping, partimos sempre de necessidades e desafios, evitando começar por software e contornando o que não precisa ser feito. É preciso entender cada objetivo e alternativa, este é o primeiro passo, depois teremos PDCL, melhoria contínua em ciclos iterativo-incrementais-articulados.

As principais vantagens inerentes a técnicas colaborativas são baseada em comunicação verbal e visual entre todos os envolvidos em tempo real, gerar modelagem consensuada a partir de diferentes prismas e expertises, mitiga ou remove pressupostos inconsistentes e gera forte compromisso e senso de pertença a todos.

Dito isso, técnicas colaborativas e visuais estabelece fortes “pactos” focados em valor real ao cliente, esclarece uma visão estratégica de seus entregáveis, prioriza explicitamente seus critérios de valor e qualidade, tudo sob uma abordagem iterativo-incremental-articulada, permitindo desenvolver-se em camadas.

impact-mapping-for-startups-4-638

1. O que é Impact Mapping?

  • É um mapeamento de escopo e pressupostos de necessidades;
  • Uma técnica colaborativa tal qual uma User Story Mapping;
  • Um mapa que materializa Quem, Como e Valor frente a Objetivos;
  • Entender os porques, a necessidade primária antes da solução;
  • Identificar o que realmente precisa ou não ser feito.

2. Principais Quesitos dos principais entregáveis?

  • WHY? Para cada Objetivo representado como nodo, abriremos um mapa com quem, como e o que deve ser feito para atingi-lo;
  • WHO? A partir dos objetivos, mapeamos as personas que impactam ou são impactadas na busca por estes resultados;
  • HOW? A partir das personas, ações e comportamentos, tentando entender como podem eles impactar o atingimento dos objetivos;
  • WHAT? Finalmente, o que precisa e pode ser feito, qual a solução a ser entregue ou construída.

3. Benefícios e regras dos mapas de impacto?

  • Entendimento das motivações, causas, meios e desejos;
  • Não se preocupa com priorização e cronologia, mas com valor;
  • É iterativo – módulos, funcionalidades ou histórias do usuário;
  • Estabelece desde o início uma linguagem ubiqua com os usuários.

impact-mapping-for-startups-3-638

EXAMPLE MAPPING (Matt Winne)

Winne propôs uma técnica muito poderosa para a modelagem de histórias a partir de necessidades e comportamentos desejados, estabelendo um diálogo colaborativo para estabelecer e confirmar os critérios de aceitação.

Pode ser feito durante o trabalho de construção do DoR (Definition of Ready) de cada história, em reuniões de refinamento ou no planejamento das Sprints. Certo de que esta modelagem gera muito valor agregado, propôs algo que chamou de Example Mapping:

1. Selecione uma história do usuário por vez, quer seja um exercício ou para a definição do DoR (Definition of Ready), pode ser utilizada em um Sprint Planning, pode ter sido previamente debatido em um refinamento;

2. Inicie sempre pelo compartilhamento daquilo que já se sabe, não é uma técnica para envolver gente demais, é uma técnica para o trabalho de modelagem das nossas histórias. Importante é ter diferentes papéis representados para termos múltiplos prismas e conhecimentos;

3. Queremos estabelecer pertença e entendimento, mas se alguma questão não tem resposta ou é polêmica, registre no cartão de pergunta (rosa) e siga adiante. Importante usar textos simples e imagens, algo que incite a o domínio mínimo suficiente da história;

4. A partir da construção do Example Mapping, é possível pedir para um dos presentes ou pares construirem como cenários Gherkin o mapa de uma história. Importante entender que BDD inicia no mapeamento original e colaborativo dos comportamentos, a automação é consequência.

A cada rodada, não esqueça de praticar Kaizen, estabelecendo eventuais lições aprendidas, melhorando a facilitação e a técnica para as próximas.

0

Comece entendendo e delimitando os domínios

Quinta-feira, 19:30 as 21:00, Debate Entre Especialistas sobre DDD (Domain Driven Design) – qual a práticade mercado, acertos e erros, como e por onde começar, como persistir e evoluir.

Ajude compartilhando com sua rede … e se você é um especialista no assunto o convite não é só para assistir, mas esta convidado a agregar seu case e debater com o Antonio Castro, Tiago Totti e Mauro Leal.

Não é um evento teórico, este trio tem muita experiência além de serem estudiosos sobre o assunto – https://www.facebook.com/events/201645133982313/

Na apresentação do livro do Evans na Amazon, referência base de quem pratica, temos:

“A comunidade de desenvolvimento de softwares reconhece que a modelagem de domínios é fundamental para o design de softwares. Através de modelos de domínios, os desenvolvedores de software conseguem expressar valiosas funcionalidades e traduzi-las em uma implementação de software que realmente atenda às necessidades de seus usuários. Mas, apesar de sua óbvia importância, existem poucos recursos práticos que explicam como incorporar uma modelagem de domínios eficiente no processo de desenvolvimento de softwares. O Domain-Driven Design atende essa necessidade. Este não é um livro sobre tecnologias específicas. Ele oferece aos leitores uma abordagem sistemática com relação ao domain-driven design, ou DDD, apresentando um conjunto abrangente de práticas ideais de design, técnicas baseadas em experiências e princípios fundamentais que facilitam o desenvolvimento de projetos de software que enfrentam domínios complexos. Reunindo práticas de design e implementação, este livro incorpora vários exemplos baseados em projetos que ilustram a aplicação do design dirigido por domínios no desenvolvimento de softwares na vida real. Com este livro em mãos, desenvolvedores orientados a objetos, analistas de sistema e designers terão a orientação de que precisam para organizar e concentrar seu trabalho, criar modelos de domínio valiosos e úteis, e transformar esses modelos em implementações de software duradouras e de alta qualidade.”