SlideShare uma empresa Scribd logo
Letticia Nicoli
Developer
Experience
no Nubank
TDC São Paulo Online - Trilha Flutter
@LetticiaNicoli
Mobile Tools
Build Tools and Releases
app.sli.do/event/srp0rarr
User
Experience
Development
Principles
DX
Developer Experience
● Valor
Entender como realizam seu trabalho e
otimizar essa experiência.
● Usabilidade
Deve trazer uma boa experiência, ser fácil e
funcionar conforme o esperado.
● Automação
Dar fim em tarefas repetitivas, maçantes.
Automatizar processos para focar na criação
de algoritmos e soluções para problemas e
novas funcionalidades.
● Comunicação
Ter uma comunicação próxima, permitir que
contribuam diretamente para essas
prioridades. Interagir com elas e perguntar o
que pensam.
● Boa documentação
Não é dever do cliente adivinhar como um
projeto/ferramenta/processo funciona.
Documentar, irá ajudar na evolução do projeto e
na inclusão de novas pessoas
desenvolvedoras.
● Estabilidade
Sem estabilidade, o produto se torna não
confiável, tornando irrelevante a funcionalidade
"incrível".
Problemas
Código fonte
distribuído
1
Dificuldade no
gerenciamento de
dependências
2
Alterações não
atômicas
3
Monorepo
Estratégia de
desenvolvimento de software
em que o código de muitos
projetos é armazenado no
mesmo repositório.
MONOREPO
● Fonte única de verdade
Todo o código em um só lugar,
incluindo assets, ícones, arquivos de
mock etc.
● Descobertas e colaboração
Compartilhar conhecimento e criar
oportunidades de melhorias. Visibilidade
sobre o que cada time está fazendo.
● Alterações atômicas
Alterações incompatíveis com versões
anteriores são fáceis de
entender/resolver. Um PR único afeta
as alterações em muitos projetos.
● Refatoração
Garantir que cada parte do projeto
continue funcionando após uma
refatoração, mesmo que em grande
escala.
CI/CD TOOL CHANGES
● Versionamento de Pipeline
Versionar as pipelines no mesmo
repositório do aplicativo.
● Várias pipelines no
mesmo repo
Como temos várias plataformas no
mesmo repositório, precisávamos de
vários pipelines.
● Runs paralelas
Devido à quantidade de colaboradores,
precisávamos de runs paralelas (mais
agents disponíveis).
● Auto retry
Um recurso importante para evitar
problemas com flaky tests.
SMART PIPELINES
DYNAMIC PIPELINE
DYNAMIC PIPELINE
BORS
Jenkins main e seus agents estão em
nosso cluster k8s usando a AWS e
virtualizados no Docker.
Usamos o MacStadium e o Ansible
para iOS.
Usamos Prometheus para monitorar e
Splunk para fazer log do Jenkins.
Setup
1
BACKEND + MOBILE
3
CROSS PLATFORM (Linux e MacOS)
2
CONFIGURAÇÃO DAS VERSÕES CORRETAS (IDES, frameworks, simuladores etc)
4 TEMPO TOTAL: ~1 hora
DART
Flutter tools possui
utilitários de build e CLI
interessantes.
Engajar e facilitar
contribuições de todas as
pessoas engenheiras.
MAIN TOOL
COMMANDS
A principal ferramenta
fornecida para ajudar todas
as pessoas engenheiras que
desejam fazer alterações no
monorepo.
Muitos comandos usados
por pessoas engenheiras e
pipelines.
Commands
doctor
Verifica todos os
programas e versões
necessárias para
executar o aplicativo.
--fix para corrigir
problemas de
configuração.
deps get
Gerenciador de
dependências para
Flutter, React, iOS e
Android.
release
Comandos
relacionados ao
Release Management.
Ex.: promover uma
nova versão do
aplicativo.
create feature
Criar nova feature
package em Flutter.
log splunk
Comando para enviar
logs. Utilizado nas
pipelines.
hotfix
Auxilia no processo
de realizar um hotfix
no app.
Pipelines - Release
Participe do nosso
programa Beta Tester
sou.nu/android-beta sou.nu/ios-beta

Mais conteúdo relacionado

Mais procurados

Gestão ágil do portfólio
Gestão ágil do portfólioGestão ágil do portfólio
Gestão ágil do portfólio
Projetos e TI
 
Workshop de Lean Inception
Workshop de Lean InceptionWorkshop de Lean Inception
Workshop de Lean Inception
José Morales
 
Sprint review presentation
Sprint review presentationSprint review presentation
Sprint review presentation
BernhardBoennemann
 
Metodologia agil & fundamentos do Scrum
Metodologia agil & fundamentos do Scrum Metodologia agil & fundamentos do Scrum
Metodologia agil & fundamentos do Scrum
Paula Martins
 
Why do you need a blueprint session?
Why do you need a blueprint session?Why do you need a blueprint session?
Why do you need a blueprint session?
Visual Net Design
 
Jobs-To-Be-Done by C6 Bank Lead Product Designer
Jobs-To-Be-Done by C6 Bank Lead Product DesignerJobs-To-Be-Done by C6 Bank Lead Product Designer
Jobs-To-Be-Done by C6 Bank Lead Product Designer
Product School
 
Discovery kanban
Discovery kanbanDiscovery kanban
Discovery kanban
Taller Negócio Digitais
 
Lean Inception
Lean InceptionLean Inception
Lean Inception
João Grabosque
 
The Three Things You Need to Know to Transform Any Size Organization Into an ...
The Three Things You Need to Know to Transform Any Size Organization Into an ...The Three Things You Need to Know to Transform Any Size Organization Into an ...
The Three Things You Need to Know to Transform Any Size Organization Into an ...
Mike Cottmeyer
 
Technical Product Management at Nubank
Technical Product Management at NubankTechnical Product Management at Nubank
Technical Product Management at Nubank
alexandre freire
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
Payod Soni
 
Nguyen Vu Hung - Software Project Management with Jira Agile
Nguyen Vu Hung - Software Project Management with Jira AgileNguyen Vu Hung - Software Project Management with Jira Agile
Nguyen Vu Hung - Software Project Management with Jira Agile
Vu Hung Nguyen
 
Introduction to Agile Estimation & Planning
Introduction to Agile Estimation & PlanningIntroduction to Agile Estimation & Planning
Introduction to Agile Estimation & Planning
Amaad Qureshi
 
Building Quality In in SAFe – The Testing Organization’s Perspective
Building Quality In in SAFe – The Testing Organization’s Perspective	  Building Quality In in SAFe – The Testing Organization’s Perspective
Building Quality In in SAFe – The Testing Organization’s Perspective
Yuval Yeret
 
Seven Key Metrics to Improve Agile Performance
Seven Key Metrics to Improve Agile PerformanceSeven Key Metrics to Improve Agile Performance
Seven Key Metrics to Improve Agile Performance
TechWell
 
A guide to product metrics by Mixpanel
A guide to product metrics by MixpanelA guide to product metrics by Mixpanel
A guide to product metrics by Mixpanel
Harsha MV
 
O Time Scrum e suas responsabilidades - Papéis do Scrum
O Time Scrum e suas responsabilidades - Papéis do ScrumO Time Scrum e suas responsabilidades - Papéis do Scrum
O Time Scrum e suas responsabilidades - Papéis do Scrum
ScrumHalf Tool
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
Daniel Brandão
 
Lean inception
Lean inceptionLean inception
Lean inception
Mayra de Souza
 
Understand in practice how to prioritize portfolios, projects and products wi...
Understand in practice how to prioritize portfolios, projects and products wi...Understand in practice how to prioritize portfolios, projects and products wi...
Understand in practice how to prioritize portfolios, projects and products wi...
Agile Montréal
 

Mais procurados (20)

Gestão ágil do portfólio
Gestão ágil do portfólioGestão ágil do portfólio
Gestão ágil do portfólio
 
Workshop de Lean Inception
Workshop de Lean InceptionWorkshop de Lean Inception
Workshop de Lean Inception
 
Sprint review presentation
Sprint review presentationSprint review presentation
Sprint review presentation
 
Metodologia agil & fundamentos do Scrum
Metodologia agil & fundamentos do Scrum Metodologia agil & fundamentos do Scrum
Metodologia agil & fundamentos do Scrum
 
Why do you need a blueprint session?
Why do you need a blueprint session?Why do you need a blueprint session?
Why do you need a blueprint session?
 
Jobs-To-Be-Done by C6 Bank Lead Product Designer
Jobs-To-Be-Done by C6 Bank Lead Product DesignerJobs-To-Be-Done by C6 Bank Lead Product Designer
Jobs-To-Be-Done by C6 Bank Lead Product Designer
 
Discovery kanban
Discovery kanbanDiscovery kanban
Discovery kanban
 
Lean Inception
Lean InceptionLean Inception
Lean Inception
 
The Three Things You Need to Know to Transform Any Size Organization Into an ...
The Three Things You Need to Know to Transform Any Size Organization Into an ...The Three Things You Need to Know to Transform Any Size Organization Into an ...
The Three Things You Need to Know to Transform Any Size Organization Into an ...
 
Technical Product Management at Nubank
Technical Product Management at NubankTechnical Product Management at Nubank
Technical Product Management at Nubank
 
Agile methodology
Agile methodologyAgile methodology
Agile methodology
 
Nguyen Vu Hung - Software Project Management with Jira Agile
Nguyen Vu Hung - Software Project Management with Jira AgileNguyen Vu Hung - Software Project Management with Jira Agile
Nguyen Vu Hung - Software Project Management with Jira Agile
 
Introduction to Agile Estimation & Planning
Introduction to Agile Estimation & PlanningIntroduction to Agile Estimation & Planning
Introduction to Agile Estimation & Planning
 
Building Quality In in SAFe – The Testing Organization’s Perspective
Building Quality In in SAFe – The Testing Organization’s Perspective	  Building Quality In in SAFe – The Testing Organization’s Perspective
Building Quality In in SAFe – The Testing Organization’s Perspective
 
Seven Key Metrics to Improve Agile Performance
Seven Key Metrics to Improve Agile PerformanceSeven Key Metrics to Improve Agile Performance
Seven Key Metrics to Improve Agile Performance
 
A guide to product metrics by Mixpanel
A guide to product metrics by MixpanelA guide to product metrics by Mixpanel
A guide to product metrics by Mixpanel
 
O Time Scrum e suas responsabilidades - Papéis do Scrum
O Time Scrum e suas responsabilidades - Papéis do ScrumO Time Scrum e suas responsabilidades - Papéis do Scrum
O Time Scrum e suas responsabilidades - Papéis do Scrum
 
Extreme programming (xp) - Resumo
Extreme programming (xp) - ResumoExtreme programming (xp) - Resumo
Extreme programming (xp) - Resumo
 
Lean inception
Lean inceptionLean inception
Lean inception
 
Understand in practice how to prioritize portfolios, projects and products wi...
Understand in practice how to prioritize portfolios, projects and products wi...Understand in practice how to prioritize portfolios, projects and products wi...
Understand in practice how to prioritize portfolios, projects and products wi...
 

Semelhante a Developer Experience no Nubank

Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
Carlos Wagner Costa
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
Norberto Santos
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
João Carlos Ottobboni
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
Edson Celio
 
Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
Humberto Streb
 
Aula05 - Metodologias Ágeis
Aula05 - Metodologias ÁgeisAula05 - Metodologias Ágeis
Aula05 - Metodologias Ágeis
Daniela Brauner
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
Ramon Durães
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
Carlos Gonzaga
 
Modelagem Ágil
Modelagem ÁgilModelagem Ágil
Modelagem Ágil
Rodrigo Branas
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
Mayara Fernandes
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
Felipe Caputo
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
Daniel Paulo de Assis
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
Roberto Nunes
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Rebecca Betwel
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Marcelo Láias
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
Rodrigo Branas
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
Ruben Marcus Luz Paschoarelli
 
Plano de Projeto de Software do​ Residents Control
Plano de Projeto de Software do​ Residents ControlPlano de Projeto de Software do​ Residents Control
Plano de Projeto de Software do​ Residents Control
azarael2607
 
Scrum 8
Scrum 8Scrum 8
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
Bruno Souza
 

Semelhante a Developer Experience no Nubank (20)

Apresentacao dev ops
Apresentacao dev opsApresentacao dev ops
Apresentacao dev ops
 
Tendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de SoftwareTendências e Dicas para o Desenvolvimento de Software
Tendências e Dicas para o Desenvolvimento de Software
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOpsE se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
 
Docker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entregaDocker, jenkins e gradle para tomar o controle de sua entrega
Docker, jenkins e gradle para tomar o controle de sua entrega
 
Aula05 - Metodologias Ágeis
Aula05 - Metodologias ÁgeisAula05 - Metodologias Ágeis
Aula05 - Metodologias Ágeis
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptx
 
Modelagem Ágil
Modelagem ÁgilModelagem Ágil
Modelagem Ágil
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
Ferramentas case
Ferramentas caseFerramentas case
Ferramentas case
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento ÁgilEngenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Escalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLIDEscalando apps com React e Type Script e SOLID
Escalando apps com React e Type Script e SOLID
 
Plano de Projeto de Software do​ Residents Control
Plano de Projeto de Software do​ Residents ControlPlano de Projeto de Software do​ Residents Control
Plano de Projeto de Software do​ Residents Control
 
Scrum 8
Scrum 8Scrum 8
Scrum 8
 
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
 

Mais de Letticia Nicoli

.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
Letticia Nicoli
 
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Letticia Nicoli
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
Letticia Nicoli
 
O futuro do .NET
O futuro do .NETO futuro do .NET
O futuro do .NET
Letticia Nicoli
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Letticia Nicoli
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
Letticia Nicoli
 
Xamarin + App Center + Azure DevOps = 
Xamarin + App Center + Azure DevOps = Xamarin + App Center + Azure DevOps = 
Xamarin + App Center + Azure DevOps = 
Letticia Nicoli
 
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Letticia Nicoli
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Letticia Nicoli
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Letticia Nicoli
 
Visual Studio App Center - Continuous Everything
Visual Studio App Center - Continuous Everything Visual Studio App Center - Continuous Everything
Visual Studio App Center - Continuous Everything
Letticia Nicoli
 
Write beautiful code, faster
Write beautiful code, fasterWrite beautiful code, faster
Write beautiful code, faster
Letticia Nicoli
 
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.
Como Mobile DevOps me ajudouno sucesso de desenvolvimento de aplicativos.Como Mobile DevOps me ajudouno sucesso de desenvolvimento de aplicativos.
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.
Letticia Nicoli
 
Precisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App CenterPrecisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App Center
Letticia Nicoli
 
Dicas e Truques para aumentar sua produtividade no Visual Studio
Dicas e Truques para aumentar sua produtividade no Visual StudioDicas e Truques para aumentar sua produtividade no Visual Studio
Dicas e Truques para aumentar sua produtividade no Visual Studio
Letticia Nicoli
 
DevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge AcceptedDevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge Accepted
Letticia Nicoli
 
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Letticia Nicoli
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativosMobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Letticia Nicoli
 
Últimas atualizações de produtividade no Visual Studio 2017​
Últimas atualizações de produtividade no Visual Studio 2017​Últimas atualizações de produtividade no Visual Studio 2017​
Últimas atualizações de produtividade no Visual Studio 2017​
Letticia Nicoli
 
Xamarin.Forms: Você já ouviu falar?
Xamarin.Forms: Você já ouviu falar?Xamarin.Forms: Você já ouviu falar?
Xamarin.Forms: Você já ouviu falar?
Letticia Nicoli
 

Mais de Letticia Nicoli (20)

.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?.NET 6: O que há de novo e o que está por vir?
.NET 6: O que há de novo e o que está por vir?
 
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
 
O futuro do .NET
O futuro do .NETO futuro do .NET
O futuro do .NET
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
 
Machine Learning para devs com ML.NET
Machine Learning para devs com ML.NETMachine Learning para devs com ML.NET
Machine Learning para devs com ML.NET
 
Xamarin + App Center + Azure DevOps = 
Xamarin + App Center + Azure DevOps = Xamarin + App Center + Azure DevOps = 
Xamarin + App Center + Azure DevOps = 
 
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
 
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo softwareGeneralização prematura e complexidade acidental, a raiz do mal de todo software
Generalização prematura e complexidade acidental, a raiz do mal de todo software
 
Visual Studio App Center - Continuous Everything
Visual Studio App Center - Continuous Everything Visual Studio App Center - Continuous Everything
Visual Studio App Center - Continuous Everything
 
Write beautiful code, faster
Write beautiful code, fasterWrite beautiful code, faster
Write beautiful code, faster
 
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.
Como Mobile DevOps me ajudouno sucesso de desenvolvimento de aplicativos.Como Mobile DevOps me ajudouno sucesso de desenvolvimento de aplicativos.
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.
 
Precisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App CenterPrecisamos falar sobre Visual Studio App Center
Precisamos falar sobre Visual Studio App Center
 
Dicas e Truques para aumentar sua produtividade no Visual Studio
Dicas e Truques para aumentar sua produtividade no Visual StudioDicas e Truques para aumentar sua produtividade no Visual Studio
Dicas e Truques para aumentar sua produtividade no Visual Studio
 
DevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge AcceptedDevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge Accepted
 
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
 
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativosMobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
 
Últimas atualizações de produtividade no Visual Studio 2017​
Últimas atualizações de produtividade no Visual Studio 2017​Últimas atualizações de produtividade no Visual Studio 2017​
Últimas atualizações de produtividade no Visual Studio 2017​
 
Xamarin.Forms: Você já ouviu falar?
Xamarin.Forms: Você já ouviu falar?Xamarin.Forms: Você já ouviu falar?
Xamarin.Forms: Você já ouviu falar?
 

Developer Experience no Nubank

  • 1. Letticia Nicoli Developer Experience no Nubank TDC São Paulo Online - Trilha Flutter
  • 2. @LetticiaNicoli Mobile Tools Build Tools and Releases app.sli.do/event/srp0rarr
  • 3.
  • 5. Developer Experience ● Valor Entender como realizam seu trabalho e otimizar essa experiência. ● Usabilidade Deve trazer uma boa experiência, ser fácil e funcionar conforme o esperado. ● Automação Dar fim em tarefas repetitivas, maçantes. Automatizar processos para focar na criação de algoritmos e soluções para problemas e novas funcionalidades. ● Comunicação Ter uma comunicação próxima, permitir que contribuam diretamente para essas prioridades. Interagir com elas e perguntar o que pensam. ● Boa documentação Não é dever do cliente adivinhar como um projeto/ferramenta/processo funciona. Documentar, irá ajudar na evolução do projeto e na inclusão de novas pessoas desenvolvedoras. ● Estabilidade Sem estabilidade, o produto se torna não confiável, tornando irrelevante a funcionalidade "incrível".
  • 6.
  • 7. Problemas Código fonte distribuído 1 Dificuldade no gerenciamento de dependências 2 Alterações não atômicas 3
  • 8.
  • 9. Monorepo Estratégia de desenvolvimento de software em que o código de muitos projetos é armazenado no mesmo repositório.
  • 10. MONOREPO ● Fonte única de verdade Todo o código em um só lugar, incluindo assets, ícones, arquivos de mock etc. ● Descobertas e colaboração Compartilhar conhecimento e criar oportunidades de melhorias. Visibilidade sobre o que cada time está fazendo. ● Alterações atômicas Alterações incompatíveis com versões anteriores são fáceis de entender/resolver. Um PR único afeta as alterações em muitos projetos. ● Refatoração Garantir que cada parte do projeto continue funcionando após uma refatoração, mesmo que em grande escala.
  • 11.
  • 12.
  • 13. CI/CD TOOL CHANGES ● Versionamento de Pipeline Versionar as pipelines no mesmo repositório do aplicativo. ● Várias pipelines no mesmo repo Como temos várias plataformas no mesmo repositório, precisávamos de vários pipelines. ● Runs paralelas Devido à quantidade de colaboradores, precisávamos de runs paralelas (mais agents disponíveis). ● Auto retry Um recurso importante para evitar problemas com flaky tests.
  • 17.
  • 18.
  • 19. BORS
  • 20.
  • 21.
  • 22. Jenkins main e seus agents estão em nosso cluster k8s usando a AWS e virtualizados no Docker. Usamos o MacStadium e o Ansible para iOS. Usamos Prometheus para monitorar e Splunk para fazer log do Jenkins.
  • 23.
  • 24. Setup 1 BACKEND + MOBILE 3 CROSS PLATFORM (Linux e MacOS) 2 CONFIGURAÇÃO DAS VERSÕES CORRETAS (IDES, frameworks, simuladores etc) 4 TEMPO TOTAL: ~1 hora
  • 25.
  • 26. DART Flutter tools possui utilitários de build e CLI interessantes. Engajar e facilitar contribuições de todas as pessoas engenheiras. MAIN TOOL COMMANDS A principal ferramenta fornecida para ajudar todas as pessoas engenheiras que desejam fazer alterações no monorepo. Muitos comandos usados por pessoas engenheiras e pipelines.
  • 27. Commands doctor Verifica todos os programas e versões necessárias para executar o aplicativo. --fix para corrigir problemas de configuração. deps get Gerenciador de dependências para Flutter, React, iOS e Android. release Comandos relacionados ao Release Management. Ex.: promover uma nova versão do aplicativo. create feature Criar nova feature package em Flutter. log splunk Comando para enviar logs. Utilizado nas pipelines. hotfix Auxilia no processo de realizar um hotfix no app.
  • 28.
  • 30.
  • 31. Participe do nosso programa Beta Tester sou.nu/android-beta sou.nu/ios-beta