A arquitetura de software pode ser definida de uma única vez durante o desenvolvimento de um software: mas essa não é uma boa ideia. Nessa sessão, o palestrante discorrerá sobre o tema, trazendo experiências próprias e reflexões no intuito de instigar os participantes a pensarem na necessidade de utilizar uma abordagem evolucionária no desenvolvimento de software. Desmistificando inclusive a ideia de que a arquitetura por si só é uma concepção complexa e rebuscada.
TDC 2011 (Florianópolis) - Entendendo a Arquitetura Evolucionária
1. Florianópolis
Entendendo a
Arquitetura Evolucionária
Leandro Daniel
@leandronet
2. Leandro Daniel @leandronet
.net Magazine Comunidade
Consultoria Autor de artigos
Desenvolvimento de software
Editor Técnico Easy .net Magazine .NET
SQL Server ClubeDelphi
Business Intelligence
Arquitetura de Software
Várias certificações...
12. Arquitetura Evolucionária e
Design Emergente
#Simples #Foco do #Adaptativa
cliente
#Agile
#YAGNI
#Iterativa
#Flexível
#TDC2011 @leandronet
13. Design Emergente
"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
#TDC2011 @leandronet
14. Sim, a entropia existe em software...
Manter as coisas como estão,
exige trabalho!
#TDC2011 @leandronet
15.
16. Quanto mais tempo você adiar suas decisões...
...Mais contextualizadas elas serão!
#TDC2011 @leandronet
18. Dívida técnica sempre é uma vilã?
Fuuuu
uuu!!! OMG!!
...Depende!
#TDC2011 @leandronet
19. Quadrante da dívida técnica
Irresponsável “Nós não temos “Nós vamos Prudente
e tempo para lidar com as e
De propósito design” consequências” De propósito
“Agora nós Prudente
Irresponsável
“O que são sabemos que e
e
camadas?” deveríamos ter Sem querer
Sem querer
feito isso”
#TDC2011 @leandronet
24. É necessário tomar essa decisão agora?
Posso adiar essa decisão com segurança?
O que posso fazer para tornar essa
decisão reversível?
@leandronet
25. Toda e qualquer atividade dentro do
desenvolvimento de software é
importante.
Pense sempre em flexibilidade.
Não lute contra as “mudanças”.
@leandronet
26. Tenha ciência do seu conhecimento (e da
sua ignorância, se possível...)
“A simplicidade consiste em subtrair o
óbvio e acrescentar o significativo.”
(John Maeda)
Quando em dúvida, erre pela simplicidade.
@leandronet