SlideShare uma empresa Scribd logo
Generalização Prematura
e Complexidade Acidental:
A raiz do mal de todo software
Letticia Nicoli
Microsoft MVP
Trilha: Arquitetura .NET
Lucas Teles
Developer at Lambda3
@letticianicoli @lucasteles42
Generalização Prematura
e Complexidade Acidental:
A raiz do mal de todo software
Letticia Nicoli
Microsoft MVP
Trilha: Arquitetura .NET
Lucas Teles
Developer at Lambda3
@letticianicoli @lucasteles42
Palestra Motivacional
Somos ótimos em
gerar complexidade.
No Silver Bullet
Complexidade Essencial
● Totalmente ligada ao domínio/negócio.
● Aquilo que não pode ser evitado,
independentemente da sua
experiência, de quais ferramentas você
utiliza ou qual padrão de arquitetura
novo e chamativo você usou para
resolver o problema.
Complexidade Acidental
● Totalmente ligada às decisões que
tomamos.
● Causada pela abordagem escolhida para
resolver o problema:
○ Todas as buzzwords que você não
precisava mas achou que era
necessário.
○ Técnicas e tecnologias (frameworks,
patterns, ambientes operacionais etc)
Não esqueça!
Complexidade
é custo!
Elemar Jr.
Boat Anchor
Cargo Cult
Lasagna Code
Keep It Simple, Stupid
KISS
KISS
"Não é a linguagem que faz os programas parecerem simples.
É o programador que faz a linguagem parecer simples!"
Uncle Bob
● Complicações geram confusão, pense na manutenção e fácil entendimento
no futuro.
● Lembre-se: a funcionalidade pode ser complexa mas o seu código não!
Otimização Prematura
"O verdadeiro problema é que programadores gastam muito tempo se preocupando com
eficiência em lugares e momentos errados; otimização prematura é a raiz de todo o mal
(ou pelo menos a maior parte) na programação."
Donald Knuth
Otimização Prematura
● Você precisa de Event Sourcing?
● Você precisa de Micro-serviços?
● Qual valor CQRS vai te trazer agora?
● Vamos usar Dapper por que é mais rápido?
Otimização Prematura
Otimização Prematura
Moral da história: Medir antes de otimizar
Generalização Prematura
● Remover código duplicado é sempre uma boa ideia?
● Prefira código duplicado a uma abstração errada!
“O propósito da abstração não é sobre ser vago, mas sobre criar
um novo nível de semântica na qual podemos ser
absolutamente precisos.”
Edsger Dijkstra
Generalização Prematura
1. O Lucas vê uma duplicação de código.
Generalização Prematura
2. O Lucas extrai a duplicação e
dá um nome.
Com isso cria uma nova abstração.
Um novo método ou talvez até uma nova classe.
Generalização Prematura
3. O Lucas substitui a duplicação
pela nova abstração.
Ah, o código é perfeito.
O Lucas está feliz.
Generalização Prematura
4. O tempo passa...
Generalização Prematura
5. Um novo requisito aparece para o qual a abstração atual é quase perfeita.
Generalização Prematura
6. Agora a Letticia é encarregada de
implementar esse novo requisito.
Generalização Prematura
7. A Letticia se sente obrigada a manter a abstração existente, é igualzinho, ela
altera o código para receber um parâmetro, e adiciona a lógica para fazer a
coisa de acordo com parâmetro.
O que antes era uma
abstração universal agora
se comporta de maneira
diferente para casos
diferentes.
Generalização Prematura
8. Outra nova exigência chega.
● Chegou outra pessoa no time.
● Outro parâmetro adicional.
● Outra nova condicional.
● Faça um loop até que o código se torne
incompreensível.
Tudo não terás
You Ain't Gonna Need It
YAGNI
YAGNI
● Somos péssimos em prever o futuro!
● Implemente apenas o que você
realmente vai precisar naquele
momento.
● Reflita: Eu tenho 100% de certeza de
que isso é necessário agora?
Mas e se...
E quando..
Vai que..
YAGNI
● Isso não é DDD
Manifesto Ágil
1. Indivíduos e interações mais que processos e ferramentas
2. Software em funcionamento mais que documentação abrangente
3. Colaboração com o cliente mais que negociação de contratos
4. Responder a mudanças mais que seguir um plano
Software funcional com entrega de valor
é a medida primária de progresso.
Simplicidade: a arte de maximizar a quantidade de
trabalho que não precisou ser feito.
Débito Técnico
Refatoração
● Um software não é apenas mais um pedaço de código finalizado e
entregue, se trata de uma solução em constante evolução.
Testes
● Antecipação de problemas
● Faz parte do nosso dia a dia de desenvolvimento.
Não julgar, acreditar que fizeram o melhor que podia com tempo que tinham
Premissa
@letticianicoli @lucasteles42

Mais conteúdo relacionado

Mais procurados

TDC2018FLN | Trilha Agile - Agilidade e para desenvolvedores?
TDC2018FLN | Trilha Agile - Agilidade e para desenvolvedores?TDC2018FLN | Trilha Agile - Agilidade e para desenvolvedores?
TDC2018FLN | Trilha Agile - Agilidade e para desenvolvedores?
tdc-globalcode
 
Código Limpo
Código LimpoCódigo Limpo
Código Limpo
Sergio Cabral
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Gabriel Rubens
 
Metralhando sua API
Metralhando sua APIMetralhando sua API
Metralhando sua API
Thalita Pinheiro
 
Agilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeAgilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da Agilidade
Wagner Mendes Voltz Fusca
 
Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?
Ariane Izac
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Ariane Izac
 
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
tdc-globalcode
 
Fisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmoFisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmo
Gustavo Neves
 
Usando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em LibrasUsando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em Libras
Gabriel Schade Cardoso
 
CONWIP: uma outra opção para restrição do WIP
CONWIP: uma outra opção para restrição do WIP CONWIP: uma outra opção para restrição do WIP
CONWIP: uma outra opção para restrição do WIP
Felipe Albuquerque
 
Contratos de desenvolvimento de software para governo blue pill or red pill?
Contratos de desenvolvimento de software para governo  blue pill or red pill?Contratos de desenvolvimento de software para governo  blue pill or red pill?
Contratos de desenvolvimento de software para governo blue pill or red pill?
SEA Tecnologia
 
Arquitetura Limpa em .NET Core
Arquitetura Limpa em .NET CoreArquitetura Limpa em .NET Core
Arquitetura Limpa em .NET Core
Gabriel Schade Cardoso
 
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Trends
 
Clean code v3
Clean code v3Clean code v3
Clean code v3
Jean Carlo Machado
 
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voceTDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
tdc-globalcode
 
Testando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitTestando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnit
Rodrigo Vieira
 
Facetas do desenvolvedor agil
Facetas do desenvolvedor agilFacetas do desenvolvedor agil
Facetas do desenvolvedor agil
Paulo Igor Alves Godinho
 
Desenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvidaDesenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvida
Carlos Felippe Cardoso
 
Implantando continuous delivery e seus oito principios
Implantando continuous delivery e seus oito principiosImplantando continuous delivery e seus oito principios
Implantando continuous delivery e seus oito principios
Carlos Felippe Cardoso
 

Mais procurados (20)

TDC2018FLN | Trilha Agile - Agilidade e para desenvolvedores?
TDC2018FLN | Trilha Agile - Agilidade e para desenvolvedores?TDC2018FLN | Trilha Agile - Agilidade e para desenvolvedores?
TDC2018FLN | Trilha Agile - Agilidade e para desenvolvedores?
 
Código Limpo
Código LimpoCódigo Limpo
Código Limpo
 
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013Profissão programador práticas para melhoria contínua fatec pg setembro 2013
Profissão programador práticas para melhoria contínua fatec pg setembro 2013
 
Metralhando sua API
Metralhando sua APIMetralhando sua API
Metralhando sua API
 
Agilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da AgilidadeAgilidade é para desenvolvedores? Semana da Agilidade
Agilidade é para desenvolvedores? Semana da Agilidade
 
Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?Você já aplicou dev box testing hoje?
Você já aplicou dev box testing hoje?
 
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
Acredite, você pode agilizar feedbacks aplicando Dev Box Testing
 
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
TDC2018FLN | Trilha Testes - High Automation Tests e DevOps - Um novo paradig...
 
Fisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmoFisl 16 - Proteja sua aplicação de você mesmo
Fisl 16 - Proteja sua aplicação de você mesmo
 
Usando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em LibrasUsando Visão Computacional para Identificar Letras em Libras
Usando Visão Computacional para Identificar Letras em Libras
 
CONWIP: uma outra opção para restrição do WIP
CONWIP: uma outra opção para restrição do WIP CONWIP: uma outra opção para restrição do WIP
CONWIP: uma outra opção para restrição do WIP
 
Contratos de desenvolvimento de software para governo blue pill or red pill?
Contratos de desenvolvimento de software para governo  blue pill or red pill?Contratos de desenvolvimento de software para governo  blue pill or red pill?
Contratos de desenvolvimento de software para governo blue pill or red pill?
 
Arquitetura Limpa em .NET Core
Arquitetura Limpa em .NET CoreArquitetura Limpa em .NET Core
Arquitetura Limpa em .NET Core
 
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
Agile Tester – a importância da automação dos testes no DevOps - Sidnei Eiji ...
 
Clean code v3
Clean code v3Clean code v3
Clean code v3
 
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voceTDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
TDC2018FLN | Trilha Testes - Flaky tests: O flakiness que ha em voce
 
Testando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnitTestando serviços aws localmente com Localstack e JUnit
Testando serviços aws localmente com Localstack e JUnit
 
Facetas do desenvolvedor agil
Facetas do desenvolvedor agilFacetas do desenvolvedor agil
Facetas do desenvolvedor agil
 
Desenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvidaDesenvolvimento Ágil e a mudança de mindset envolvida
Desenvolvimento Ágil e a mudança de mindset envolvida
 
Implantando continuous delivery e seus oito principios
Implantando continuous delivery e seus oito principiosImplantando continuous delivery e seus oito principios
Implantando continuous delivery e seus oito principios
 

Semelhante a Generalização prematura e complexidade acidental, a raiz do mal de todo software

Over engineering
Over engineeringOver engineering
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
guest2f8cba
 
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresceEncontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
Carolina Karklis
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
Dextra Sistemas / Etec Itu
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
João Carlos Ottobboni
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
Raphael Paiva
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
cesarcneto
 
XP Programming
XP ProgrammingXP Programming
XP Programming
CJR, UnB
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Luca Bastos
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDD
Jony Ferreira dos Santos
 
Xp Metodologias Ageis Para Desenvolvimento De Software
Xp   Metodologias Ageis Para Desenvolvimento De SoftwareXp   Metodologias Ageis Para Desenvolvimento De Software
Xp Metodologias Ageis Para Desenvolvimento De Software
guest4b8d24
 
Xp Metodologias Ageis Para Desenvolvimento De Software
Xp   Metodologias Ageis Para Desenvolvimento De SoftwareXp   Metodologias Ageis Para Desenvolvimento De Software
Xp Metodologias Ageis Para Desenvolvimento De Software
Marcos Cardoso
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
Rudson Kiyoshi Souza Carvalho
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
Pedro Pereira Martins
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
Marcelo Láias
 
Euquipe, evoluindo como dev
Euquipe, evoluindo como devEuquipe, evoluindo como dev
Euquipe, evoluindo como dev
Alan Zanatta
 
O programador pragmático
O programador pragmáticoO programador pragmático
O programador pragmático
edgarddavidson.com
 
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
Annelise Gripp
 
Práticas Jedi eXtreme Programming
Práticas Jedi eXtreme ProgrammingPráticas Jedi eXtreme Programming
Práticas Jedi eXtreme Programming
Morvana Bonin
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de Software
Gabriel Felipe Soares
 

Semelhante a Generalização prematura e complexidade acidental, a raiz do mal de todo software (20)

Over engineering
Over engineeringOver engineering
Over engineering
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
 
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresceEncontrando equilíbrio do DDD enquanto sua aplicação cresce
Encontrando equilíbrio do DDD enquanto sua aplicação cresce
 
Os Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de softwareOs Benefícios dos testes no desenvolvimento de software
Os Benefícios dos testes no desenvolvimento de software
 
Extreme programming (xp)
 Extreme programming   (xp) Extreme programming   (xp)
Extreme programming (xp)
 
Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?Como TDD pode influenciar na construção do seu Produto?
Como TDD pode influenciar na construção do seu Produto?
 
Treinamento TDD - Atech
Treinamento TDD - AtechTreinamento TDD - Atech
Treinamento TDD - Atech
 
XP Programming
XP ProgrammingXP Programming
XP Programming
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
 
Boas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDDBoas práticas no desenvolvimento de software através do uso de TDD
Boas práticas no desenvolvimento de software através do uso de TDD
 
Xp Metodologias Ageis Para Desenvolvimento De Software
Xp   Metodologias Ageis Para Desenvolvimento De SoftwareXp   Metodologias Ageis Para Desenvolvimento De Software
Xp Metodologias Ageis Para Desenvolvimento De Software
 
Xp Metodologias Ageis Para Desenvolvimento De Software
Xp   Metodologias Ageis Para Desenvolvimento De SoftwareXp   Metodologias Ageis Para Desenvolvimento De Software
Xp Metodologias Ageis Para Desenvolvimento De Software
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Euquipe, evoluindo como dev
Euquipe, evoluindo como devEuquipe, evoluindo como dev
Euquipe, evoluindo como dev
 
O programador pragmático
O programador pragmáticoO programador pragmático
O programador pragmático
 
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
Extreme Programming - Workshop Praticas Jedi XP - LinguÁgil 2016
 
Práticas Jedi eXtreme Programming
Práticas Jedi eXtreme ProgrammingPráticas Jedi eXtreme Programming
Práticas Jedi eXtreme Programming
 
Clean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de SoftwareClean code - Qualidade em desenvolvimento de Software
Clean code - Qualidade em desenvolvimento de Software
 

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
 
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
 
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
 
Conheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareConheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live Share
Letticia Nicoli
 
DevOps e Apps Mobile: Você realmente se importa?
DevOps e Apps Mobile: Você realmente se importa?DevOps e Apps Mobile: Você realmente se importa?
DevOps e Apps Mobile: Você realmente se importa?
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?
 
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
 
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?
 
Conheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live ShareConheça Visual Studio IntelliCode e Visual Studio Live Share
Conheça Visual Studio IntelliCode e Visual Studio Live Share
 
DevOps e Apps Mobile: Você realmente se importa?
DevOps e Apps Mobile: Você realmente se importa?DevOps e Apps Mobile: Você realmente se importa?
DevOps e Apps Mobile: Você realmente se importa?
 

Generalização prematura e complexidade acidental, a raiz do mal de todo software