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
Developer Experience no Nubank
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".
Developer Experience no Nubank
Problemas
Código fonte
distribuído
1
Dificuldade no
gerenciamento de
dependências
2
Alterações não
atômicas
3
Developer Experience no Nubank
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.
Developer Experience no Nubank
Developer Experience no Nubank
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
Developer Experience no Nubank
Developer Experience no Nubank
BORS
Developer Experience no Nubank
Developer Experience no Nubank
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.
Developer Experience no Nubank
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
Developer Experience no Nubank
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.
Developer Experience no Nubank
Pipelines - Release
Developer Experience no Nubank
Participe do nosso
programa Beta Tester
sou.nu/android-beta sou.nu/ios-beta

Mais conteúdo relacionado

PDF
High Concurrency Architecture at TIKI
PDF
Datomic - Lidando com dados de maneira versionada
DOCX
Technology Strategy Template
PDF
Evoluindo a Plataforma de Dados do Nubank TDC SP 2019
PDF
Data Science em uma instituição financeira moderna
PDF
Grokking TechTalk #33: High Concurrency Architecture at TIKI
PPT
Software Development Company 
PDF
User Stories for Agile Requirements
High Concurrency Architecture at TIKI
Datomic - Lidando com dados de maneira versionada
Technology Strategy Template
Evoluindo a Plataforma de Dados do Nubank TDC SP 2019
Data Science em uma instituição financeira moderna
Grokking TechTalk #33: High Concurrency Architecture at TIKI
Software Development Company 
User Stories for Agile Requirements

Mais procurados (20)

PDF
Function Mesh for Apache Pulsar, the Way for Simple Streaming Solutions
PPTX
Azure Infrastructure as Code and Hashicorp Terraform
PDF
Arquitetando uma instituição financeira moderna - Lucas Cavalcanti
PDF
IT Transformation Initiatives PowerPoint Presentation Slides
PDF
클라우드 네이티브로의 전환을 위한 여정
PDF
Fact-based Transformation at TUI
PDF
Salesforce crm projects
PDF
Application Portfolio Management Webinar
PDF
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
PDF
STRATEGIE - Guide de survie en Business Architecture n°3
PPTX
How Salesforce CRM Improves Your Sales Pipeline?
PDF
Introduction Dynamics 365 CRM
PDF
Building Bizweb Microservices with Docker
PDF
Microsoft Dynamics 365
PPTX
DevOps Engineer Day-to-Day Activities
PPTX
Microsoft Power Apps 101 : Build your application with power apps
PDF
Microsoft Dynamics 365 and why you need it NOW!
PDF
Thiết kế hệ thống E-Commerce yêu cầu mở rộng
PDF
Business Processes Definition
PPTX
SAP Reference Architecture based on LeanIX
Function Mesh for Apache Pulsar, the Way for Simple Streaming Solutions
Azure Infrastructure as Code and Hashicorp Terraform
Arquitetando uma instituição financeira moderna - Lucas Cavalcanti
IT Transformation Initiatives PowerPoint Presentation Slides
클라우드 네이티브로의 전환을 위한 여정
Fact-based Transformation at TUI
Salesforce crm projects
Application Portfolio Management Webinar
Developing event-driven microservices with event sourcing and CQRS (svcc, sv...
STRATEGIE - Guide de survie en Business Architecture n°3
How Salesforce CRM Improves Your Sales Pipeline?
Introduction Dynamics 365 CRM
Building Bizweb Microservices with Docker
Microsoft Dynamics 365
DevOps Engineer Day-to-Day Activities
Microsoft Power Apps 101 : Build your application with power apps
Microsoft Dynamics 365 and why you need it NOW!
Thiết kế hệ thống E-Commerce yêu cầu mở rộng
Business Processes Definition
SAP Reference Architecture based on LeanIX
Anúncio

Semelhante a Developer Experience no Nubank (20)

PDF
Apresentacao dev ops
PPTX
Tendências e Dicas para o Desenvolvimento de Software
PDF
Extreme programming (xp)
PPTX
E se ao invés de Dev e Ops for DevOps? Uma introdução a cultura DevOps
PDF
Docker, jenkins e gradle para tomar o controle de sua entrega
PDF
Aula05 - Metodologias Ágeis
PPTX
Keynote Visual Studio Summit 2016
PPTX
Testes automatizados.pptx
PPTX
Modelagem Ágil
PDF
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
PPTX
Desconstruindo monolitos - Construindo microservicos em Delphi
PPTX
Ferramentas case
PPTX
Fundamentos Engenharia de Software.pptx
PDF
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
PDF
XP - Extreme Programming
PPTX
Domain-Driven Design
PDF
Escalando apps com React e Type Script e SOLID
PDF
Plano de Projeto de Software do​ Residents Control
PDF
ODP
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
Apresentacao dev ops
Tendências e Dicas para o Desenvolvimento de Software
Extreme programming (xp)
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
Aula05 - Metodologias Ágeis
Keynote Visual Studio Summit 2016
Testes automatizados.pptx
Modelagem Ágil
TDCPOA2018 - Trilha Delphi - Desconstruindo Monolitos Delphi
Desconstruindo monolitos - Construindo microservicos em Delphi
Ferramentas case
Fundamentos Engenharia de Software.pptx
Engenharia de software aula 6 - Introdução ao Desenvolvimento Ágil
XP - Extreme Programming
Domain-Driven Design
Escalando apps com React e Type Script e SOLID
Plano de Projeto de Software do​ Residents Control
ALM Open Source Ponta a Ponta - Minicurso Globalcode MC-122
Anúncio

Mais de Letticia Nicoli (20)

PDF
.NET 6: O que há de novo e o que está por vir?
PDF
Generalização prematura e complexidade acidental, a raiz do mal de todo sof...
PDF
Machine Learning para devs com ML.NET
PDF
O futuro do .NET
PDF
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
PDF
Machine Learning para devs com ML.NET
PDF
Xamarin + App Center + Azure DevOps = 
PDF
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
PDF
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
PDF
Generalização prematura e complexidade acidental, a raiz do mal de todo software
PDF
Visual Studio App Center - Continuous Everything
PDF
Write beautiful code, faster
PPTX
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.
PPTX
Precisamos falar sobre Visual Studio App Center
PDF
Dicas e Truques para aumentar sua produtividade no Visual Studio
PDF
DevOps aplicado a Mobile: Challenge Accepted
PDF
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
PDF
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
PDF
Últimas atualizações de produtividade no Visual Studio 2017​
PDF
Xamarin.Forms: Você já ouviu falar?
.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...
Machine Learning para devs com ML.NET
O futuro do .NET
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos.
Machine Learning para devs com ML.NET
Xamarin + App Center + Azure DevOps = 
Desenvolvimento Cross-mobile com Xamarin, por onde começar?
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Generalização prematura e complexidade acidental, a raiz do mal de todo software
Visual Studio App Center - Continuous Everything
Write beautiful code, faster
Como Mobile DevOps me ajudou no sucesso de desenvolvimento de aplicativos.
Precisamos falar sobre Visual Studio App Center
Dicas e Truques para aumentar sua produtividade no Visual Studio
DevOps aplicado a Mobile: Challenge Accepted
Desenvolvimento Cross Mobile com Xamarin, por onde começar?
Mobile DevOps: O caminho do sucesso para desenvolvimento de aplicativos
Últimas atualizações de produtividade no Visual Studio 2017​
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
  • 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".
  • 7. Problemas Código fonte distribuído 1 Dificuldade no gerenciamento de dependências 2 Alterações não atômicas 3
  • 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.
  • 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.
  • 19. BORS
  • 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.
  • 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
  • 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.
  • 31. Participe do nosso programa Beta Tester sou.nu/android-beta sou.nu/ios-beta