54
Arquitetura (evolucionária) de Software e o Arquiteto Leandro Daniel @leandronet

FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Embed Size (px)

DESCRIPTION

Palestra realizada na 4ª Semana Integrada / Faculdade Impacta e na 2ª Semana de Tecnologia da IFSP.

Citation preview

Page 1: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Arquitetura (evolucionária) de Software e o Arquiteto

Leandro Daniel@leandronet

Page 2: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Leandro Daniel

Desenvolvimento de software

Autor de artigosSQL Server

Visual Studio

Editor Técnico

.net Magazine

.NET

Arquiteto de Sistemas

ClubeDelphi

Comunidade

Business Intelligence

@leandronet

Várias certificações...

Podcaster

Page 3: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

http://voidpodcast.com

Page 4: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Objetivos

Refletir sobre o desenvolvimento

de software

Entender a importância da

arquitetura

Apresentar uma abordagem prática de

arquitetura

Page 5: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Refletindo sobre o desenvolvimento de software

Page 6: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Com o que o desenvolvimento de software se parece?

Page 7: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Engenharia... É tudo igual?

Page 8: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

“-Ficou ótima a ponte! Dá pra mudar ela de lugar?”

Page 9: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

É possível morar em um prédio inacabado?

Page 10: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

É possível construir um avião em pleno voo?

Page 11: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 12: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Complicar a execução de tarefas simples parece

besteira?

Page 13: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Desenvolver software se parece mais com isso:

Escrever poemas. :)

by Fred Brooks–Mythical Man-Month, The: Essays on Software Engineering,

Anniversary Edition, Capítulo 1

Page 14: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 15: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 16: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 17: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

@leandronet

Arquitetura existe, sempre! Mesmo que não seja pensada!

Mas... O que é arquitetura afinal?

Page 18: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

@leandronet

Arquitetura Implementação Design

Page 19: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

@leandronet

Arquitetura é aquela coisa que é difícil de mudar depois.

Por essa razão, deve existir o mínimo possível dessa coisa.

Page 20: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Conjunto das decisões mais importantes

Decisões com alto custo de reversão

Componentes – Papéis – Relacionamentos

Gentilmente copiado do @elemarjr =P

Page 21: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

“organização fundamental de um sistema incorporada em

seus componentes, suas relações entre si e entre o ambiente e os princípios

guiando seu design e evolução”

IEEE

@leandronet

Page 22: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Existe diferença?

@leandronet

Page 23: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 24: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 25: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 26: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Enterprise Architect

Solution Architect

Software Architect

Business Architect

Papéis do Arquiteto

SOA Architect

Data Architect

<papel aqui> Architect

Page 27: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Preocupações relevantes durante o processo de definição de uma arquitetura

(segundo o TOGAF)

Page 28: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

<Intermission>

Page 29: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Apresentando: Um código C#!

Page 30: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Assembly

Classe

Método

Essa é uma abstração do código (by NDepend)

Page 31: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 32: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 33: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

c

Page 34: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

</Intermission>

Qual abordagem você utilizaria para construir esse software?

Page 35: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Entendendo a importância da arquitetura de software

Page 36: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

@leandronet

Espectro do Design

Waterfallclássico

BDUF

SomeDUF

DesignEmergente

Agile

XGH

Page 37: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Arquitetura Evolucionária e Design Emergente

@leandronet

#Simples

#Agile

#Flexível

#Foco do cliente

#Iterativa

#Adaptativa

#YAGNI

Page 38: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

"Não existe nenhum design no início. Você começa codificando uma

pequena quantidade de funcionalidades, e vai acrescentando outras gradativamente,

deixando que o design tome forma!”

Martin Fowler

@leandronet

Design Emergente

Page 39: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Manter as coisas como estão, exige trabalho!

Sim, a entropia existe em software...

@leandronet

Page 40: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto
Page 41: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Quanto mais tempo você adiar suas decisões...

...Mais contextualizadas elas serão!

@leandronet

Page 42: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

</Lembrando>

Qual abordagem você utilizaria para construir esse software?

<Lembrando>

Page 43: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Práxis da Arquitetura Evolucionária

Page 44: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Complexidade Essencial

Complexidade Acidental

@leandronet

Page 45: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

“Obrigação que uma organização de software incorre quando escolhe um

design ou um tipo de construção que é prático no curto prazo mas que aumenta

a complexidade e é mais custoso no longo prazo.”

Ward Cunningham

@leandronet

Dívida Técnica

Page 46: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Dívida técnica sempre é uma vilã?

@leandronet

Depende!

Fuuuuuuu!!!

OMG!!

Page 47: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

@leandronet

Quadrante da dívida técnica

“Nós não temos tempo para

design”

“Nós vamos lidar com as

consequências”

“O que são camadas?”

“Agora nós sabemos que

deveríamos ter feito isso”

Irresponsávele

De propósito

Irresponsávele

Sem querer

Prudentee

De propósito

Prudentee

Sem querer

Page 48: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Métrica 1 Métrica 2 Padrão Idiomático

Identificando padrões idiomáticos

@leandronet

Page 49: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Para fechar, algumas dicas importantes...

@leandronet

Page 50: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

É necessário tomar essa decisão agora?

@leandronet

Posso adiar essa decisão com segurança?

O que posso fazer para tornar essa decisão reversível?

Page 51: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Toda e qualquer atividade dentro do desenvolvimento de software é importante.

@leandronet

Pense sempre em flexibilidade.

Não lute contra as “mudanças”.

Page 52: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Tenha ciência do seu conhecimento (e da sua ignorância, se possível...)

@leandronet

“A simplicidade consiste em subtrair o óbvio e acrescentar o significativo.”(John Maeda)

Quando em dúvida, erre pela simplicidade.

Page 53: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Referências

Pesquise no Google por:

• “Neal Ford” + “Evolutionary Architecture”• “Martin Fowler” + Design + Enterprise

http://reverb.leandrodaniel.com

http://voidpodcast.com

Page 54: FIT e IFSP - Arquitetura (evolucionária) e o papel do arquiteto

Obrigado! :)

http://reverb.leandrodaniel.com

@leandronet

[email protected]