SlideShare uma empresa Scribd logo
1 de 52
Baixar para ler offline
André Paulovich
Arquiteto de Sistemas - CI&T
MCP | MCTS | MCT | MCAD | MCSD.NET
MVP ASP.NET 2012, 2013 e 2014
andrepg@ciandt.com | @andrepaulovich
Onde?
Somos globais, presentes no Brasil, EUA,
Europa, Japão e China.
Excelência reconhecida pelo mercado com
diversos prêmios e certificados desde a nossa
fundação em 1995.
Somos multiculturais, com uma legião de mais
de 2000 talentos e suas incríveis histórias
Forte presença em regiões estratégicas
Estados Unidos
• Atlanta
• Filadélfia
• São Francisco
• Somerset NJ
• Nova Iorque
Brasil
• Campinas (sede)
• Belo Horizonte
• Rio de Janeiro
• São Paulo
UK
• Londres
China
• Ningbo
• Shangai
Japão
• Tokyo
3
O que é arquitetura de software?
“É um conjunto de decisões difíceis
de serem mudadas no futuro.”
Martin Fowler (tradução livre)
O que faz um arquiteto de software?
“Um arquiteto permite que decisões importantes
sejam adiadas e um bom arquiteto maximiza o
número de decisões não tomadas.”
Uncle Bob (tradução livre)
Arquiteto
Engenheiro...
Não muito tempo
atrás...
Tudo anda dentro do prazo!
INCLUSIVE a fase de
DESIGN.
Até o “fatídico dia” em que
os desenvolvedores
compilam o projeto pela
primeira vez…
Nova “moda”...
Daí “aprendemos” que
podemos trabalhar em
ciclos curtos.
Entrevistamos usuários,
detalhamos funcionalidades
e entregamos de maneira
contínua “pedacinhos” de
um sistema maior…
Arquiteto como “guia turístico”
Jardineiro…
Guia turistico...
Arquitetura de software num cenário de
incertezas...
Incertezas?
Mudanças são inevitáveis...
O que é arquitetura evolutiva?
“Uma arquitetura evolutiva suporta mudanças contínuas
e incrementais como um primeiro princípio por meio de
vários aspectos.” Rebecca Parsons (tradução livre)
Mudanças
Mudanças podem surgir de diferentes necessidades...
Técnicas Negócio
Linguagens de programação
Bibliotecas
Ferramentas
Sistemas operacionais
Padrões e Estilos
Modelos comerciais
Concorrência
Necessidades dos clientes
Novas integrações
Legislações
Quebre os Silos!
Conway's law!
Negócio Design
Segurança Engenheiros
DBA´s
Na contramão da lei de Conway!
Pagamento Estoque
Venda Entrega
Times
MULTIdisciplinares!
PERDA Mantém
Desenvolve
Desenvolve
Projetos vs Produtos
Projeto
Produto
Desenvolve Desenvolve
FIM
MVP Release 2...
Desenvolve
Release 1...
Princípios!
KISS
Acidental Essencial
A complexidade acidental é
aquela que surge durante o
processo de
desenvolvimento, ou seja,
ela é CAUSADA pela
abordagem escolhida para
resolver o problema.
Já a essencial é basicamente
a complexidade que nosso
“software” se propõe
resolver.
SIM, infelizmente existem
problemas complexos, e é
neles que temos que focar.
KISS
Dois tipos de complexidade...
Refatore constantemente!
Design
Clean
Design
Tradicional
Desvio... DOR
Gerir débitos técnicos...
Início de
um projeto
Tempo
Funcionalidades
acumuladas
Com
gestão de
débitos
Sem
gestão de
débitos
Manutenção de um sistema
Débitos técnicos
cobram juros!
Refatore
constantemente!
Mesma “entrega”
Reversibilidade
Reversibilidade
Não tome decisões que você não pode reverter.
Evite ser dependente de um framework, biblioteca ou linguagem.
A reversibilidade tem um custo!
Se o código é impossível de ser revertido, é impossível refatorar.
Nem tudo precisa ser reversivel!
Último momento de responsabilidade
Não é procrastinação
Último momento de responsabilidade
Início de
um projeto
Tempo
Entendimento
Big Up Front Design!
Decisões arquiteturais
Vamos evoluir
esse pensamento...
Você pode substituir “Big” por “Enough”
Início de
um projeto
Tempo
Entendimento
Enough Up Front Design!
Decisões arquiteturais
Último momento de responsabilidade
Preciso fazer agora? Qual o custo de adiar?
Agora Depois
SE... Então...
Deixe para
depois
SE... Então...
Deixe para
depois
SE...
Qual a
probabilidade de
precisar disso?
Alta = Faça já!
Baixa = Adie também!
YAGNI (You Aren’t Gonna Need It)
Hey, Batman! Vamos criar
um método assíncrono com
validação dupla de
criptografia nas requisições
da API...
YAGNI
MEDO
80%
RESULTADO
20%
ESFORÇO
Tente se manter focado no que é importante! Lembre-se de Pareto!
“Boa parte das coisas, que lá no
início, eu achava que ia precisar.
Depois de algum tempo cheguei
a conclusão que não precisava
mais…” Paulovich
Solutions Reviews
Decisões compartilhadas!
Todos se tornam arquitetos!
Realize constantemente reuniões para discutir
próximos passos “arquiteturais”, garantindo à
todos a possibilidade de contribuir…
Isso aumenta o “ownership”!
Evolução
A arquitetura de um projeto é algo que precisa se desenvolver… não “nasce” pronta…
A cada ciclo de entregas, você tem a oportunidade de criar uma nova “geração” da sua arquitetura.
Maturidade 1 Maturidade 2 Maturidade 3 Maturidade n
Fachadas
APIs Corporativas
Microsserviços
Nuvem
LegadoNovaArquitetura
Cliente / Servidor
Maturidade
Evolução em “gerações”
Legado
Novo Sistema
Fachadas
API
Estoque
API
Pagamentos
Boletos
Evolução em “gerações”
API
Vendas
Você é o resultado de 4 bilhões de
anos de evolução bem sucedida.
Não subestime o poder da
evolução.
Obrigado!
André Paulovich
Arquiteto de Sistemas
andrepg@ciandt.com | @andrepaulovich
https://martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf (Artigo - Martin Fowler)
https://pt.slideshare.net/thekua/building-evolutionary-architectures (Slides - Patrick Kua)
https://www.vectorstock.com/12540550 (Ilustração)
https://www.youtube.com/watch?v=DngAZyWMGR0 (Vídeo - Making Architecture Matter - Martin Fowler Keynote)
https://www.gislounge.com/defining-waterfall-and-agile-gis-project-management-styles/ (Artigo - Lowell Ballard)
https://www.infoq.com/br/news/2016/04/evolutionary-architectures (Artigo - Jan Stenberg)
http://equinocios.com/arquitetura/2017/03/03/Introducao-a-arquitetura-evolutiva/ (Artigo - Bruno Mazzo)
https://www.youtube.com/watch?v=VEPwR4Hpi7M&t=25s (Vídeo - Evolutionary Architecture - Venkat)
https://www.thoughtworks.com/insights/blog/microservices-evolutionary-architecture (Artigo - Neal e Rebecca)
Referências

Mais conteúdo relacionado

Semelhante a [DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura Evolutiva

The Developers Conference 2014 | Porto Alegre
The Developers Conference 2014 | Porto AlegreThe Developers Conference 2014 | Porto Alegre
The Developers Conference 2014 | Porto AlegreBruno Brandes
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme ProgrammingRodrigo Branas
 
Práticas De Um Engenheiro De Software Eficiente
Práticas De Um Engenheiro De Software EficientePráticas De Um Engenheiro De Software Eficiente
Práticas De Um Engenheiro De Software EficienteGiovanni Bassi
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Marcio Miyamoto
 
Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis   Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis Agile Trends
 
Caminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o ProfissionalCaminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o ProfissionalGiovanni Bassi
 
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0tdc-globalcode
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TIDNAD
 
Design System: Dominando o Design at Scale
Design System: Dominando o Design at ScaleDesign System: Dominando o Design at Scale
Design System: Dominando o Design at ScaleGuilherme Gonzalez
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?Isaac de Souza
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Softwareguest2f8cba
 
Agilidade de Ponta-a-Ponta com Arquiteturas Evolucionárias
Agilidade de Ponta-a-Ponta com Arquiteturas EvolucionáriasAgilidade de Ponta-a-Ponta com Arquiteturas Evolucionárias
Agilidade de Ponta-a-Ponta com Arquiteturas EvolucionáriasBreno Barros
 

Semelhante a [DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura Evolutiva (20)

The Developers Conference 2014 | Porto Alegre
The Developers Conference 2014 | Porto AlegreThe Developers Conference 2014 | Porto Alegre
The Developers Conference 2014 | Porto Alegre
 
Qualidade no desenvolvimento de softwre
Qualidade no desenvolvimento de softwreQualidade no desenvolvimento de softwre
Qualidade no desenvolvimento de softwre
 
Metodos ageis thinkingdifferent
Metodos ageis thinkingdifferentMetodos ageis thinkingdifferent
Metodos ageis thinkingdifferent
 
XP - Extreme Programming
XP - Extreme ProgrammingXP - Extreme Programming
XP - Extreme Programming
 
Práticas De Um Engenheiro De Software Eficiente
Práticas De Um Engenheiro De Software EficientePráticas De Um Engenheiro De Software Eficiente
Práticas De Um Engenheiro De Software Eficiente
 
Jornada para o DevOps
Jornada para o DevOpsJornada para o DevOps
Jornada para o DevOps
 
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
Desenvolvimento de software de forma rápida e sem bugs - Introdução a TDD e S...
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis   Eduardo Rocha - Criando produtos invisíveis
Eduardo Rocha - Criando produtos invisíveis
 
Caminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o ProfissionalCaminho Do Desenvolvedor Amador Para o Profissional
Caminho Do Desenvolvedor Amador Para o Profissional
 
Arquitetura Limpa em .NET Core
Arquitetura Limpa em .NET CoreArquitetura Limpa em .NET Core
Arquitetura Limpa em .NET Core
 
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
TDC2018SP | Trilha Arq .Net - Clean Architecture com .NET Core 2.0
 
MVP Sustentável
MVP SustentávelMVP Sustentável
MVP Sustentável
 
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
05 - Waldemir Cambiucci - Matriz de habilidades de um arquiteto TI
 
Design System: Dominando o Design at Scale
Design System: Dominando o Design at ScaleDesign System: Dominando o Design at Scale
Design System: Dominando o Design at Scale
 
Palestra scrum
Palestra scrumPalestra scrum
Palestra scrum
 
Seu código fonte é sustentável?
Seu código fonte é sustentável?Seu código fonte é sustentável?
Seu código fonte é sustentável?
 
Clean Architecture com .NET Core
Clean Architecture com .NET CoreClean Architecture com .NET Core
Clean Architecture com .NET Core
 
Mitos do Desenvolvimento de Software
Mitos do Desenvolvimento de SoftwareMitos do Desenvolvimento de Software
Mitos do Desenvolvimento de Software
 
Agilidade de Ponta-a-Ponta com Arquiteturas Evolucionárias
Agilidade de Ponta-a-Ponta com Arquiteturas EvolucionáriasAgilidade de Ponta-a-Ponta com Arquiteturas Evolucionárias
Agilidade de Ponta-a-Ponta com Arquiteturas Evolucionárias
 

Mais de André Paulovich

Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0André Paulovich
 
Equilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalEquilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalAndré Paulovich
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTIAndré Paulovich
 
Como se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramComo se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramAndré Paulovich
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsAndré Paulovich
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeAndré Paulovich
 
Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.André Paulovich
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeAndré Paulovich
 
Semcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichSemcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichAndré Paulovich
 
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019André Paulovich
 
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...André Paulovich
 
MeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalMeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalAndré Paulovich
 
Acerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAcerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAndré Paulovich
 
Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#André Paulovich
 
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichGlobal Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichAndré Paulovich
 
SIP - Descobrindo o poder do Cloud Computing
SIP - Descobrindo o poder do Cloud ComputingSIP - Descobrindo o poder do Cloud Computing
SIP - Descobrindo o poder do Cloud ComputingAndré Paulovich
 
DC/OS Escalando sua arquitetura de microserviços
DC/OS Escalando sua arquitetura de microserviçosDC/OS Escalando sua arquitetura de microserviços
DC/OS Escalando sua arquitetura de microserviçosAndré Paulovich
 
Darwinismo digital nova era do windows - ufv
Darwinismo digital   nova era do windows - ufvDarwinismo digital   nova era do windows - ufv
Darwinismo digital nova era do windows - ufvAndré Paulovich
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
 

Mais de André Paulovich (20)

Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0Construindo carreiras inspiradoras - UAIDEV 5.0
Construindo carreiras inspiradoras - UAIDEV 5.0
 
Equilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoalEquilíbrio entre carreira e vida pessoal
Equilíbrio entre carreira e vida pessoal
 
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTILiberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
Liberte sua arquitetura com Cloud Native - DEVSUMMIT IGTI
 
Como se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuramComo se tornar o profissional que todos procuram
Como se tornar o profissional que todos procuram
 
Levando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature FlagsLevando seu SCM à outro nível com Feature Flags
Levando seu SCM à outro nível com Feature Flags
 
C school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud NativeC school Extended - Liberte sua arquitetura com Cloud Native
C school Extended - Liberte sua arquitetura com Cloud Native
 
Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.Como se tornar o profissional que todos estão procurando.
Como se tornar o profissional que todos estão procurando.
 
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud nativeTDC 2019 Cloud - Liberte sua arquitetura com cloud native
TDC 2019 Cloud - Liberte sua arquitetura com cloud native
 
Semcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André PaulovichSemcom - UFV - Florestal - 2019 - André Paulovich
Semcom - UFV - Florestal - 2019 - André Paulovich
 
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
AKS. O que nunca te falaram. Global Azure Bootcamp BH 2019
 
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
CSchool - s02 e02 - Estratégias de desenvolvimento para turbinar a Transforma...
 
MeetupWeek - Transformacao Digital
MeetupWeek - Transformacao DigitalMeetupWeek - Transformacao Digital
MeetupWeek - Transformacao Digital
 
Acerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud ComputingAcerto talk - Descobrindo o poder do Cloud Computing
Acerto talk - Descobrindo o poder do Cloud Computing
 
Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#Share - Mastermaq - Evolução e o futuro do C#
Share - Mastermaq - Evolução e o futuro do C#
 
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - PaulovichGlobal Azure Bootcamp 2018 - Belo Horizonte - Paulovich
Global Azure Bootcamp 2018 - Belo Horizonte - Paulovich
 
SIP - Descobrindo o poder do Cloud Computing
SIP - Descobrindo o poder do Cloud ComputingSIP - Descobrindo o poder do Cloud Computing
SIP - Descobrindo o poder do Cloud Computing
 
DC/OS Escalando sua arquitetura de microserviços
DC/OS Escalando sua arquitetura de microserviçosDC/OS Escalando sua arquitetura de microserviços
DC/OS Escalando sua arquitetura de microserviços
 
Asp.Net Core - Meetup BH
Asp.Net Core - Meetup BHAsp.Net Core - Meetup BH
Asp.Net Core - Meetup BH
 
Darwinismo digital nova era do windows - ufv
Darwinismo digital   nova era do windows - ufvDarwinismo digital   nova era do windows - ufv
Darwinismo digital nova era do windows - ufv
 
Pangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud PlatformPangea - Plataforma digital com Google Cloud Platform
Pangea - Plataforma digital com Google Cloud Platform
 

[DevDay2018] Arquitetura de Software num cenário de incertezas - Arquitetura Evolutiva