SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
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

Google Design sprint
Google Design sprintGoogle Design sprint
Google Design sprintBruno Mendes
 
Guia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterGuia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterPaulo Lomanto
 
Kanban Method Lean Kanban University
Kanban Method Lean Kanban UniversityKanban Method Lean Kanban University
Kanban Method Lean Kanban Universitynetmind
 
Controlled Experimentation aka A/B Testing for PMs by Tinder Sr PM
Controlled Experimentation aka A/B Testing for PMs by Tinder Sr PMControlled Experimentation aka A/B Testing for PMs by Tinder Sr PM
Controlled Experimentation aka A/B Testing for PMs by Tinder Sr PMProduct School
 
Lean UX + UX Strat, from UX Strat conference, September 2013
Lean UX + UX Strat, from UX Strat conference, September 2013Lean UX + UX Strat, from UX Strat conference, September 2013
Lean UX + UX Strat, from UX Strat conference, September 2013Joshua Seiden
 
Innovations Accelerated - Design Sprint
Innovations Accelerated - Design SprintInnovations Accelerated - Design Sprint
Innovations Accelerated - Design SprintEryk Korfel
 
UX STRAT Online 2020: Dr. Martin Tingley, Netflix
UX STRAT Online 2020: Dr. Martin Tingley, NetflixUX STRAT Online 2020: Dr. Martin Tingley, Netflix
UX STRAT Online 2020: Dr. Martin Tingley, NetflixUX STRAT
 
Think Like A Growth Hacker
Think Like A Growth HackerThink Like A Growth Hacker
Think Like A Growth HackerTim Homuth
 
Staying on target with IBM Design Thinking and Lean UX
Staying on target with IBM Design Thinking and Lean UXStaying on target with IBM Design Thinking and Lean UX
Staying on target with IBM Design Thinking and Lean UXAriadna Font Llitjos
 
Startup Metrics, a love story. All slides of an 6h Lean Analytics workshop.
Startup Metrics, a love story. All slides of an 6h Lean Analytics workshop.Startup Metrics, a love story. All slides of an 6h Lean Analytics workshop.
Startup Metrics, a love story. All slides of an 6h Lean Analytics workshop.Andreas Klinger
 
A/B Testing for New Product Launches by Booking.com Sr PM
A/B Testing for New Product Launches by Booking.com Sr PMA/B Testing for New Product Launches by Booking.com Sr PM
A/B Testing for New Product Launches by Booking.com Sr PMProduct School
 
Design Thinking & Agile Innovation Workshop
Design Thinking & Agile Innovation WorkshopDesign Thinking & Agile Innovation Workshop
Design Thinking & Agile Innovation WorkshopJosef Scherer
 
An Agile Development Primer
An Agile Development PrimerAn Agile Development Primer
An Agile Development PrimerDerek Winter
 
User Research Interviews: All you need to know
User Research Interviews: All you need to knowUser Research Interviews: All you need to know
User Research Interviews: All you need to knowNorthern User Experience
 
Prioritization Techniques for Agile Teams
Prioritization Techniques for Agile TeamsPrioritization Techniques for Agile Teams
Prioritization Techniques for Agile TeamsTarang Baxi
 
Agile game development with Scrum
Agile game development with ScrumAgile game development with Scrum
Agile game development with ScrumDamir Matas
 

Mais procurados (20)

Paradigmas da comunicação IHC
Paradigmas da comunicação IHCParadigmas da comunicação IHC
Paradigmas da comunicação IHC
 
WTF is a Product Roadmap?
WTF is a Product Roadmap?WTF is a Product Roadmap?
WTF is a Product Roadmap?
 
Google Design sprint
Google Design sprintGoogle Design sprint
Google Design sprint
 
Guia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum MasterGuia do Papel e Responsabilidade do Scrum Master
Guia do Papel e Responsabilidade do Scrum Master
 
Kanban Method Lean Kanban University
Kanban Method Lean Kanban UniversityKanban Method Lean Kanban University
Kanban Method Lean Kanban University
 
Controlled Experimentation aka A/B Testing for PMs by Tinder Sr PM
Controlled Experimentation aka A/B Testing for PMs by Tinder Sr PMControlled Experimentation aka A/B Testing for PMs by Tinder Sr PM
Controlled Experimentation aka A/B Testing for PMs by Tinder Sr PM
 
Lean UX + UX Strat, from UX Strat conference, September 2013
Lean UX + UX Strat, from UX Strat conference, September 2013Lean UX + UX Strat, from UX Strat conference, September 2013
Lean UX + UX Strat, from UX Strat conference, September 2013
 
Innovations Accelerated - Design Sprint
Innovations Accelerated - Design SprintInnovations Accelerated - Design Sprint
Innovations Accelerated - Design Sprint
 
UX STRAT Online 2020: Dr. Martin Tingley, Netflix
UX STRAT Online 2020: Dr. Martin Tingley, NetflixUX STRAT Online 2020: Dr. Martin Tingley, Netflix
UX STRAT Online 2020: Dr. Martin Tingley, Netflix
 
Think Like A Growth Hacker
Think Like A Growth HackerThink Like A Growth Hacker
Think Like A Growth Hacker
 
Staying on target with IBM Design Thinking and Lean UX
Staying on target with IBM Design Thinking and Lean UXStaying on target with IBM Design Thinking and Lean UX
Staying on target with IBM Design Thinking and Lean UX
 
Startup Metrics, a love story. All slides of an 6h Lean Analytics workshop.
Startup Metrics, a love story. All slides of an 6h Lean Analytics workshop.Startup Metrics, a love story. All slides of an 6h Lean Analytics workshop.
Startup Metrics, a love story. All slides of an 6h Lean Analytics workshop.
 
Design Sprint Workshop
Design Sprint WorkshopDesign Sprint Workshop
Design Sprint Workshop
 
A/B Testing for New Product Launches by Booking.com Sr PM
A/B Testing for New Product Launches by Booking.com Sr PMA/B Testing for New Product Launches by Booking.com Sr PM
A/B Testing for New Product Launches by Booking.com Sr PM
 
Lean UX Workshop
Lean UX WorkshopLean UX Workshop
Lean UX Workshop
 
Design Thinking & Agile Innovation Workshop
Design Thinking & Agile Innovation WorkshopDesign Thinking & Agile Innovation Workshop
Design Thinking & Agile Innovation Workshop
 
An Agile Development Primer
An Agile Development PrimerAn Agile Development Primer
An Agile Development Primer
 
User Research Interviews: All you need to know
User Research Interviews: All you need to knowUser Research Interviews: All you need to know
User Research Interviews: All you need to know
 
Prioritization Techniques for Agile Teams
Prioritization Techniques for Agile TeamsPrioritization Techniques for Agile Teams
Prioritization Techniques for Agile Teams
 
Agile game development with Scrum
Agile game development with ScrumAgile game development with Scrum
Agile game development with Scrum
 

Semelhante a Developer Experience no Nubank

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 SoftwareNorberto Santos
 
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 DevOpsEdson 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 entregaHumberto Streb
 
Aula05 - Metodologias Ágeis
Aula05 - Metodologias ÁgeisAula05 - Metodologias Ágeis
Aula05 - Metodologias ÁgeisDaniela Brauner
 
Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Keynote Visual Studio Summit 2016
Keynote Visual Studio Summit 2016Ramon Durães
 
Testes automatizados.pptx
Testes automatizados.pptxTestes automatizados.pptx
Testes automatizados.pptxCarlos Gonzaga
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiFelipe Caputo
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiMayara Fernandes
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto 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 ÁgilRebecca Betwel
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingMarcelo Láias
 
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 Controlazarael2607
 
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-122Bruno 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
 
Desconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em DelphiDesconstruindo monolitos - Construindo microservicos em Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
 
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos DelphiTDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos 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.NETLetticia 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.NETLetticia 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 softwareLetticia 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, fasterLetticia 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 CenterLetticia 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 StudioLetticia Nicoli
 
DevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge AcceptedDevOps aplicado a Mobile: Challenge Accepted
DevOps aplicado a Mobile: Challenge AcceptedLetticia 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 aplicativosLetticia 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