Você está na página 1de 16

Domain Driven Design - baseado na pec a de Eric Evans

by Daniel Cukier

Copyright c 2013

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

E LENCO Alexandre Daniel Guilherme Narrador Jo ao Julian Cl audia L der tecnico do time do Sistema de Reservas Consultor de Domain Driven Design Responsavel pelo servic o de Rotas Pode ser o mesmo ator que faz o Daniel L der tecnico do time dethank APIs L der do time de Ordem de Servic o L der do time de Work FLow

Setting: S ao Paulo Time: Jun/2013

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

ATO I
Cena 1 [Reservas e Rotas - dialogo Daniel, Ale xandre e Guilherme ]
D ANIEL

Daniel. O presidente da super-entregas me Bom dia pessoal, meu nome e o entre os contratou para ajudar a empresa de voc es a melhorar a integrac a consistemas. Nos proximos dias, vou conversar com varios times (como ja versei com o Guilherme) para entender como tudo por aqui funciona. O meu resolver todos os problemas: n papel aqui n ao e ao sou um g enio da l ampada ajudar voc que vai satisfazer os seus desejos. Meu papel e es da super entregas a entender os problemas e porque eles ocorrem e tentar propor mudanc as organizacionais. Essas mudanc as tem por objetivo melhorar a vida de todo mundo aqui.
A LEXANDRE

falou com o Guilherme, la do time de Rotas. Opa, Daniel! Sei que voc e ja Achei melhor trazer ele aqui de novo comigo porque nossos sistemas s ao bem integrados, pensei que faria mais sentido a gente vir junto fala com voc e.
D ANIEL

Bom te encontrar tamb em, Al e! Para comec ar, voc e poderia me dar um mapa geral sobre o seu sistema de Reservas?
A LEXANDRE

Claro! Cuidamos de tudo e qualquer coisa relacionado com as cargas, que que , onde ta, e pra onde vai. O time de Reservas esta no meio de quase todos os e temos 10 pessoas no time, somos uma das projetos da Super Entregas. Nos maiores equipes. Nosso sistema n ao deveria ser complicado, mas pelo fato de gastamos bastante carmos no centro de tudo, precisa ser bem solido... e nos , tentamos escrever os testes antes tempo fazendo TDD pra garantir isso, isso e na maior parte dos casos. O nosso sistema funciona assim: quando algu em agenda uma Carga, chamamos o Servic o de Rotas, do Guilherme, e passamos todos os crit erios do carregamento. O servic o responde com um Itinerario que satifac a esses crit erios. [Aponta para Guilherme ].
G UILHERME

Na verdade, trabalhamos junto com o time do Alexandre para denir a interface do Servic o de Rotas e o processo de convers ao entre os dois sistemas.
D ANIEL

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

o a testes automatizaO time de Reservas parece ser bem agressivo em relac a dos. Voc es tem um processo parecido?
G UILHERME

temos alguns testes. [Movimento de se eximir ] N Nos ao prestamos muita o sobre isso, porque temos revis atenc a oes de design e revis oes de codigo. Garantimos alta qualidade dessa maneira. Provavelmente metade dos nossos testes s ao do time de Reservas (em cima da nossa interface com eles).
A LEXANDRE

o da API de Rotas e muitos testes para ela. A gente tem uma boa especicac a O time do Guilherme roda esses testes antes de passar uma nova vers ao pra nos. E nos em rodamos os testes de regress ao toda vez que fazemos tamb check-in no codigo, claro!
G UILHERME

nos certicamos de que todos Sim, isso tem sido muito util para nos. Nos encontramos alguns os testes passam antes de lanc ar qualquer vers ao. Ja problemas usando isso, mas n ao muitos, porque somos muito cuidadosos. cr Sabemos que nosso sistema e tico e pensamos bastante antes de fazer qualquer mudanc a. tamb Nos em escrevemos testes toda vez que encontramos algum bug. Acho que temos tamb em alguns testes da estrutura basica de rede. Mas, em geral, preferimos fazer um sistema de alta-qualidade atrav es de um design de qualidade ao inv es de consertar quando acontece alguma coisa. suas gambiarras, mas e elegante em alguns pontos. E O sistema tem la funciona bem!
N ARRADOR

[Figura. Convesa continua abaixo explicando a gura ] Cena 2


D ANIEL

Ent ao, parece que Reservas depende de Rotas


A LEXANDRE E G UILHERME

Sim.
D ANIEL

Mas Rotas n ao depende de Reservas


G UILHERME

Exato. Reservas chama o Servic o de Rotas. O design de Rotas n ao tem refer encia a nenhum objeto em Reservas

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

D ANIEL

Ent ao voc e pode entregar vers oes sem se preocupar com Reservas?
G UILHERME

Ah, n ao. Quer dizer, sim, poder amos algumas vezes lanc ar uma vers ao incremental sem eles, mas se for algo signicante, temos que coordenar nossas entregas. Poder amos lanc ar uma funcionalidade nova sozinhos, mas ela n ao seria usada at e que Reservas adaptasse a sua parte.
A LEXANDRE

E, claro, qualquer mudanc a na API precisaria ser sincronizada entre os nossos dois times.
D ANIEL

Continuando, agora consigo ver como seu sistema de Reservas usa o sistema de Rotas. Voc e poderia me contar mais sobre outros times que prov em servic os para voc e?
A LEXANDRE

Acho que n ao tem ningu em. Somos o topo da cadeia alimentar!


D ANIEL

Mas voc e disse que Reservas estava no centro das coisas. Com quais outros grupos voc e interage e por que?
A LEXANDRE

Bem, tem a galera de APIs externas um time que trabalha nelas. O l der do o Jo time de API e ao. Talvez voc e queira falar com ele. Eles usam o nosso sistema. De vez em quando, o time de deles pede alguma nova funcionali para que eles possam oferecer uma interface para os clientes dade para nos, sempre tentamos fazer tudo que eles externos ou alguma coisa assim. Nos precisam. Algumas vezes melhoramos nosso projeto para atend e-los, mas mostramos como nosso modelo funciona e como ele pode muitas vezes so resolver as quest oes que eles tem.
N ARRADOR

[Figura. Qual a relac a o entre Reservas e API? Reservas e fornecedor, API e cliente ] Cena 3
D ANIEL

Parece que as coisas est ao bem tranquilas para voc e. Mas tenho certeza que voc e tem alguns problemas.

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

A LEXANDRE

Opa claro! Toneladas! Que que voc e quer saber, mais especicamente?
D ANIEL

o problema mais cabeludo que voc passando hoje? Qual voc e diria que e e esta
G UILHERME

es de Itinerario? Voc e tinha falado alguma coisa sobre uns bugs nas Ac o
A LEXANDRE

uma coisa estranha, surgiram alguns bugs recentemente nessas Putz. E es. Tudo funcionava em produc o, lanc 6 meses atras e n ac o a amos ha ao mexemos muito nessa parte ultimamente.
D ANIEL

Esse s ao bugs que voc e encontrou durante o desenvolvimento? Os testes pararam de funcionar?
A LEXANDRE

[Engole seco, constrangido ] N ao. Os clientes que acharam os bugs. Eles passaram reto pelos nossos testes. Tivemos que colocar um desenvolvedor para fazer analise, escrever os novos um outro jeito de garantir que casos de teste e ent ao arrumar os bugs. Esse e nossos testes est ao cada vez melhores. acho estranho que temos esses clientes reclamando agora e n So ao rolou nada ano passado. Aposto que eles est ao usando o sistema de algum jeito novo.
D ANIEL

Ok Al e, Gui, obrigado. Tenho uma outra reuni ao marcada agora. Depois voltamos a falar!
A LEXANDRE

Falou cara, valeu.


G UILHERME

causando esses BUGs. Valeu. Espero que voc e descubra quem esta
N ARRADOR

um t o Bugs misteriosos num codigo estavel e pico sinal de falta da delimitac a de contextos.
N ARRADOR

[Figura. Delimitac a o de Contexto] Cena 4

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

N ARRADOR

Oi Jo ao, beleza? Estou aqui mapeando o sistema de voc es. Pelo que entendi, o l voc e e der do time que desenvolve a Pequena-Transportadora API, que usada para permitir que pequenas empresas de transporte integrem com a e Super Entregas. A maioria dos pedidos chegam atrav es da interface web da propria Super Entregas, usada pelo pessoal de vendas para fazer pedidos de uma nova Carga, mas a empresa tamb em transporta cargas de outras empresas de entregas, especialmente as pequenas.
O JOA

tocamos o projeto de API desde que ele comec Somos um time pequeno. Nos ou, dois anos. Naquela e poca, nos zemos algumas integrac es personalizaha o das para alguns clientes grandes, mas t nhamos um limite de quantas dessas es conseguir customizac o amos criar e manter. entregamos cargas para O Marketing identicou uma oportunidade. Nos um monte de pequenas empresas de entrega, que n ao t em infra-estrutura propria. A id eia era prover um jeito leve e padr ao de integrar os sistemas. Nos muito zemos uma interface SOAP para o sistema de Reservas. SOAP n ao e o suciente para nossas necessidades. So agora, recentemente, rapido, mas e estamos com trafego grande o suciente para precisar de um segundo servidor.
D ANIEL

essencialmente uma camada na sobre Reservas e Ent ao o seu sistema e Roteamento?


O JOA

isso. Nosso primeiro release Tem mais umas coisas, mas essencialmente e o basico seis meses lanc tinha so do basico, mas ha amos a vers ao 2.0 e ela ja bem completa. Na verdade, pelo menos um dois nossos velhos clientes esta e mais facil mudando para usar a API, porque acham que sera para eles. Nos ainda chamamos de Pequena-Transportadora API, mas pode ser usada por qualquer um que queira integrar.
N ARRADOR

[Que modelos mencionamos? Um para cada cliente externo. Relac o es? Servic o Open-Host. Do ponto de vista de API e open-host. E do ponto de vista dos clientes da API? ] Cena 5
D ANIEL

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

O time de Reservas descobriu mais bugs nos ultimos 6 meses, e sua nova rodando ha 6 meses. Sera que tem alguma relac o? Talvez o vers ao esta a seu sistema esteja usando o sistema de Reservas de uma forma nova? Talvez voc es estejam mudando o sistema deles?
O JOA

n nunca mu[Enfaticamente ] Nos ao estamos mudando o sistema deles. Nos sempre tomamos bastante cuidado para fazer damos o codigo deles. Nos fazer chamadas ao codigo mudanc a apenas em nossos sistemas e so deles. uma coisa que me incomoda um pouco. No primeiro ano desse projeto, Isso e pedimos algumas mudanc as no modelo de Itinerario e no Servic o de Rotas ou para a interface dos que tornariam as coisas muito mais faceis para nos quer nossos clientes externos. Por exemplo, nos amos quebrar o Itinerario em paradas, como uma alternativa a vis ao de trecho que eles usam nos sistemas internos deles. Isso parece muito mais natural e util para nossos clientes. Ent ao pedimos para eles incorporarem no modulo de Itinerario. desistimos da id Bem, como time de Reservas nunca nos atendeu, nos eia. tentamos oferecer a interface que quer Nos amos para nosso cliente, mas a coisa ia car t ao complicada que pensamos que seria inviavel manter. Ent ao nos adequamos o maximo poss vel ao modelo do time de Reservas, com a ideal, poucas melhorias, como derivar paradas de trecho. A API n ao e boa o suciente. E da pra usar, no m. mas e
N ARRADOR

a real relac o entre os times? O que acontece quando [discuss ao] Qual e a cada um v e de uma forma diferente? E se o comportamento de reservas o como Cliente-Fornecedor? fosse o mesmo e API visse a relac a
N ARRADOR

es de Itinerario. Ainda temos o mist erio dos bugs nas Ac o O release de seis deve ser so uma coincid meses atras encia. Esses bugs inexplicaveis s ao um ind cio t pico de problemas no relacionamento entre contextos, mas n ao parece que seja sobre esse relacionamento entre Reservas e API.

ATO II
N ARRADOR

Vamos falar com Julian, do time de Ordens de Servic o. Esse time escreve es. software para o departamento de operac o
N ARRADOR

[Explica o sistema de Ordens de Servic o ] O sistema de Ordens de Servic o pega es de itinerario as ac o para uma carga e as transforma em algo mais concreto:

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

es de Carregamento. Instruc o
N ARRADOR

Slide com UML Cena 1


J ULIAN

pegamos os detalhes de Itinerario Resumindo, nos para cada Carga. Nos olhamos no Itinerario acompanhamos cada passo seguinte. Nos para ver o que deve acontecer em seguida. Ent ao, mandamos pedidos para as compa nhias portuarias para realmente fazer essas coisas. Descarregar essa carga daquele navio, carregar a carga naquele trem, etc.
D ANIEL

Ent ao, eu entendo que Eventos de Manuseio s ao registros do que realmente acontece no porto?
J ULIAN

Isso. Somos responsaveis pela entrada dos Eventos de Manuseio no sistema. es de Carga para ter certeza que Comparamos esses Eventos com as Instruc o tudo procedeu de acordo.
D ANIEL

E voc es dependem do sistema de reservas.


J ULIAN

pegamos o Itinerario e ent es para Sim sim, nos de la ao usamos suas Ac o es de Carga mais concretas e detalhadas. Ent derivar Instruc o ao passamos elas para a API de Ordem de Servic o.
D ANIEL

todo um subsistema a parte? A API de Ordem de Servic o e


J ULIAN

na verdade uma fachada para o sistema legado de Ordem de Exato. O API e integrar com esse legado. Nos preciServic o. Nossa maior dor de cabec a e o legado que tem realmente a funcionalidade de emitir samos disso porque e so temos que descobrir ordens para as companhias portuarias. Com isso nos qual ordem emitir e ent ao pedir para o legado fazer isso. realmente uma zona. Ent ao precisamos ter essa capacidade, mas o legado e 4 anos, tentamos refatorar o codigo Quando comec amos nosso projeto ha le gado para torna-lo razoavel, mas tivemos um monte de efeitos colaterais em varias partes do sistema. Ent ao evitamos esse codigo como vampiro corre de alho. N ao mudamos ele a n ao ser que seja extremamente necessario. Temos

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

10

um codigo que traduz coisas nossas para o legado e coisas do legado para o esta cando cada vez mais complicada, mas achanosso sistema. A traduc a mos que vale a pena pagar o prec o, por de outra forma n ao conseguir amos fazer nada.
N ARRADOR

[Esse grupo gerencia 2 contextos. Identique. Eles zeram uma camada anti-corrupc a a o. Onde esta ela? Qual e a relac o com Reservas? Para isso vamos fazer mais algumas perguntas.
D ANIEL

Ent ao, Julian, existe uma interface de servic o que voc e usa para interagir com Reservas?]
J ULIAN

o git. A gente baixa codigo Basicamente, a interface que usamos e deles e usa os objetos de Itinerario.
D ANIEL

E eles avisam voc e quando mudam o sistema de Itinerario?


J ULIAN

bem estavel O projeto basico de Itinerario esta no ultimo ano, logo isso n ao um problema. Nos tivemos umas confus e oes durante o desenvolvimento daquela parte, quando estavamos tentando fazer o Itinerario funcionar para os dois times. Eles nos pediram para fazer uma suite de testes que eles pudessem rodar e vericar que suas mudanc as n ao impactariam na gente, mas nunca conseguimos fazer isso funcionar direito. Mas agora n ao temos mais problemas.
D ANIEL

sua relac o com o grupo de Reservas? Qual e a


J ULIAN

os dois grupos trabalhavam juntos. Quando Super Entregas Anos atras, comec ou a crescer, dividimos o grupo e eu me tornei l der t ecnico do time de Ordem de Servic o. Alexandre se tornou l der do time de Reservas na mesma poca. e
D ANIEL

E como voc es interagem agora?


J ULIAN

levamos muito bem. Alexandre e eu sempre almoc ` sextas para Nos amos as garantir que n ao tenha nada mal-resolvido entre os times.

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

11

D ANIEL

o. Como e a interac o em Ent ao os l deres do times t em boa comunicac a a decis oes de design do dia-a-dia? Quero dizer, quando seu grupo precisa de o uma mudanc a no codigo de Reservas, voc e tem que fazer uma requisic a tocado informalmente entre os desenvolvedores? Isso vai formal, ou isso e diretamente de um desenvolvedor do seu time para outro do outro time, ou as pessoas do seu grupo precisam conversar com voc e antes e voc e passa isso adiante ou levanta a quest ao numa sess ao de planejamento?
J ULIAN

trabalhamos muito proximos Ah, entendo. Nos do time de Reservas. Nos bem facil conhecemos o modelo de objetos, o codigo e de entender. Os testes funcionam bem, o que torna facil fazer qualquer mudanc a no sistema deles precisamos. Nos temos que fazer umas mudanc de vez em que nos as la quando.
D ANIEL

Que tipo de mudanc a voc es fazem no codigo de Reservas?


J ULIAN

com a Por exemplo, uma das coisas que estamos brigando ultimamente e o entre Ac es e Instruc es de Carga. S relac a o o ao muito parecidos. Nem toda o e uma Instruc o de Carga. Existem algumas informac es no dom Ac a a o nio n de reservas que nos ao precisamos, e outras coisas que precisamos que n ao estivemos est ao no dom nio de reservas. Ent ao, ambas s ao necessarias. Nos clareando o modelo, e refatorando gradualmente para torna-los mais distintos.
N ARRADOR

[discuss ao: nucleo compartilhado e integrac a nua T o sentindo o cont cheiro de problema aqui. Eles compartilham codigo, que poderia ser um nucleo compartilhado, mas o processo de integrac a ao me parece o n forte o suciente para manter compartilhados os conceitos entre os dois times, nem os limites de cada Contexto Delimitado me parecem claros.] exatamente o processo de integrac o entre esse dois grupos? Vamos O que e a conferir. Julian, voc e pode chamar o Alexandre aqui? Cena 2
D ANIEL

Alexandre, voc e sabia que eles mudavam o seu codigo?

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

12

A LEXANDRE

Claro, se eles precisam de alguma mudanc a no nosso sistema eles v ao e fazem. Por isso que a gente tem testes. N ao precisa pedir permiss ao. O no outro pr escritorio deles e edio, ent ao ca mais dif cil de conversar. Prero que eles fac am por eles mesmos e n ao atrapalhem a gente, uma vez que sempre temos muita coisa pra fazer.
J ULIAN

o de algu Seria uma dor de cabec a se tiv essemos que ter a aprovac a em em podemos refatorar, rodar os testes para garantir que nada Reservas. Nos sempre mandamos um email quebrou e ent ao fazer commit do codigo. Nos para que eles saibam que zemos mudanc as e eles olham nosso codigo se tudo no Git. quiserem. Esta
N ARRADOR

es de Itinerarios. Aha! Estamos felizes em encontrar a ra z dos bugs nas Ac o Discuss ao: comparar o processo de Ordens de Servic o com o padr ao Nucleo Compartilhado. Como adequ a-lo? Denindo um nucleo com partilhado de verdade Fronteiras de contexto expl citas para o nucleo o Cont o codigo Conceitos de Integrac a nua, n ao so o Testes n ao garantem integrac a es Outras opc o Unir os times Time de Ordem de Servic o virar Conformista ou Cliente/Fornecedor Cena 3
N ARRADOR

es. Vamos dar uma olhada nas outras relac o


J ULIAN

usamos e o sistema de Workow. Quando O unico outro subsistema que nos o ocorre, Fluxomatic (que e a engine de um evento que precisa de noticac a Workow) pega esse evento e descobre quem deve ser noticado e envia a bem legal e facil o. E noticac a de congurar. O time da Clau cuida de todo trabalho do Fluxomatic.

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

13

D ANIEL

Sim, acho que eu devia falar com a Clau, mas at e agora ela n ao respondeu es de reuni minhas solicitac o ao.
J ULIAN

dif ` vezes. Elas n N ao meu surpreende. E cil encontrar essas pessoas as ao est ao ocialmente no departamento de desenvolvimento de software. Mas o deles, eles podem te Clau trabalha bem. Uma vez que voc e consiga a atenc a ajudar. Na verdade, eles est ao cuidando de uma parte cr tica do nosso proximo rele desviada, eles n ase. Quando uma carga e ao v ao apenas noticar as pessoas. Eles devem chamar de volta o servic o de rotas, gravar um novo Itinerario em algum lugar e ent ao enviar para algu em aprovar. E no m eles anexam o ` Carga. Muito legal! Itinerario a
N ARRADOR

[Figura. Workow como fornecedor de Ordem de Servic o] Cena 4


N ARRADOR

hora de falar com o time de WorkFlow E


C L AUDIA

um sistema completo de WorkFlow. pro em usar o Fluxomatic. E Nosso time e automatizamos um monte de tarefas administrativas do dia-a-dia. Voc Nos e o. sabe. Coisas como encaminhamento de ordens de compra para aprovac a Mas imagino que voc e queira falar sobre o nosso envolvimento no software de acompanhamento de cargas.
D ANIEL

meu interesse principal. Como funciona esse sistema? Esse e


C L AUDIA

estamos envolvidos. Por Toda vez que algu em precisa noticar algu em, nos noticamos o cliente. Quando uma exemplo, quando uma Carga chega, nos desviada, noticamos o gerente de operac es. Se o gerente n Carga e o ao pode responder, noticamos o subgerente no comando. O time de Ordem chama a API que a gente disponibiliza e a gente faz o resto. Nos de Servic o so conhecemos o contato principal e o de backup e se eles devem ser contatados por email ou celular. Isso torna as coisas mais faceis para os outros times.
D ANIEL

bem focado em noticac es. Voc o de Ent ao e o es tamb em fazem orquestrac a

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

14

outros programas ou sistemas?


C L AUDIA

o. Na verdade, a maioria Sim, fazemos isso, nos nossos uxos de administrac a dessas funcionalidades novas de acompanhamento de carga envolvem algum o. Por exemplo, quando uma carga e desviada, n tipo de coordenac a ao vamos es, como fazemos agora. Vamos chamar apenas noticar o gerente de operac o o Servic o de Rotas e achar um novo Itinerario. Quando o Servic o de Rotas n ao consegue encontrar um Itinerario viavel, ent ao ele ativa um workow para lidar com uma Carga n ao-roteavel.
N ARRADOR

[Figura Quantos contextos o time de workow gerencia? Quais os modelos e suas relac o es? Caminhos Separados ]
D ANIEL

Me parece um jeito legal de lidar com cargas desviadas. Ent ao, voc es t em uma API gen erica que eles usam para noticar algo como desvio de carga ou quando surge uma carga n ao-roteavel, ou voc es t em que estender sua API?
C L AUDIA

muito bom para conectar outros sistemas. Tem uma linguagem Fluxomatic e de script que usamos para chamar os sistemas deles. Tem uma la onde pegamos esses eventos e iniciamos o workow eles inserem eventos. Nos apropriado. assim que as funcionalidades atuais funcionam. Na verdade, eles pediram E o. algumas funcionalidades novas que precisariam de muito mais integrac a ainda n gastamos um bom tempo Nos ao trabalhamos muito nelas, mas ja em reuni oes e no telefone, trabalhando com o grupo de Ordem de Servic o do Julian, conversando sobre APIs. Os workows podem ser bem simples, se conseguirmos descobrir como manipular os objetos deles.
D ANIEL

o. Voc e parece desconfortavel com essa situac a


C L AUDIA

ter Eu n ao percebi, quando comec amos com isso, que nos amos que aprender como todo o resto funciona. Mas isso vai tomar algum tempo de um desen esta bem sobrecarregado volver dedicado per odo integral. Nosso quadro ja com os uxos administrativos. N ao sei quando a gente vai conseguir fazer entende o sistema deles o suciente para tentar alguma isso. Nenhum de nos coisa hoje.
N ARRADOR

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

15

Expectativas irreais por parte do time de Ordens de Servic o. Como consertar? o de Cliente/Fornecedor de verdade Estabelecer uma relac a Caminhos Separados?

ATO III- Desfechos


Cena 1
N ARRADOR

o: ClienteConito: Reservas e API Cliente-Fornecedor x Conformista Soluc a Fornecedor


A LEXANDRE

Vamos contratar duas pessoas novas para o nosso time. Elas v ao atender exclusivamente as demandas do time de APIs Externas.

N ARRADOR

Conito: Reservas e Ordem de Servic o mexem no mesmo sistema o: Nucleo Soluc a Compartilhado
J ULIAN

bem Um dos nossos programadores, o Luca Bastos, tem perl de lideranc a e e mexe no core. Senior. Vamos coloca-lo para gerenciar um novo time que so o cont o corac o Ningu em mais vai mexer. Teremos integrac a nua forte, pois e a fornecedor dos times de Reserva e Ordos nossos sistemas. E esse time sera dem de Servic o. o: Conito: Claudia muito ocupada. Soluc a
C L AUDIA

O presidente entendeu que temos muita demanda e n ao temos capacidade de atender, ent ao ele cancelou alguns projetos que ele considera secundario. mais dispon Assim, nosso time cara vel para atender as demandas o Julian.l

Cena 2 Xote do DDD Sou consultor, estrategista sou doutor

DOMAIN DRIVEN DESIGN - BASEADO NA PEC A DE ERIC EVANS

16

Te pergunto seu cliente: teu fornecedor? quem e conformista Se n ao existe tua sina e Dessa equipe a minha vista Tu depende sim sinh o D e D e D e N ao resolve os problemas, Mas ajuda a entender D e D e D e clareia as perguntas So que voc e vai responder trabalham lado a lado Quando dois times ja Tem nucleo compartilhado n So ao enxerga quem n ao v e O teu contexto deve ser delimitado Um sistema mapeado mais facil E de mexer D e D e D e N ao resolve os problemas, Mas ajuda a entender D e D e D e clareia as perguntas So que voc e vai responder

Você também pode gostar