SlideShare a Scribd company logo
Domain Driven Design
Ubiquitous Language 
UbiquitousLanguage@Fowler's blog
Ubiquitous Language 
That’s all there is to it
Ubiquitous Language 
That’s all there is to it 
Questions?
Client 
(Domain expert) 
Project Manager Developer 
We need to add a new 
security policy to our 
accounts. Our customers 
can’t have more than two 
active offers per billing term. 
We need to restrict 
promotions. A user cannot 
have more than two 
promotions per month. 
public function validate(User $user) 
{ 
// … other crazy validations 
if (count ($user->getPromotions()) > 2) 
throw new ValidationException( 
“User can’t have more than 2 
promotions per month” 
); 
// … continue with crazy validations 
}
Favor model language 
over translations
Client 
(Domain expert) 
Project Manager Developer 
We need to add a new 
security policy to our 
accounts. Our customers 
can’t have more than two 
active offers per billing term. 
public function validate(Account $account) 
{ 
// … other crazy validations 
if (! $account->satisfies( 
new ActiveOffersPerBillingTermSecurityPolicy 
)) 
throw new ValidationException( 
“Account did not satisfy the active offers 
security policy” 
); 
// … continue with crazy validations 
}
ActiveOffersPerBillingTerm 
SecurityPolicy 
… really? 
TOO MUCH CODE! 
I WON’T TYPE THAT!!!11
Semantics
Semantics 
ActiveOffersPerBillingTermSecurityPolicy means something 
in the MODEL LANGUAGE 
count($user->getPromotions()) > 2 
does not convey this knowledge
Semantics 
ActiveOffersPerBillingTermSecurityPolicy means something 
in the MODEL LANGUAGE 
count($user->getPromotions()) > 2 
does not convey this knowledge 
=> MAKE IMPLICIT BUSINESS RULES EXPLICIT
Favor model language 
over translations 
When a domain expert (client) feels something’s wrong with the model 
language, you’ll know something’s wrong with the domain model.
Client 
(Domain expert) 
Project Manager Developer 
When we talk about a billing 
term, we need to consider if 
the customer is billed on a 
monthly or yearly basis. 
| class ActiveOffersPerBillingTermSecurityPolicy 
| { 
| protected $maxOffers = 2; 
| 
| public function isSatisfiedBy(Account $account) 
| { 
| return count( 
- | $account->getMonthlyOffers() 
+ | $account->getOffersForBillingTerm() 
| ) < $this->maxOffers; 
| }
Domain Knowledge
Domain Knowledge 
Focus your efforts in building a clear domain, 
specific to your client’s needs
Knowledge crunching
Client 
(Domain expert) 
class LongOverdueCustomerContactCommand 
{ 
public function execute() 
{ 
$customers = Customer::where( 
‘account.balance’, ‘<’, 0 
)->get(); 
foreach ($customers as $customer) 
$this->sendRefinanceEmail($customer); 
} 
} 
Project Manager Developer 
We need to contact long 
overdue customers to 
refinance their debt.
Client 
(Domain expert) 
class LongOverdueCustomerContactCommand 
{ 
public function execute() 
{ 
$customers = Customer::where( 
‘account.balance’, ‘<’, 0 
)->get(); 
foreach ($customers as $customer) 
$this->sendRefinanceEmail($customer); 
} 
} 
Project Manager Developer 
We need to contact long 
overdue customers to 
refinance their debt.
Client 
(Domain expert) 
Project Manager Developer 
We need to contact long 
overdue customers to 
refinance their debt. 
What is the difference 
between a regular customer, 
an overdue customer and a 
long overdue customer?
Client 
(Domain expert) 
class CustomerRepository 
{ 
public function findOverdue() 
{ 
return Customer::where(‘account.balance’, ‘<’, 0) 
->get(); 
} 
public function findLongOverdue() 
{ 
// Write more complex query logic for this one... 
} 
} 
Project Manager Developer 
Overdue is straightforward, 
customers in debt right now. 
Long overdue customers are 
the ones that have been 
overdue over the last 3 
billing terms, at the end of 
each billing term.
Knowledge crunching 
Knowledge crunching deepens the domain 
model, and brings better understanding
But… How?
Domain-oriented 
Design Patterns
class AccountsController 
{ 
public function index() 
{ 
$accounts = Account::all(); 
return View::make(‘accounts.index’, [ 
‘accounts’ => $accounts 
]); 
} 
}
class AccountsController 
{ 
public function index() 
{ 
$accounts = Account::all(); 
return View::make(‘accounts.index’, [ 
‘accounts’ => $accounts 
]); 
} 
}
EvansClassification@Fowler's blog
Entities
Entities 
Objects with an identity 
Lifespan 
Unique criteria
ValueObjects
ValueObjects 
Defined by their attributes
Aggregates
Aggregates 
Cluster of domain objects 
Transactional coherence
Services
Services 
Domain coordinators 
Define actions
Repositories
Repositories 
Data access abstraction
Factories
Factories 
Object creation
Domain Events
Domain Events 
Objects that represent significant domain 
events
Domain-oriented 
Architecture
Layered Architecture
Layered Architecture
Hexagonal Architecture
Hexagonal Architecture
Domain-oriented 
Architecture 
Isolate your domain model from 
specific application needs: 
UI - Persistence - External Services - 
Application workflow - etc...
So… What’s the point?
It’s not about writing 
code
It’s not about writing 
code 
That’s the easy part… right?
It’s not about writing 
code 
It’s about understanding what needs to be 
solved before starting to code
Creating a language which 
makes conversations 
between domain experts and 
developers possible without 
misinterpretations
Creating a language which 
makes conversations 
between domain experts and 
developers possible without 
(so many) misinterpretations
● Eric Evans, “Domain-Driven Design: Tackling Complexity in the Heart of Software” 
● Vaughn Vernon, “Implementing Domain-Driven Design” 
● Martin Fowler, “Patterns of Enterprise Application Architecture” 
● dddcommunity.org | Domain Driven Design Community 
● -http://domainlanguage.com/ddd/reference/DDD_Reference_2011-01-31.pdf 
● -http://www.lmgtfy.com/?q=Domain+Driven+Design

More Related Content

Similar to Introduction to Domain driven design (LaravelBA #5)

Week 8
Week 8Week 8
Week 8A VD
 
Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Building and deploying microservices with event sourcing, CQRS and Docker (Me...Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Building and deploying microservices with event sourcing, CQRS and Docker (Me...Chris Richardson
 
Qbesv5 Peer Presentation
Qbesv5 Peer PresentationQbesv5 Peer Presentation
Qbesv5 Peer Presentationsimplymaximus
 
Airbnb - Braavos - Whered My Money Go
Airbnb - Braavos - Whered My Money GoAirbnb - Braavos - Whered My Money Go
Airbnb - Braavos - Whered My Money GoJiang-Ming Yang
 
Atl elevate programmatic developer slides
Atl elevate programmatic developer slidesAtl elevate programmatic developer slides
Atl elevate programmatic developer slidesDavid Scruggs
 
Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...Chris Richardson
 
Detroit ELEVATE Track 2
Detroit ELEVATE Track 2Detroit ELEVATE Track 2
Detroit ELEVATE Track 2Joshua Birk
 
AWS RoadShow Manchester Part 3 - Getting Started with AWS
AWS RoadShow Manchester Part 3 - Getting Started with AWSAWS RoadShow Manchester Part 3 - Getting Started with AWS
AWS RoadShow Manchester Part 3 - Getting Started with AWSIan Massingham
 
AWS RoadShow Bristol - Part 2 Getting Started with AWS
AWS RoadShow Bristol - Part 2 Getting Started with AWSAWS RoadShow Bristol - Part 2 Getting Started with AWS
AWS RoadShow Bristol - Part 2 Getting Started with AWSIan Massingham
 
AWS RoadShow Dublin - Part 3 Getting Started with AWS
AWS RoadShow Dublin - Part 3 Getting Started with AWSAWS RoadShow Dublin - Part 3 Getting Started with AWS
AWS RoadShow Dublin - Part 3 Getting Started with AWSIan Massingham
 
AWS RoadShow Cambridge Part 4 - Getting Started with AWS
AWS RoadShow Cambridge Part 4 - Getting Started with AWSAWS RoadShow Cambridge Part 4 - Getting Started with AWS
AWS RoadShow Cambridge Part 4 - Getting Started with AWSIan Massingham
 
Beyond MVC: from Model to Domain
Beyond MVC: from Model to DomainBeyond MVC: from Model to Domain
Beyond MVC: from Model to DomainJeremy Cook
 
Practical AngularJS
Practical AngularJSPractical AngularJS
Practical AngularJSWei Ru
 
Intro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite AppsIntro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite Appsdreamforce2006
 
Navjot_Resume_2017_Latest
Navjot_Resume_2017_LatestNavjot_Resume_2017_Latest
Navjot_Resume_2017_LatestNavjot Thakur
 
Agile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoAgile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoMoldova ICT Summit
 
Developing Next-Gen Enterprise Web Application
Developing Next-Gen Enterprise Web ApplicationDeveloping Next-Gen Enterprise Web Application
Developing Next-Gen Enterprise Web ApplicationMark Gu
 
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Konstantin Kudryashov
 
In Visual Studios C# console app using multiple class files create a.pdf
In Visual Studios C# console app using multiple class files create a.pdfIn Visual Studios C# console app using multiple class files create a.pdf
In Visual Studios C# console app using multiple class files create a.pdfsanjeevbansal1970
 

Similar to Introduction to Domain driven design (LaravelBA #5) (20)

Week 8
Week 8Week 8
Week 8
 
Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Building and deploying microservices with event sourcing, CQRS and Docker (Me...Building and deploying microservices with event sourcing, CQRS and Docker (Me...
Building and deploying microservices with event sourcing, CQRS and Docker (Me...
 
Qbesv5 Peer Presentation
Qbesv5 Peer PresentationQbesv5 Peer Presentation
Qbesv5 Peer Presentation
 
Airbnb - Braavos - Whered My Money Go
Airbnb - Braavos - Whered My Money GoAirbnb - Braavos - Whered My Money Go
Airbnb - Braavos - Whered My Money Go
 
Atl elevate programmatic developer slides
Atl elevate programmatic developer slidesAtl elevate programmatic developer slides
Atl elevate programmatic developer slides
 
Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...Building microservices with Scala, functional domain models and Spring Boot (...
Building microservices with Scala, functional domain models and Spring Boot (...
 
Detroit ELEVATE Track 2
Detroit ELEVATE Track 2Detroit ELEVATE Track 2
Detroit ELEVATE Track 2
 
AWS RoadShow Manchester Part 3 - Getting Started with AWS
AWS RoadShow Manchester Part 3 - Getting Started with AWSAWS RoadShow Manchester Part 3 - Getting Started with AWS
AWS RoadShow Manchester Part 3 - Getting Started with AWS
 
AWS RoadShow Bristol - Part 2 Getting Started with AWS
AWS RoadShow Bristol - Part 2 Getting Started with AWSAWS RoadShow Bristol - Part 2 Getting Started with AWS
AWS RoadShow Bristol - Part 2 Getting Started with AWS
 
AWS RoadShow Dublin - Part 3 Getting Started with AWS
AWS RoadShow Dublin - Part 3 Getting Started with AWSAWS RoadShow Dublin - Part 3 Getting Started with AWS
AWS RoadShow Dublin - Part 3 Getting Started with AWS
 
AWS RoadShow Cambridge Part 4 - Getting Started with AWS
AWS RoadShow Cambridge Part 4 - Getting Started with AWSAWS RoadShow Cambridge Part 4 - Getting Started with AWS
AWS RoadShow Cambridge Part 4 - Getting Started with AWS
 
Beyond MVC: from Model to Domain
Beyond MVC: from Model to DomainBeyond MVC: from Model to Domain
Beyond MVC: from Model to Domain
 
Practical AngularJS
Practical AngularJSPractical AngularJS
Practical AngularJS
 
Intro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite AppsIntro to AppExchange - Building Composite Apps
Intro to AppExchange - Building Composite Apps
 
Navjot_Resume_2017_Latest
Navjot_Resume_2017_LatestNavjot_Resume_2017_Latest
Navjot_Resume_2017_Latest
 
Agile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai ShevchenkoAgile methodologies based on BDD and CI by Nikolai Shevchenko
Agile methodologies based on BDD and CI by Nikolai Shevchenko
 
ELEVATE Paris
ELEVATE ParisELEVATE Paris
ELEVATE Paris
 
Developing Next-Gen Enterprise Web Application
Developing Next-Gen Enterprise Web ApplicationDeveloping Next-Gen Enterprise Web Application
Developing Next-Gen Enterprise Web Application
 
Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015Min-Maxing Software Costs - Laracon EU 2015
Min-Maxing Software Costs - Laracon EU 2015
 
In Visual Studios C# console app using multiple class files create a.pdf
In Visual Studios C# console app using multiple class files create a.pdfIn Visual Studios C# console app using multiple class files create a.pdf
In Visual Studios C# console app using multiple class files create a.pdf
 

Recently uploaded

IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesThousandEyes
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...Product School
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2DianaGray10
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Product School
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...Product School
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Product School
 

Recently uploaded (20)

IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2UiPath Test Automation using UiPath Test Suite series, part 2
UiPath Test Automation using UiPath Test Suite series, part 2
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...Designing Great Products: The Power of Design and Leadership by Chief Designe...
Designing Great Products: The Power of Design and Leadership by Chief Designe...
 

Introduction to Domain driven design (LaravelBA #5)