Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Doug English

Douglas English
September 24, 2014

Doug English

This is the slide pack that I presented at the Melbourne Ruby meetup on September 24, 2014 - http://www.meetup.com/Ruby-On-Rails-Oceania-Melbourne/events/195632942/

Hope you enjoy! Any questions, my email is [email protected]

Douglas English

September 24, 2014
Tweet

Other Decks in Design

Transcript

  1. Colour Modelling Modelling with the 3rd dimension by Doug English

    Co-founder & Head of Engineering @ Culture Amp

  2. Object Oriented Modelling asks us to focus on ‘real world

    objects’ Aeroplane Passenger Airport Flight Plan
  3. Aeroplane Passenger Airport Flight Plan * * * 1 *

    * but temporality causes us issues 1 1 current historical
  4. Aeroplane Passenger Airport Flight Plan * * * 1 *

    but temporality causes us issues * 1 1 current historical ?
  5. Aeroplane Passenger Airport Flight Plan Pilot AirHost Luggage Itinerary Airline

    Hanger Country Ticket Customs RunWay (Admit it, we’ve all seen domain models worse than this!) and the more concepts we add the messier things get
  6. Mentored by Jeff De Luca
 (Architect of Feature Driven Development)

    Consulted as a Domain Modeller with large scale industry models (eg IFW, OFX)
 at multinationals (NAB, ANZ) 5 years of experience applying and adapting my learnings to startups my background
  7. Don’t try and model the “entire” domain. Model only what

    your solution needs to care about. You can’t model a domain you don’t understand. 
 It’s critical to work hand-in-hand with domain experts!! Your domain model must be the share language between all stakeholders - and used to name classes in the code!! what I’ve learned
  8. Colour Modelling categorises everything into one of 4 archetypes <<

    party, place, thing >> << description >> << moment-interval >> << role >> Description Moment- Interval Role << description >> << moment-interval >> << role >> Party, Place, Thing << party, place, thing >> (They’re all ‘real world’ just some are ‘concepts’, not ‘objects’)
  9. << party, place, thing >> << description >> << moment-interval

    >> << role >> Description Moment- Interval Role 0.. * 1 0.. 1 0.. * 1 1 << description >> << moment-interval >> << role >> Party, Place, Thing << party, place, thing >> that tend to connect consistently
  10. Description << party, place, thing >> << description >> <<

    moment-interval >> Party, Place, Thing Moment-Interval 0.. * << party, place, thing >> << moment-interval >> << role >> Role << role >> identityNumber
 name
 customValue
 getCustomValueOrDefault
 listRoles accessAcrossRoles
 1 description
 itemNumber
 defaultValue listPPT s findAvailable calculateTotalFor assignedNumber status isAvailable listMIs assessAcrossMIs referenceNumber dateOrDateTimeOrInterval
 status addRemoveDetail calculateTotal
 complete 0.. 1 0.. * 1 1 << moment-interval >> MI-Detail << moment-interval >> calculateTotal quantity << mi-detail >> 0.. * and tend to have similar attributes
  11. ThingDescription << description >> Thing <<thing>> << role >> Role

    << role >> 0.. * 1 MI-Detail << mi-detail >> PriorMI << moment-interval >> NextMI << moment-interval >> Moment-Interval << moment-interval >> PlaceDescription << description >> PartyDescription << description >> Place <<place>> Party <<party>> Role << role >> Role << role >> 0.. * 0.. * 0.. * 0.. * 0.. * 0.. * 0.. * 0.. * 0.. 1 0.. 1 1 1 1 1 1 1 1 1 1 1 0.. 1 the Domain Neutral Component
  12. Question <<thing>> 0.. * 1 Account << moment-interval >> Response

    << moment-interval >> SurveyType << description >> Person <<party>> Participant << role >> 0.. * 0.. * 0.. * 0.. * 0.. 1 1 1 1 1 Answer Survey << mi-detail >> 0.. * QuestionInSurvey << mi-detail >> << moment-interval >> 0.. * 0.. * 1 1 Culture Amp’s core domain << party >>
  13. 0.. * Account << moment-interval >> SurveyAdminGrant << moment-interval >>

    Person SurveyAdministrator << role >> 0.. * 0.. * 0.. 1 1 1 Survey << moment-interval >> AccountAdminGrant << moment-interval >> AccountAdministrator << role >> 0.. * 1 0.. 1 1 0.. * 1 <<party>> Granting access to Administrators 1 1
  14. << description >> Java Modeling In Color With UML: 


    Enterprise Components and Process by Peter Coad, Jeff de Luca and Eric Lefebvre www.petercoad.com/download/bookpdfs/jmcuch01.pdf http://www.step-10.com/SoftwareDesign/ModellingInColour/index.html http://bit.ly/fdd-presentation by Daniel Vacanti by Peter Coad by Peter Coad resources
  15. << description >> Interested in playing with Colour Modelling in

    the real world? ! Come and talk to us! [email protected] Culture Amp is hiring! Questions?