SlideShare a Scribd company logo
1 of 94
Drivingā€©yourā€©DBAā€©crazyā€©
    inā€©3ā€©easyā€©steps




  aā€©scaryā€©storyā€©byā€©@ziobrando
Aboutā€©me
Inā€©theā€©ITā€©ļ¬eldā€©sinceā€©ZXā€©Spectrum
Generallyā€©inā€©largeā€©scaleā€©projectsā€©(Iā€©mightā€©beā€©biased)
Freelanceā€©consultant:ā€©NotOnlyCode
Trainerā€©(Freelanceā€©&ā€©Skillsā€©MaBerā€©+ā€©Zenika)
Technicalā€©Writer
Blogger:ā€©h?p://ziobrando.blogspot.com
TwiBer:ā€©ziobrandoā€©

Myā€©eā€mail:ā€©
alberto.brandolini@gmail.com
@avanscoperta
www.avanscoperta.it
avanscoperta.wordpress.com
alberto.brandolini@avanscoperta.it




                               Ā©ā€©Albertoā€©Brandoliniā€©2009
Itā€©startedā€©small
Itā€©grew
Itā€©becameā€©moreā€©andā€©moreā€©complex
Somebodyā€™sā€©goBaā€©beā€©
   responsibleā€©
     forā€©that
Useful
butā€©sHll...
Whenā€©itā€©comesā€©toā€©runā€©aā€©
queryā€©withā€©16ā€©joinsā€©youā€™reā€©
   theā€©personā€©toā€©call...
Whenā€©itā€©comesā€©toā€©runā€©aā€©
queryā€©withā€©16ā€©joinsā€©youā€™reā€©
   theā€©personā€©toā€©call...




   Youā€©canā€©sayā€©itā€©
     loud,ā€©pal
Soā€©howā€©doā€©Iā€©designā€©aā€©
queryā€©withā€©16ā€©joins?
Iā€©donā€™tā€©know
Iā€©donā€™t
Iā€™dā€©ratherā€©exploreā€©theā€©domain
Whileā€©Jackā€©works
...inā€©bulkā€©mode,ā€©ofā€©
       course
Typeā€©1ā€©andā€©Typeā€©2
int Type = 1;
int Type = 1;
                st h is
        a td oe     !!!
    W h
             ea n??
     lin em
ifā€©Germanyā€©isā€©Typeā€©
6ā€©andā€©Wednesdayā€©isā€©typeā€©
  Aā€©thenā€©typeā€©1ā€©shouldā€©
        beā€©...Red
So youā€™d use a ā€œreadable dataā€, ... are
     you a communist or a lady?
Analyst
             Domain
             Expert                           Developer      Developer




Interviews
                                  Ubiquitous
                                  Language                          Whiteboard
                                                                    discussions




               Application
                 Code                                       Specs and
                                  Test Code               documentation



                                                                           Ā©ā€©Albertoā€©Brandoliniā€©2011
Analyst
             Domain
             Expert                           Developer      Developer




Interviews
                                  Ubiquitous
                                  Language                          Whiteboard
                                                                    discussions
                                                                                        SQL




               Application
                 Code                                       Specs and
                                  Test Code               documentation

                                                                                  DBA

                                                                                    Ā©ā€©Albertoā€©Brandoliniā€©2011
So You want to speak the Ubiquitous
     Language, you scumbag?




                                      Ā©ā€©Albertoā€©Brandoliniā€©2011
So You want to speak the Ubiquitous
     Language, you scumbag?




             The only ubiquitous Language is SQL!
                  Every Database speaks it!
                                       Ā©ā€©Albertoā€©Brandoliniā€©2011
What is a Type 1 you
                             scumbag?!




A Type 1 is a Type 1, sir!

                             I canā€™t hear
                                 you!!
Whatā€©isā€©theā€©complexityā€©
  youā€™reā€©tackling?
Accidental           Domainā€©
 Complexity          Complexity
    Conventions
                        Behaviour
   Primary Keys
                        SemanHcs
        Joins
                         Language
 Legacy encoding
                    Conceptualā€©integrity
      Replicas
                     Contextā€©Boundary
Stored procedures
                      Domainā€©Events
      Triggers
Howā€©muchā€©Hmeā€©isā€©
neededā€©forā€©aā€©newlyā€©
hiredā€©developerā€©toā€©
 startā€©beingā€©reallyā€©
    producHve?
Howā€©manyā€©thingsā€©weā€©
needā€©toā€©knowā€©beforeā€©
 contribuHngā€©toā€©theā€©
      system?ā€©
Aā€©newā€©businessā€©
requirementā€©impacRngā€©
 theā€©applicaRonā€©inā€©20ā€©
 diļ¬€erentā€©pointsā€©isā€©anā€©
 architectureā€©problem
unsurprisingly,ā€©theā€©moreā€©
rulesā€©youā€©have,ā€©theā€©harderā€©itā€©
        isā€©toā€©evolve...
You can give your heart to DDD,
but your ass belongs to the DB!
Thingsā€©youā€©donā€™tā€©
share,ā€©evenā€©withā€©
yourā€©bestā€©friend
Yourā€©Toothbrush
Yourā€©Comicsā€©CollecHon




   Yourā€©Database
Yourā€©Harleyā€Davidson
Theā€©operaHngā€©room
Yourā€©Database
THIS DATABASE IS
 MY DATABASE
   TRESPASSERS
   WILL BE SHOT
 SURVIVORS WILL
  BE SHOT AGAIN
             Ā©ā€©Albertoā€©Brandoliniā€©2011
Boundedā€©Context

ā€   Context:ā€©aā€©seSngā€©whereā€©aā€©wordā€©      Shipping


    appearsā€©thatā€©determinesā€©itsā€©
    meaning

ā€   Aā€©porRonā€©ofā€©theā€©systemā€©whereā€©theā€©
    Ubiquitousā€©languageā€©isā€©consistent   Payment




                                               Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
Heā€™sā€©probablyā€©notā€©goingā€©toā€©likeā€©it
                             Ā©ā€©Albertoā€©Brandoliniā€©2011
Theā€©inļ¬niteā€©workļ¬‚ow
add/remove Item



                                                                           Ready for
        Open      ļ¬nalize        Closed         select DeliveryAddress   ShippingMode
                                                                           Selection

                                                                         select Shipping Mode



                                    Ready for                               Ready for
      Shipped         ship                                    pay
                                    Delivery                                Payment



        deliver




     Delivered          return            Returned




                                                                                Ā©ā€©Albertoā€©Brandoliniā€©2011
Notā€©theā€©sameā€©EnHty
Notā€©theā€©sameā€©
 Aggregate
Aggregate




            Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
Aggregate


Aā€©groupā€©ofā€©objectsā€©thatā€©
naturallyā€©belongā€©together
Unitā€©ofā€©consistencyā€©inā€©theā€©
domainā€©model

updatedā€©inā€©theā€©sameā€©
transacHon
deletedā€©together
transferredā€©together

                              Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
Aggregate
                              <<Entity>>         <<Value Object>>

                                         Order           LineItem
                              date               goods
Aā€©groupā€©ofā€©objectsā€©thatā€©      customer
                              amount
                                                 quantity
                                                 notes

naturallyā€©belongā€©together
                              ...
                                                 subtotal()
                              update()           ...
                              close()
Unitā€©ofā€©consistencyā€©inā€©theā€©   ship()
                              ...

domainā€©model                  <<Value Object>>
                                                 <<Value Object>>

                                                            Money
                                      Customer
                                                 currency

updatedā€©inā€©theā€©sameā€©
                              name               amount
                              surname
                              address            plus(Money other)

transacHon
                                                 minus(Money other)
                                                 ...


deletedā€©together
transferredā€©together

                                                         Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
Customer


                   add/remove Item



                                                                                                     Ready for
       addTocart           Open      ļ¬nalize        Closed         select DeliveryAddress          ShippingMode
                                                                                                     Selection

                                                                                                   select Shipping Mode



                                                       Ready for                                        Ready for
                         Shipped         ship                                    pay
                                                       Delivery                                         Payment



                           deliver
Logistics


                                                                                            Financial
                                                                                              Dept
                        Delivered          return            Returned




                                                                                               Customer
                                                                                                 Care           Ā©ā€©Albertoā€©Brandoliniā€©2011
Diļ¬€erentā€©Domainā€©Experts

             Diļ¬€erentā€©Goals
 Diļ¬€erentā€©Language
                 Diļ¬€erentā€©Models
Diļ¬€erentā€©Boundedā€©Contexts
              Diļ¬€erentā€©Aggregates
                            Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
Andā€©thisā€©willā€©leadā€©to...
DuplicaHon
Dontā€™ā€©
Repeatā€©
Yourself
ā€œEveryā€©pieceā€©ofā€©knowledgeā€©mustā€©
 haveā€©aā€©single,ā€©unambiguous,ā€©
  authorita;veā€©representa;onā€©
       withinā€©aā€©systemā€

      Andyā€©Huntā€©ā€ā€©Theā€©Pragma;cā€©
                   Programmer
Theā€©duplicaHonā€©dogma
Whatā€©doesā€©YOUā€©mean?
Theā€©costā€©ofā€©avoidingā€©
duplicaRonā€©increasesā€©
     withā€©scale
Whatā€©doesā€©withinā€©aā€©
 systemā€©mean?
Considerā€©couplingā€©also
...ā€©andā€©byā€©theā€©way,ā€©
weā€™reā€©notā€©violaHngā€©theā€©
    DRYā€©anyway...
          :ā€)
Dataā€©DuplicaHonā€©!=ā€©
behaviorā€©duplicaHon
MulHpleā€©aggregates
                               Money
                    currency
                    amount

                    plus(Money other)
                    minus(Money other)
                    ...




 <<Entity>>         <<Root>>             <<Value Object>>
                                                                                     <<Entity>>    <<Root>>
            Order                                    LineItem
                                                                                             Customer
 date                                    goods
                                                                                     name
 customer                                quantity
                                                                                     surname
 amount                                  notes
                                                                                     address
 ...
                                         subtotal()                                  ...
 update()                                ...
                                                                                     updateDiscount()
 close()
                                                                                     ...
 ship()
 ...


                                              shipping address
 <<Value Object>>

      CustomerData
                                   billing address
 name
 surname                                                         <<Value Object>>

                                                                           Address
                                              <<Value Object>>   street
                                                                 city
                                                                 country
                                                                 zipcode




                                                                                                              Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
Th
a g atā€™s
   g re M
       ga Y
         te?
            ...
Aggregateā€©modelingā€©Hpā€©(fromā€©
         UDIā€©Dahan):

  Groupā€©wordsā€©accordingā€©toā€©theā€©
 conversaRonsā€©youā€©useā€©themā€©in,ā€©
    incluteā€©aBributes,ā€©notā€©onlyā€©
 classes.ā€©Diļ¬€erentā€©Stakeholders/
Domainā€©Expertsā€©willā€©useā€©diļ¬€erentā€©
  wordsā€©toā€©fulļ¬llā€©diļ¬€erentā€©goals
Eventsā€©andā€©aggregateā€©coordinaHon
 ā€ OperaRonsā€©spanningā€©mulRpleā€©
    aggregatesā€©shouldnā€™tā€©beā€©inā€©theā€©sameā€©
    Unitā€©ofā€©Workā€©

ā€   CommunicaRonā€©betweenā€©aggregatesā€©       <<Domain Event>>
    isā€©inherentlyā€©asynchronous                   OrderPurchased


ā€   Domainā€©Eventsā€©asā€©aā€©communicaRonā€©
                                           order
                                           where
    mechanism                              when
                                           amount
    ā€   fromā€©theā€©outside                   payment method

    ā€   amongā€©aggregates                   ...

                                           ...

                                                       Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
Asynchronouslyā€©respondingā€©toā€©events
                                                          <<Domain Event>>
                                                                OrderPurchased

                                                          order
                                                          where
                                                          when
                                                          amount
      <<Entity>>       <<Root>>                           payment method         s u bs                    <<Entity>>    <<Root>>
                                                   s to   ...                             cri b
               Order              su b   s c ri be                                                e s to
                                                                                                                   Customer
      date                                                ...
                                                                                                           name
      customer
                                                                                                           surname
      amount
                                                                                                           address
      ...
                                                                                                           ...
      onPurchaseEvent(...)
                                                                                                           onPurchaseEvent(...)
      update()
                                                                                                           updateDiscount()
      close()
                                                                                                           ...
      ship()
      ...




ā€   Donā€™tā€©forget:ā€©Businessā€©rulesā€©everything!!!

                                                                                                                        Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
Theā€©paperā€basedā€©system



Manyā€©businessā€©preā€dateā€©computers
TransacHonsā€©areā€©oeenā€©NOTā€©aā€©
businessā€©concern
Dataā€©mightā€©beā€©stale...ā€©acceptā€©it
ASKā€©theā€©Business
!   Singleā€©sourceā€©ofā€©truth?




                        Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
!        Singleā€©sourceā€©ofā€©truth?


    ā€   Onceā€©itā€©usedā€©beā€©paper...ā€©




                                    Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
!      Singleā€©sourceā€©ofā€©truth?


    ā€Onceā€©itā€©usedā€©beā€©paper...ā€©
    ā€ nowā€©theā€©bestā€©candidateā€©isā€©Events



                                 Ā©ā€©Albertoā€©Brandoliniā€©ā€ā€©2010
Thatā€™sā€©gonnaā€©makeā€©himā€©REALLYā€©angry




                           Ā©ā€©Albertoā€©Brandoliniā€©2011
Ā©ā€©Albertoā€©Brandoliniā€©2011
Ā©ā€©Albertoā€©Brandoliniā€©2011
Doesā€©itā€©reallyā€©haveā€©toā€©
   endā€©likeā€©that?
Eā€™ā€©necessarioā€©unā€©processoā€©diā€©
  sviluppoā€©agile,ā€©cheā€©permeBaā€©diā€©
 raccogliereā€©ilā€©feedbackā€©diā€©utenHā€©eā€©
 Ourā€©goalā€©isā€©toā€©establishā€©aā€©creaHveā€©
domainā€©experts,ā€©inā€©iterazioniā€©brevi.
           collaboraHon
                             Ā©ā€©Albertoā€©Brandoliniā€©2009
Weā€©didā€©itā€©withā€©theā€©worstā€©Domainā€©
Experts...ā€©canā€™tā€©weā€©doā€©itā€©withā€©theā€©DBA?
                                 Ā©ā€©Albertoā€©Brandoliniā€©2009
Weā€©didā€©itā€©withā€©theā€©worstā€©Domainā€©
Experts...ā€©canā€™tā€©weā€©doā€©itā€©withā€©theā€©DBA?
                                 Ā©ā€©Albertoā€©Brandoliniā€©2009
Humbleā€©Tips:
Personalityā€©Rules
Startā€©small
Workā€©Safely
Shareā€©theā€©fun
Behave
Thankā€©you
alberto.brandolini@avanscoperta.it
  hBp://ziobrando.blogspot.com
         twiBer:ā€©ziobrando

More Related Content

What's hot

8 Secrets to Winning Pitches - LIKE A BOSS
8 Secrets to Winning Pitches - LIKE A BOSS8 Secrets to Winning Pitches - LIKE A BOSS
8 Secrets to Winning Pitches - LIKE A BOSSHappy Marketer
Ā 
Tips from Calvin and Hobbes on how to be a good customer
Tips from Calvin and Hobbes on how to be a good customerTips from Calvin and Hobbes on how to be a good customer
Tips from Calvin and Hobbes on how to be a good customerFreshdesk Inc.
Ā 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with DataSeth Familian
Ā 
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
5 Conversation Tips to Make You More Memorable in 30 Seconds or LessCrash Course
Ā 
Design Your Career 2018
Design Your Career 2018Design Your Career 2018
Design Your Career 2018Slides That Rock
Ā 
Secrets to a Great Team
Secrets to a Great TeamSecrets to a Great Team
Secrets to a Great TeamElodie A.
Ā 
Secrets to impactful presentations volume 2 - 8 tools
Secrets to impactful presentations volume 2 - 8 toolsSecrets to impactful presentations volume 2 - 8 tools
Secrets to impactful presentations volume 2 - 8 toolsHavain
Ā 
Management 3.0 - Empower Teams
Management 3.0 - Empower TeamsManagement 3.0 - Empower Teams
Management 3.0 - Empower TeamsJurgen Appelo
Ā 
What Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating PresentersWhat Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating PresentersHubSpot
Ā 
How NOT to Run Your Company ā€“ Lessons Learned
How NOT to Run Your Company ā€“ Lessons LearnedHow NOT to Run Your Company ā€“ Lessons Learned
How NOT to Run Your Company ā€“ Lessons LearnedWeekdone.com
Ā 
How To Avoid Sending Selfish "Just Checking In" Follow Up Emails
How To Avoid Sending Selfish "Just Checking In" Follow Up EmailsHow To Avoid Sending Selfish "Just Checking In" Follow Up Emails
How To Avoid Sending Selfish "Just Checking In" Follow Up EmailsHubSpot
Ā 
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)Board of Innovation
Ā 
100 growth hacks 100 days | 1 to 10
100 growth hacks 100 days | 1 to 10100 growth hacks 100 days | 1 to 10
100 growth hacks 100 days | 1 to 10Robin Yjord
Ā 
Upstream : Book summary
Upstream  : Book summaryUpstream  : Book summary
Upstream : Book summaryPrasad Kaushik
Ā 
Developing Agile Leadership
Developing Agile LeadershipDeveloping Agile Leadership
Developing Agile LeadershipPete Behrens
Ā 
WTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx versionWTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx versionTim O'Reilly
Ā 
10 Ways Your Boss Kills Employee Motivation
10 Ways Your Boss Kills Employee Motivation10 Ways Your Boss Kills Employee Motivation
10 Ways Your Boss Kills Employee MotivationOfficevibe
Ā 
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush PresentationsFight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush PresentationsDigital Surgeons
Ā 

What's hot (20)

8 Secrets to Winning Pitches - LIKE A BOSS
8 Secrets to Winning Pitches - LIKE A BOSS8 Secrets to Winning Pitches - LIKE A BOSS
8 Secrets to Winning Pitches - LIKE A BOSS
Ā 
Tips from Calvin and Hobbes on how to be a good customer
Tips from Calvin and Hobbes on how to be a good customerTips from Calvin and Hobbes on how to be a good customer
Tips from Calvin and Hobbes on how to be a good customer
Ā 
Why Presentations Matter
Why Presentations MatterWhy Presentations Matter
Why Presentations Matter
Ā 
Visual Design with Data
Visual Design with DataVisual Design with Data
Visual Design with Data
Ā 
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
5 Conversation Tips to Make You More Memorable in 30 Seconds or Less
Ā 
Design Your Career 2018
Design Your Career 2018Design Your Career 2018
Design Your Career 2018
Ā 
Secrets to a Great Team
Secrets to a Great TeamSecrets to a Great Team
Secrets to a Great Team
Ā 
Secrets to impactful presentations volume 2 - 8 tools
Secrets to impactful presentations volume 2 - 8 toolsSecrets to impactful presentations volume 2 - 8 tools
Secrets to impactful presentations volume 2 - 8 tools
Ā 
Management 3.0 - Empower Teams
Management 3.0 - Empower TeamsManagement 3.0 - Empower Teams
Management 3.0 - Empower Teams
Ā 
What Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating PresentersWhat Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
What Would Steve Do? 10 Lessons from the World's Most Captivating Presenters
Ā 
How Not To Suck at Powerpoint
How Not To Suck at PowerpointHow Not To Suck at Powerpoint
How Not To Suck at Powerpoint
Ā 
How NOT to Run Your Company ā€“ Lessons Learned
How NOT to Run Your Company ā€“ Lessons LearnedHow NOT to Run Your Company ā€“ Lessons Learned
How NOT to Run Your Company ā€“ Lessons Learned
Ā 
How To Avoid Sending Selfish "Just Checking In" Follow Up Emails
How To Avoid Sending Selfish "Just Checking In" Follow Up EmailsHow To Avoid Sending Selfish "Just Checking In" Follow Up Emails
How To Avoid Sending Selfish "Just Checking In" Follow Up Emails
Ā 
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
How I got 2.5 Million views on Slideshare (by @nickdemey - Board of Innovation)
Ā 
100 growth hacks 100 days | 1 to 10
100 growth hacks 100 days | 1 to 10100 growth hacks 100 days | 1 to 10
100 growth hacks 100 days | 1 to 10
Ā 
Upstream : Book summary
Upstream  : Book summaryUpstream  : Book summary
Upstream : Book summary
Ā 
Developing Agile Leadership
Developing Agile LeadershipDeveloping Agile Leadership
Developing Agile Leadership
Ā 
WTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx versionWTF - Why the Future Is Up to Us - pptx version
WTF - Why the Future Is Up to Us - pptx version
Ā 
10 Ways Your Boss Kills Employee Motivation
10 Ways Your Boss Kills Employee Motivation10 Ways Your Boss Kills Employee Motivation
10 Ways Your Boss Kills Employee Motivation
Ā 
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush PresentationsFight for Yourself: How to Sell Your Ideas and Crush Presentations
Fight for Yourself: How to Sell Your Ideas and Crush Presentations
Ā 

Viewers also liked

Service Oriented Agility @ Italian Agile Day - Bologna 2008
Service Oriented Agility @ Italian Agile Day - Bologna 2008Service Oriented Agility @ Italian Agile Day - Bologna 2008
Service Oriented Agility @ Italian Agile Day - Bologna 2008Alberto Brandolini
Ā 
SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...
SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...
SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...Rinat Abdullin
Ā 
Enterprise-Class DSL In Groovy & Grails
Enterprise-Class DSL In Groovy & GrailsEnterprise-Class DSL In Groovy & Grails
Enterprise-Class DSL In Groovy & GrailsAlberto Brandolini
Ā 
Fifty shades of fail - redefining success and failure from a lean perspective
Fifty shades of fail - redefining success and failure from a lean perspectiveFifty shades of fail - redefining success and failure from a lean perspective
Fifty shades of fail - redefining success and failure from a lean perspectiveFrancesco Degrassi
Ā 
Writing Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in GroovyWriting Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in GroovyGuillaume Laforge
Ā 
Software ...e tutto ciĆ² che comporta
Software ...e tutto ciĆ² che comportaSoftware ...e tutto ciĆ² che comporta
Software ...e tutto ciĆ² che comportaAlberto Brandolini
Ā 
Buzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOABuzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOAAlberto Brandolini
Ā 
Il Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiIl Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiMassimo Azzolini
Ā 
Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Alberto Brandolini
Ā 
Comparing different concurrency models on the JVM
Comparing different concurrency models on the JVMComparing different concurrency models on the JVM
Comparing different concurrency models on the JVMMario Fusco
Ā 
Design leadership and experience management
Design leadership and experience managementDesign leadership and experience management
Design leadership and experience managementLuca Mascaro
Ā 
Context Mapping In Action
Context Mapping In ActionContext Mapping In Action
Context Mapping In ActionAlberto Brandolini
Ā 
Projections explained
Projections explainedProjections explained
Projections explainedYves Reynhout
Ā 
The final words about software estimation
The final words about software estimationThe final words about software estimation
The final words about software estimationAlberto Brandolini
Ā 

Viewers also liked (20)

Service Oriented Agility @ Italian Agile Day - Bologna 2008
Service Oriented Agility @ Italian Agile Day - Bologna 2008Service Oriented Agility @ Italian Agile Day - Bologna 2008
Service Oriented Agility @ Italian Agile Day - Bologna 2008
Ā 
SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...
SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...
SHA256E-s4653225--ef2748b2633ddfcaa46f215cc3d9bb9b4bc8bb05b6cacfa6f137c014e6e...
Ā 
Enterprise-Class DSL In Groovy & Grails
Enterprise-Class DSL In Groovy & GrailsEnterprise-Class DSL In Groovy & Grails
Enterprise-Class DSL In Groovy & Grails
Ā 
Possiamo Fare Di Meglio
Possiamo Fare Di MeglioPossiamo Fare Di Meglio
Possiamo Fare Di Meglio
Ā 
Agile Piano B
Agile Piano BAgile Piano B
Agile Piano B
Ā 
Fifty shades of fail - redefining success and failure from a lean perspective
Fifty shades of fail - redefining success and failure from a lean perspectiveFifty shades of fail - redefining success and failure from a lean perspective
Fifty shades of fail - redefining success and failure from a lean perspective
Ā 
Writing Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in GroovyWriting Domain-Specific Languages in Groovy
Writing Domain-Specific Languages in Groovy
Ā 
Software ...e tutto ciĆ² che comporta
Software ...e tutto ciĆ² che comportaSoftware ...e tutto ciĆ² che comporta
Software ...e tutto ciĆ² che comporta
Ā 
Buzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOABuzzword Deathmatch: Agile vs SOA
Buzzword Deathmatch: Agile vs SOA
Ā 
Il Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passiIl Web design nella Pubblica Amministrazione in 10 passi
Il Web design nella Pubblica Amministrazione in 10 passi
Ā 
Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014Why do all my ddd apps look the same - Vienna 2014
Why do all my ddd apps look the same - Vienna 2014
Ā 
Optimized for what
Optimized for whatOptimized for what
Optimized for what
Ā 
Comparing different concurrency models on the JVM
Comparing different concurrency models on the JVMComparing different concurrency models on the JVM
Comparing different concurrency models on the JVM
Ā 
Design leadership and experience management
Design leadership and experience managementDesign leadership and experience management
Design leadership and experience management
Ā 
Model storming
Model stormingModel storming
Model storming
Ā 
Context Mapping In Action
Context Mapping In ActionContext Mapping In Action
Context Mapping In Action
Ā 
Projections explained
Projections explainedProjections explained
Projections explained
Ā 
Transactions redefined
Transactions redefinedTransactions redefined
Transactions redefined
Ā 
Event storming recipes
Event storming recipesEvent storming recipes
Event storming recipes
Ā 
The final words about software estimation
The final words about software estimationThe final words about software estimation
The final words about software estimation
Ā 

Similar to Drive your dba crazy in 3 easy steps

Global im blueprinting security tcw 2012 02-22
Global im blueprinting security tcw 2012 02-22Global im blueprinting security tcw 2012 02-22
Global im blueprinting security tcw 2012 02-22Catharine Macdonald
Ā 
Worklight Overview
Worklight OverviewWorklight Overview
Worklight OverviewAndrew Ferrier
Ā 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETjbandi
Ā 
OjoConsulting Oy Image Service description
OjoConsulting Oy Image Service descriptionOjoConsulting Oy Image Service description
OjoConsulting Oy Image Service descriptionOjoconsulting Oy
Ā 
OpenERP - Building a better, global product with the community
OpenERP - Building a better, global product with the communityOpenERP - Building a better, global product with the community
OpenERP - Building a better, global product with the communityOdoo
Ā 
XBRL Conference Brussels - Bas Groenveld And Paul Hulst - Xbrl Detail Tagging...
XBRL Conference Brussels - Bas Groenveld And Paul Hulst - Xbrl Detail Tagging...XBRL Conference Brussels - Bas Groenveld And Paul Hulst - Xbrl Detail Tagging...
XBRL Conference Brussels - Bas Groenveld And Paul Hulst - Xbrl Detail Tagging...Paul Hulst
Ā 
Eon nus hci_master_class
Eon nus hci_master_classEon nus hci_master_class
Eon nus hci_master_classTianwei_liu
Ā 
Ada 2012
Ada 2012Ada 2012
Ada 2012AdaCore
Ā 
IBM Worklight - Technical Overview
IBM Worklight - Technical OverviewIBM Worklight - Technical Overview
IBM Worklight - Technical OverviewIIC_Barcelona
Ā 
Doppl Code Sharing
Doppl Code SharingDoppl Code Sharing
Doppl Code SharingKevin Galligan
Ā 
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptxKOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptxShantanuApurva1
Ā 
Flex 3 Deep Dive
Flex 3 Deep DiveFlex 3 Deep Dive
Flex 3 Deep DiveEffective
Ā 
IntlandSoftware: codeBeamer 6.0 + Requirements Management
IntlandSoftware: codeBeamer 6.0 + Requirements Management IntlandSoftware: codeBeamer 6.0 + Requirements Management
IntlandSoftware: codeBeamer 6.0 + Requirements Management Intland Software GmbH
Ā 
IP Creators & Users Group Description
IP Creators & Users Group DescriptionIP Creators & Users Group Description
IP Creators & Users Group Descriptionedesigner25
Ā 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform javaCh'ti JUG
Ā 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform javaMichael Chaize
Ā 
Adobe Shadow - Amsterdam Adobe Camp
Adobe Shadow - Amsterdam Adobe CampAdobe Shadow - Amsterdam Adobe Camp
Adobe Shadow - Amsterdam Adobe CampMihai Corlan
Ā 
Building a Cloud-Native Company in 2020 [DevOps Days Buffalo]
Building a Cloud-Native Company in 2020 [DevOps Days Buffalo]Building a Cloud-Native Company in 2020 [DevOps Days Buffalo]
Building a Cloud-Native Company in 2020 [DevOps Days Buffalo]Komodor
Ā 
Breizh camp adobe flex et les mobiles
Breizh camp   adobe flex et les mobilesBreizh camp   adobe flex et les mobiles
Breizh camp adobe flex et les mobilesMichael Chaize
Ā 

Similar to Drive your dba crazy in 3 easy steps (20)

Global im blueprinting security tcw 2012 02-22
Global im blueprinting security tcw 2012 02-22Global im blueprinting security tcw 2012 02-22
Global im blueprinting security tcw 2012 02-22
Ā 
Worklight Overview
Worklight OverviewWorklight Overview
Worklight Overview
Ā 
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NETNDC 2011 - SpecFlow: Pragmatic BDD for .NET
NDC 2011 - SpecFlow: Pragmatic BDD for .NET
Ā 
OjoConsulting Oy Image Service description
OjoConsulting Oy Image Service descriptionOjoConsulting Oy Image Service description
OjoConsulting Oy Image Service description
Ā 
OpenERP - Building a better, global product with the community
OpenERP - Building a better, global product with the communityOpenERP - Building a better, global product with the community
OpenERP - Building a better, global product with the community
Ā 
XBRL Conference Brussels - Bas Groenveld And Paul Hulst - Xbrl Detail Tagging...
XBRL Conference Brussels - Bas Groenveld And Paul Hulst - Xbrl Detail Tagging...XBRL Conference Brussels - Bas Groenveld And Paul Hulst - Xbrl Detail Tagging...
XBRL Conference Brussels - Bas Groenveld And Paul Hulst - Xbrl Detail Tagging...
Ā 
Eon nus hci_master_class
Eon nus hci_master_classEon nus hci_master_class
Eon nus hci_master_class
Ā 
Ada 2012
Ada 2012Ada 2012
Ada 2012
Ā 
IBM Worklight - Technical Overview
IBM Worklight - Technical OverviewIBM Worklight - Technical Overview
IBM Worklight - Technical Overview
Ā 
Cs207 2
Cs207 2Cs207 2
Cs207 2
Ā 
Doppl Code Sharing
Doppl Code SharingDoppl Code Sharing
Doppl Code Sharing
Ā 
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptxKOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
KOTLIN VS. JAVA WHICH ONE IS BEST FOR ANDROID DEVELOPMENT.pptx
Ā 
Flex 3 Deep Dive
Flex 3 Deep DiveFlex 3 Deep Dive
Flex 3 Deep Dive
Ā 
IntlandSoftware: codeBeamer 6.0 + Requirements Management
IntlandSoftware: codeBeamer 6.0 + Requirements Management IntlandSoftware: codeBeamer 6.0 + Requirements Management
IntlandSoftware: codeBeamer 6.0 + Requirements Management
Ā 
IP Creators & Users Group Description
IP Creators & Users Group DescriptionIP Creators & Users Group Description
IP Creators & Users Group Description
Ā 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform java
Ā 
Adobe flash platform java
Adobe flash platform javaAdobe flash platform java
Adobe flash platform java
Ā 
Adobe Shadow - Amsterdam Adobe Camp
Adobe Shadow - Amsterdam Adobe CampAdobe Shadow - Amsterdam Adobe Camp
Adobe Shadow - Amsterdam Adobe Camp
Ā 
Building a Cloud-Native Company in 2020 [DevOps Days Buffalo]
Building a Cloud-Native Company in 2020 [DevOps Days Buffalo]Building a Cloud-Native Company in 2020 [DevOps Days Buffalo]
Building a Cloud-Native Company in 2020 [DevOps Days Buffalo]
Ā 
Breizh camp adobe flex et les mobiles
Breizh camp   adobe flex et les mobilesBreizh camp   adobe flex et les mobiles
Breizh camp adobe flex et les mobiles
Ā 

More from Alberto Brandolini

L'illusione dell'ortogonalitaĢ€
L'illusione dell'ortogonalitaĢ€L'illusione dell'ortogonalitaĢ€
L'illusione dell'ortogonalitaĢ€Alberto Brandolini
Ā 
Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Alberto Brandolini
Ā 
Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Alberto Brandolini
Ā 
Software design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingSoftware design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingAlberto Brandolini
Ā 
50.000 orange stickies later
50.000 orange stickies later50.000 orange stickies later
50.000 orange stickies laterAlberto Brandolini
Ā 
Reshaping enterrprise software
Reshaping enterrprise softwareReshaping enterrprise software
Reshaping enterrprise softwareAlberto Brandolini
Ā 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio managementAlberto Brandolini
Ā 
Idea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionAlberto Brandolini
Ā 
Managing debt remastered
Managing debt remasteredManaging debt remastered
Managing debt remasteredAlberto Brandolini
Ā 
Bullshit Asymmetry Principle lightning talk
Bullshit Asymmetry Principle lightning talkBullshit Asymmetry Principle lightning talk
Bullshit Asymmetry Principle lightning talkAlberto Brandolini
Ā 

More from Alberto Brandolini (20)

L'illusione dell'ortogonalitaĢ€
L'illusione dell'ortogonalitaĢ€L'illusione dell'ortogonalitaĢ€
L'illusione dell'ortogonalitaĢ€
Ā 
Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021Redesigning everything ITARC Stockholm 2021
Redesigning everything ITARC Stockholm 2021
Ā 
What lies beneath
What lies beneathWhat lies beneath
What lies beneath
Ā 
Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)Redesigning everything (avanscoperta meeutp edition)
Redesigning everything (avanscoperta meeutp edition)
Ā 
Extreme DDD modelling
Extreme DDD modellingExtreme DDD modelling
Extreme DDD modelling
Ā 
The gordian knot
The gordian knotThe gordian knot
The gordian knot
Ā 
Software design as a cooperative game with EventStorming
Software design as a cooperative game with EventStormingSoftware design as a cooperative game with EventStorming
Software design as a cooperative game with EventStorming
Ā 
La fatina dei denti
La fatina dei dentiLa fatina dei denti
La fatina dei denti
Ā 
50.000 orange stickies later
50.000 orange stickies later50.000 orange stickies later
50.000 orange stickies later
Ā 
The alignment
The alignmentThe alignment
The alignment
Ā 
Chasing elephants
Chasing elephantsChasing elephants
Chasing elephants
Ā 
Reshaping enterrprise software
Reshaping enterrprise softwareReshaping enterrprise software
Reshaping enterrprise software
Ā 
Guerrilla portfolio management
Guerrilla portfolio managementGuerrilla portfolio management
Guerrilla portfolio management
Ā 
The precision blade
The precision bladeThe precision blade
The precision blade
Ā 
Idea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw editionIdea stickies green bar - Wroclaw edition
Idea stickies green bar - Wroclaw edition
Ā 
Managing debt remastered
Managing debt remasteredManaging debt remastered
Managing debt remastered
Ā 
The sweet spot
The sweet spotThe sweet spot
The sweet spot
Ā 
Liberate il kraken
Liberate il krakenLiberate il kraken
Liberate il kraken
Ā 
Bullshit Asymmetry Principle lightning talk
Bullshit Asymmetry Principle lightning talkBullshit Asymmetry Principle lightning talk
Bullshit Asymmetry Principle lightning talk
Ā 
It's not simple at all
It's not simple at allIt's not simple at all
It's not simple at all
Ā 

Recently uploaded

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
Ā 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024The Digital Insurer
Ā 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKJago de Vreede
Ā 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
Ā 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
Ā 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
Ā 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
Ā 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
Ā 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
Ā 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vƔzquez
Ā 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
Ā 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
Ā 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
Ā 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
Ā 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
Ā 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
Ā 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
Ā 

Recently uploaded (20)

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
Ā 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
Ā 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
Ā 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Ā 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Ā 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
Ā 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
Ā 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Ā 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
Ā 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
Ā 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Ā 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
Ā 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
Ā 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
Ā 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
Ā 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Ā 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Ā 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
Ā 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Ā 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
Ā 

Drive your dba crazy in 3 easy steps

Editor's Notes

  1. \n
  2. \n
  3. And that&amp;#x2019;s the company I started one year ago.\n
  4. Think of &amp;#x201C;So spoke zarathustra&amp;#x201D; as a soundtrack here :-)\n
  5. \n
  6. It&amp;#x2019;s at the center of every operation. Is the cornerstone of every IT service. One cannot even dream of an IT service without it.\n
  7. \n
  8. Enter Jack, our DBA or &amp;#x201C;Data Oriented Person&amp;#x201D;. He&amp;#x2019;s the person you&amp;#x2019;ll have to argue with at a given moment, when you try to build something different from the same old stuff.\n
  9. And that&amp;#x2019;s the realm of Jack. The E-R Diagram, where complexity means power. \n
  10. Is this diagram really useful? Yes. Perfect for covering the table. Developing software is another thing.\n
  11. \n
  12. Jack is the person to call to solve complex and intricated problems. The fact that maybe he&amp;#x2019;s also the origin of complex and intricated problems is often obscure to the business side of the company.\n
  13. Jack is the person to call to solve complex and intricated problems. The fact that maybe he&amp;#x2019;s also the origin of complex and intricated problems is often obscure to the business side of the company.\n
  14. This used to be a question that struck me after giving a talk about CQRS and DDD. A guy in the audience asked me how did I face this problem.\n
  15. And honestly I didn&amp;#x2019;t know.\n
  16. But even more honestly, I&amp;#x2019;ve never had the chance to face a query with 16 joins. Not in the applications I&amp;#x2019;ve designed. I suspect this has something to do with my design style.\n
  17. Because instead of starting the application from a data model, I normally start designing it around a domain model tailored for specific use cases.\n
  18. \n
  19. Many times, the work of the Data-Oriented Person is obscure to me. Sometimes I get presented with a Data Model even if I&amp;#x2019;ve never asked for one. Sometimes I get forced to use one. More often than not the DBA needs to know what our team is doing while we cannot know what the DBA is doing.\nSometimes it&amp;#x2019;s definitely worth a look.\n
  20. Ans sometimes he&amp;#x2019;s just trying to solve the wrong problem.\n
  21. That&amp;#x2019;s one nasty thing we might encounter while dealing with legacy data model.\nIt takes half a movie to realize that redrum is really murder. But DBA love encodings and the like.\n
  22. That&amp;#x2019;s one thing Data Oriented People love. Giving conventional names to things.\nPicking the names from the domain is not an option.\n
  23. But for Domain Driven Design practitioners, this line of code SCREAMS!\nWhat does this code mean?\n
  24. And of course this means something for the creator, but for us, poor explorers of legacy mess the mening is obscure.\n
  25. Asking for a different coding convention, might result somewhat unpolite, sometimes. Remember, conventions are always clear for the creator. And the creator ha probably been promoted...\n
  26. Yes, that&amp;#x2019;s what we want to do in DDD. We want/need to speak same the Ubiquitous Language in every aspect of software development, with every role involved. It works. It&amp;#x2019;s cool. It&amp;#x2019;s fun.\n
  27. But for some reason, DBAs are untouched by this approach. And they don&amp;#x2019;t care.\n
  28. Apparently they have good reasons for not changing theis approach.\n
  29. And to be effective in such a workplace, one needs to learn all the different tips and tricks of the legacy system. Becoming part of the legacy.\n
  30. Is this the right complexity to learn?\n
  31. I bet not. We are wasting our time on accidental complexity. One that&amp;#x2019;s not part of the domain, but part of the (wrong) solution somebody designed before us.\n
  32. But this complexity has costs. Few measure that, but have a look to how much time is necessary for a newcomer to be productive in such a scenario. You&amp;#x2019;ll have interesting results. Disappointing, I suspect.\n
  33. The lesser, the better. But what about your workplace?\n
  34. And ...let&amp;#x2019;s sat that. Business people are not sadistic monsters. They are simple minds after all. They probably can&amp;#x2019;t imagine an incredibly complex requirement. It&amp;#x2019;s our solution that&amp;#x2019;s messy.\n
  35. It&amp;#x2019;s a software architecture problem and it&amp;#x2019;s an organization problem. Hope nobody gets offended here, but this is an organization which is 2000 years old. Plenty of rules and dogmas, make it roughly impossibile to change without getting into contraddiction. To avoid contraddictions ...the organizations stand still.\n
  36. Some things are definitely harder to change.\n
  37. Let&amp;#x2019;s talk about something different. About sharing the things you care about.\n
  38. This is one little cheap thing you don&amp;#x2019;t share. I wonder why?\n
  39. That&amp;#x2019;s another thing you don&amp;#x2019;t share. You can show it to your friends but they&amp;#x2019;re not allowed to touch it.\n
  40. That&amp;#x2019;s not different for your Harley Davidson. Friends can have a look. Good friends can even touch it. But nobody can ride it except you.\n
  41. That&amp;#x2019;s the same with the operating room. Surgeons do not share it. Nor do they share their tools. They need a sterile environment. You don&amp;#x2019;t turn a little hospital into a bigger one by putting the operating room in a large shared open space. And what used to work in a little hospital is not necessarily good for a bigger one.\n
  42. And that&amp;#x2019;s the one. You don&amp;#x2019;t share your database. Yes, you got it: you don&amp;#x2019;t share your database.\n
  43. I mean it. No one reads from my database. I will change table names and schema. Without dropping you a note. I don&amp;#x2019;t care if this is causing a bug in your system. Your fault. This is MY database and I am the only one allowed to read and write. Tomorrow it will be different, and next week it might be a NoSQL. But will still be MINE.\n
  44. Enter the DDD concept of Bounded Context, that&amp;#x2019;s where our database lives. We need to be coherent and consistent with the language and this is a viable strategy only if we don&amp;#x2019;t share our database.\n\nOf course, there might be data sharing. But in a format that&amp;#x2019;s designed for data sharing. With different evolution needs.\n
  45. What does it mean ...YOUR database? Every database is mine. Following my conventions.\n
  46. Let&amp;#x2019;s see it from another perspective\n
  47. This looks like a state diagram, something our analyst might have sketched to illustrate a business process. So looks like an Order is passing through many different phases.\n
  48. But that&amp;#x2019;s not an Order even if it might refer to the same concrete entity, not all the workflow needs to map to the same class.\n
  49. If we do that ...that&amp;#x2019;s the mess we&amp;#x2019;ll generate!\n
  50. And we&amp;#x2019;re not even in the same aggregate. But to be clear about this we need to clarify a little more about what a aggregate is in DDD\n
  51. The next key DDD building block is Aggregates. The Domain Model isn&amp;#x2019;t flat. Some links are stronger than others (and UML doesn&amp;#x2019;t really help much in rendering it).\n\nIf we start considering consistency and behaviour as the primary drivers for modeling our domain we&amp;#x2019;ll end up with something quite different from a 1-1 projection of the data model.\n
  52. The next key DDD building block is Aggregates. The Domain Model isn&amp;#x2019;t flat. Some links are stronger than others (and UML doesn&amp;#x2019;t really help much in rendering it).\n\nIf we start considering consistency and behaviour as the primary drivers for modeling our domain we&amp;#x2019;ll end up with something quite different from a 1-1 projection of the data model.\n
  53. A model is a tool to solve a problem. We have different stakeholders/roles here each one with a different problem. Are we really thinking that a single model will solve them all?\n
  54. In fact different goals will be the territory of different domain experts speaking their language. Which is tailored around their purpose. To solve different problems we&amp;#x2019;ll have multiple models.\n
  55. Are you prepared for that?\n
  56. Yeah, duplication. The root of all evil. Are you ready for that?\n
  57. You obviously don&amp;#x2019;t like duplication. Because you&amp;#x2019;re adhering to DRY.\n
  58. Everybody apparently is following DRY. So I took a look to the original statement. Which is a little more sophisticated than duplication is evil.\n
  59. Read again Any Hunt&amp;#x2019;s definition, and read also the interview at http://www.artima.com/intv/dry.html\n
  60. \n
  61. If it&amp;#x2019;s just me... I don&amp;#x2019;t repeat myself. If it&amp;#x2019;s just my team, then we communicate and we share a vision about our system. But if it&amp;#x2019;s two or more different teams then the cost of communication is significant, and sharing might not be the most efficient way to deal with this specific issue.\n
  62. How big is the system we&amp;#x2019;re talking about? Can&amp;#x2019;t it be our bounded context?\n
  63. Sharing a piece of code means coupling. If you reuse my piece of code then coupling is introduced in the system. When I refactor I&amp;#x2019;ll need to double check against external test suites also. Flexibility has a higher price, and sometimes I am not willing to pay for it.\n
  64. Yes, we don&amp;#x2019;t need many justifications...\n
  65. Because data and behaviour are different. And data can be the same, but with different roles within the system.\n
  66. For example, in this case we&amp;#x2019;ll notice some duplication, related to customer. But lifecycles of the customer and of the order are different. If a customer moves, we don&amp;#x2019;t want to have all of our past orders changed, at the same time if an order needs to be canceled, we don&amp;#x2019;t want the user to get down the sink as well. \nA little duplication is what allows aggregate lifecycles to be independent.\n
  67. If we don&amp;#x2019;t want to have any duplication at the data layer... that&amp;#x2019;s the mess we&amp;#x2019;ll end up living in.\nIt&amp;#x2019;s called Hell.\n
  68. Focusing on the language can be a good technique. And rarely aggregates come from our legacy data model. You&amp;#x2019;d better forget about it. And start thinking from scratch.\n
  69. How to coordinate communications between aggregates? Well ...DDD now is focusing on Domain Events.\n\n
  70. Domain Events as a communication means between aggregates really simplify things a lot, even at the conceptual level.\n- Do they really belong to the same transaction?\n- Would you want the order to roll-back if you are unable to process the discount for the next order by the same customer?\n\n... but really, how the two things should be related, ...is a business choice! We just have more and more possibilites in our arsenal.\n
  71. Surprisingly, but Udi Dahan and Greg Young in their speeches at last DDDx put the paper-based system at the center of their vision. If a complex system could work without computers ...there must be a reason for that. Sometimes computers just overloaded the systems with more unnecessary complexity.\n
  72. There might be inconsistencies in the data or between the data and the paper. In many system (especially those data-entry based) the paper used to be the Single Source of Truth, but larger integrated systems Events are probably a better candidate.\n
  73. There might be inconsistencies in the data or between the data and the paper. In many system (especially those data-entry based) the paper used to be the Single Source of Truth, but larger integrated systems Events are probably a better candidate.\n
  74. You mean the Database is not the center of things anymore? Not here!\n
  75. So Jack is going to be Angry and trying to rise some consistency or security issue.\n
  76. But since we did our job well, he&amp;#x2019;ll be thwarted by our system performances, and the old architecture will look like an ancient nightmare....\n
  77. \n
  78. That&amp;#x2019;s not the way we&amp;#x2019;re supposed to work.\n
  79. We strived to establishe a good collaboration with the domain expert...\n
  80. \n
  81. There&amp;#x2019;s not a rule. Talk with the people. Some of them are nice. Understand their needs.\n
  82. Do not start from huge refactorings, unless the problem is really small (only ...the legacy solution is large)\n
  83. Do not take any unnecessary risk. Keep backups, and ensure security policies are respected.\n
  84. You&amp;#x2019;re having fun, and they&amp;#x2019;re not. Nobody likes to be treated like the old boring guy. You&amp;#x2019;re doing something new, involve them.\n
  85. Be a fair person. Even if you don&amp;#x2019;t like their approach do not surprise them with nasty moves.\n
  86. So that also Jack might find a happy place in the picture.\n
  87. \n