© 2014 Country Endeavours “Creative Solutions for Difficult Problems” Business value with patterns Questions to be answered: 1. Can patterns deliver business value (“quality at speed”) for you? 2. “Data model” and “Data Vault” patterns How can benefits be realised? Are benefits diminished or increased if you adopt both? 3. Can they support your IM strategy? 1 Agenda 1. A challenging case study (if they can succeed, your chances are pretty good!) 2. 3. 4. 5. 6. 7. Data Model Patterns – claims & applicability “Doc, I just don’t feel well” – need for diagnosis The diagnosis results, and a “get-well” plan Data Vault – why, what, & (some) how “Universal Data Vault” – combining patterns Hints & helpers for you Country Endeavours “Creative Solutions for Difficult Problems” © 2014 2 © 2014 Country Endeavours “Creative Solutions for Difficult Problems” 1. A challenging case study (if they can succeed, your chances are pretty good!) 2. Data Model Patterns – claims & applicability 3. “Doc, I just don’t feel well” – need for diagnosis 4. The diagnosis results, and a “get-well” plan 5. Data Vault – why, what, & (some) how 6. “Universal Data Vault” – combining patterns 7. Hints & helpers for you 3 Special Needs Assistant/Practitioner Regulation (SNAPR) Registration, renewal Random spot-audits Complaints Offence case management Monitoring of conditions Country Endeavours “Creative Solutions for Difficult Problems” © 2014 4 Pre-nationalisation nightmare 83 management organisations (By profession &/or state) One person, multiple professions Career (e.g. Home Care Rehab Teacher) Concurrent Plus student training records Complaints potentially across all above Risks e.g. Deregistered by one, “problem” relocates Country Endeavours “Creative Solutions for Difficult Problems” © 2014 5 Simple (!!!) solution – one national organisation! Federal Act of parliament Delegation Closure of 83 organisations on one day National commencement of SNAPR the next day Wonderful people, a massive effort, but … Country Endeavours “Creative Solutions for Difficult Problems” © 2014 6 A day in the life …: - Receipt of a complaint Any prior complaints against this person? Prior organisations • Several of the 83 ! • Aging platforms, licences, knowledge workers Since SNAPR formed, now got 84th data source! Plus all of the student records at multiple institutes Ask all of the above for prior professions, if any Possible conflicts of interest … and that’s for just one the complaint Country Endeavours “Creative Solutions for Difficult Problems” © 2014 7 Information Management (IM) problems we all may face IM challenges – the usual suspects Data owner / custodian / steward = ? Data currency Data accuracy Data accessibility Audit (including reading the data!) etc. For highlight on data integration woes … but an out-of-date IM strategy wasn’t helping Country Endeavours “Creative Solutions for Difficult Problems” © 2014 8 Exercise: What if you’re the CIO? A guess at an Info. Mgt. solution set? Consider: Top-down versus bottom-up Strategic versus tactical Rebuild versus refactor Country Endeavours “Creative Solutions for Difficult Problems” © 2014 9 © 2014 Country Endeavours “Creative Solutions for Difficult Problems” 1. A challenging case study 2. Data Model Patterns – claims & applicability The “sales pitch” for data model patterns Applicability for you • How big is your organisation? • How wide is your project’s scope? • What parts of your architecture can be pattern-based? 3. “Doc, I just don’t feel well” – need for diagnosis 4. The diagnosis results, and a “get-well” plan 5. Data Vault – why, what, & (some) how 6. “Universal Data Vault” – combining patterns 7. Hints & helpers for you 10 The sales pitch for data model patterns “… using simpler and more generic models, we will find they stand the test of time better, are cheaper to implement and maintain, and often cater to changes in the business not known about initially” (Data Model Patterns by David Hay) “Strict modeling of the real world leads to a system that reflects today’s realities but not necessarily tomorrow’s. The abstractions that emerge during design are key to making a design flexible” (Design Patterns by Gamma, Helm, Johnson & Vlissides) “… simple models are always worth the effort. … they make things easier to build, but more importantly they make them easier to maintain and extend in the future. That’s why it’s worth replacing software that works with simpler software that also works.” (Analysis Patterns by Martin Fowler) Summary: Flexibility, cost effectiveness, adaptability (for today & tomorrow) Country Endeavours “Creative Solutions for Difficult Problems” © 2014 11 Might patterns work for you? - Organisation size Continuum of large-to-small organisation sizes International not-for-profit (local, but generic) Major Australian civil engineering 2nd-tier bank Telecommunications subsidiary(VPN niche) 2-person conference management A third-world company that runs on Excel?! … and it works – Several of these clients volunteered comments for The Nimble Elephant Country Endeavours “Creative Solutions for Difficult Problems” © 2014 12 Might patterns work for you? - Initiative size Country Endeavours “Creative Solutions for Difficult Problems” © 2014 13 Might patterns work for you? - Architectural areas Enterprise logical data model Application logical data model Relational database COTS package -Data Warehouse design -Services’ architecture -Services’ XML -Master data management -Reference data management -Business rules vocabulary -OO class design -etc. Country Endeavours “Creative Solutions for Difficult Problems” © 2014 14 © 2014 Country Endeavours “Creative Solutions for Difficult Problems” 1. A challenging case study 2. Data Model Patterns – claims & applicability 3. “Doc, I just don’t feel well” – need for diagnosis Embarrassing questions The plan for getting diagnostics How long to get test results? 4. The diagnosis results, and a “get-well” plan 5. Data Vault – why, what, & (some) how 6. “Universal Data Vault” – combining patterns 7. Hints & helpers for you 15 Embarrassing questions - When “business” isn’t happy Why is it so hard to answer a simple question? Why are there so many definitions for core concepts? Why do we get different answers to the same question? Across different reports Worse still, when we re-run the same report Why does IT/BI cost so much? Why, why, why! Country Endeavours “Creative Solutions for Difficult Problems” © 2014 16 Scheduling a diagnosis SNAPR plan: 1. Develop a pattern-based Enterprise Logical Data Model (ELDM) 2. Develop an updated IM strategy (Based on the ELDM) 3. Act on recommendations (whatever they might be!) … so let’s look at Step 1 Country Endeavours “Creative Solutions for Difficult Problems” © 2014 17 ELDM timing expectations: - How long to get test results? Urgent mobilisation of strategy ELDM Ideally first, but no time In parallel, but framework needed in 5 days ELDM “project plan” Start-of-week: Familiarisation Thursday: Formal “pattern” training (IT & business) Friday: IT & business develop the “framework!!! (then a few weeks to document, refine, …) Country Endeavours “Creative Solutions for Difficult Problems” © 2014 18 A palette of “Assembly patterns” Account Task Agreement Resource / Asset Document Product Event Party & Role Location Country Endeavours “Creative Solutions for Difficult Problems” © 2014 19 (One) Drill-down for “Party” subclassification 0..* For example: -Employment -Marriage -Ownership -etc. PartyToPartyRelationshipType partyToPartyRelationshipTypeCode partyToPartyRelationshipTypeDescription participant1Role participant2Role 0..* 0..* partyTypeCode partyTypeDescription classification 0..* Party 1 participant2 effectivePeriod nameDisplayString fulfilment 0..* 1 roleTypeCode roleTypeDescription classification 0..* Role (link) (link) effectivePeriod status Organization PartyIdentifier effectivePeriod partyIdentifierType partyIdentifierValue 1..* gender containment containment 1 1 1..* containment PersonName effectivePeriod personNameType salutation familyName postNominal OrganizationName 1 0..* PersonGivenName givenName sequenceNumber effectivePeriod orgNameType orgName 1 Address effectivePeriod addressDisplayString 0..* Person Role's Status can be: -Planned -Actual 1 1 1 identification 0..1 RoleType PartyToPartyRelationship effectivePeriod subclassification 0..* 0..1 1 participant1 [Classification mechanism typically applied to Organizations, not to Persons.] PartyType 0..* classification 1 0..1 0..* 0..* AddressService PhysicalAddress effectivePeriod addressUsageType flatIdentifier floorIdentifier propertyName locationDescription streetNumber streetName town state postcode country PhoneNumber countryPrefix areaPrefix localNumber Emailddress emailAddressString PostalAddress postalDeliveryDescription town state postcode country Country Endeavours “Creative Solutions for Difficult Problems” © 2014 20 Exercise: Develop a framework (SNAPR: 1 day). You get ¼ hour! 1. Regist’n, renewal 2. Complaints 3. Random spot-audits 4. Offence case mgt. Task 5. Monitoring of conditions Resource Account copy filed as constrained by Agreement Document / Asset sited at participates in, signatory to, ... Product Country Endeavours “Creative Solutions for Difficult Problems” © 2014 Event Party & Role Location 21 2 A framework appears Roles can include: -Licensed services provider -Student -Complainant -Assessor -etc. relates to responsible for Service provider details extended by recording of competencies (languages, qualifications, etc.) Party & Role adjusts balance of Account participates in relates to participates in participates in contains, depends on triggers relates to produces Triggering Event milestone noted as constrains Activity (calendar entry) Examples include: -Payment for service -Applic’n for Regist’n -Applic’n for Renewal -Lodgement of Complaint -etc. referenced in Agreement has as outcome Examples include: -Registration -Restriction -Endorsement -etc. documentary evidence documentary evidence relates to documentary evidence Country Endeavours “Creative Solutions for Difficult Problems” © 2014 Document 22 © 2014 Country Endeavours “Creative Solutions for Difficult Problems” 1. 2. 3. 4. A challenging case study Data Model Patterns – claims & applicability “Doc, I just don’t feel well” – need for diagnosis The diagnosis results, and a “get-well” plan The pain-point results come in A recommendation emerges 5. Data Vault – why, what, & (some) how 6. “Universal Data Vault” – combining patterns 7. Hints & helpers for you 23 The pain-point results come in Party/Role profiles needed, but can’t be delivered Increasing pressures for BI integration …. and the Data Marts were too successful! Increasing pressures for operational integration Legacy is dragging SNAPR down … Country Endeavours “Creative Solutions for Difficult Problems” © 2014 24 (Revisiting the Diagnosis plan:) 1. Develop a pattern-based Enterprise Logical Data Model (ELDM) 2. Develop an updated IM strategy (Based on the ELDM) 3. Act on recommendations (whatever they might be!) … now let’s look at Step 2’s recommendations Country Endeavours “Creative Solutions for Difficult Problems” © 2014 25 A recommendation emerges EDW (in addition to Data Marts) to address: Data Mart growth BI (cross-Data Mart) integration Single repository to collate • legacy (83 pre-nationalisation) • SNAPR (post-nationalisation) EDW + ESB/SOA to address: Operational integration (with EDW as one source) ELDM’s Party/Role pattern to be applied to all Country Endeavours “Creative Solutions for Difficult Problems” © 2014 26 © 2014 Country Endeavours “Creative Solutions for Difficult Problems” 1. 2. 3. 4. 5. A challenging case study Data Model Patterns – claims & applicability “Doc, I just don’t feel well” – need for diagnosis The diagnosis results, and a “get-well” plan Data Vault – why, what, & (some) how Business drivers for DV What is Data Vault (DV)? DV is flexible … that’s good news … & it’s “not-so-bad” news, too 6. “Universal Data Vault” – combining patterns 7. Hints & helpers for you 27 The sales pitch for the Data Vault “pattern” Auditability Scalability Resilience to change Dan Linstedt: “All the data, all the time” Country Endeavours “Creative Solutions for Difficult Problems” © 2014 28 DV in context Operational source systems Data Marts “Client” (Carer) Relationship Manager system Complaints “cube” Registration system Data Marts (Kimball) “3NF” (Inmon) Anchor Modeling (Rӧnnbӓck) Data Vault (Linstedt) Finance “cube” Complaint system (etc.) (etc.) Operational source systems Data Marts “Client” (Carer) Relationship Manager system Complaints “cube” Registration system Complaint system Enterprise Data Warehouse Integration Layer Finance “cube” (etc.) (etc.) Country Endeavours “Creative Solutions for Difficult Problems” © 2014 29 What is DV? Start with operational “Normal”(ised) view Employee PK EmployeeNumber EmployeeName WorkPhoneNumber Mobile1 Mobile2 UserId Salary Care Worker managed by assigned Employee CareWorker PK CareWorkerNumber FK1 CareWorkerName Address PhoneNumber Mobile EmployeeNumber Country Endeavours “Creative Solutions for Difficult Problems” © 2014 30 What is DV? - simply a direct transposition? Hub_Employee Hub_CareWorker PK Emp_HubId PK CW_HubId U1 EmployeeNumber LoadDateTime RecordSource U1 CareWorkerNumber LoadDateTime RecordSource Link_CareWorker_Employee Sat_Employee PK,FK1 PK Emp_HubId LoadDateTime PK CW_Emp_LinkId FK1,U1 FK2,U1 CW_HubId Emp_HubId LoadDateTime RecordSource Sat_CareWorker PK,FK1 PK EmployeeName WorkPhoneNumber Mobile1 Mobile2 UserId Salary RecordSource CW_HubId LoadDateTime CareWorkerName Address PhoneNumber Mobile RecordSource Country Endeavours “Creative Solutions for Difficult Problems” © 2014 31 It’s that simple, really. Country Endeavours “Creative Solutions for Difficult Problems” © © 2014 D C Comics – Time Warner 32 What’s “Conceptual” Party - Simplified name address phone 1 fulfilment 0..* Role Employee Customer effectivePeriod name address phone salary superannuationFund effectivePeriod name address phone creditLimit industryCode effectivePeriod EmployeeRole salary superannuationFund CustomerRole creditLimit industryCode Country Endeavours “Creative Solutions for Difficult Problems” © 2014 33 How: DV is flexible – it gives you choices (that you may have to make!) Split Satellites (by source, churn, …) Same-as-Links e.g. for merging “concepts” Granularity of Links Effectivity Satellites (temporal, bi-temporal) Reference data as Hubs SNAPR wanted audit on ESB/SOA data reads! Raw DV vs. Business DV … (and Generalisation / Specialisation) Country Endeavours “Creative Solutions for Difficult Problems” © 2014 34 © 2014 Country Endeavours “Creative Solutions for Difficult Problems” 1. 2. 3. 4. 5. 6. A challenging case study Data Model Patterns – claims & applicability “Doc, I just don’t feel well” – need for diagnosis The diagnosis results, and a “get-well” plan Data Vault – why, what, & (some) how “Universal Data Vault” – combining patterns Why would you combine the patterns? Cancelling or complementary? … and what does UDV look like? 7. Hints & helpers for you 35 Business-speak continuum Frequency-of-usage continuum 10 9 8 7 6 5 4 3 2 1 0 Thing Agreement, Role, … Agreed Restriction, Agreed Endorsement, … Gender-related Restriction, Agerelated restriction, … Supervised-only Gender-related Restriction, … Country Endeavours “Creative Solutions for Difficult Problems” © 2014 [Concept courtesy Hans Hultgren] 36 Logical model continuum sub-classification 0..* 0..1 RoleType roleTypeCode roleTypeName roleTypeDescription Party::Party nameDisplayString effectivePeriod domain identification 0..* 1 RoleStatusType 1 classification fulfilment roleStatusTypeCode roleStatusTypeName roleStatusTypeDescription 1 0..* participant 1 as role 0..* participant 2 as role 0..* 0..* 1 classification status recording 1 1 Role effectivePeriod 1 0..* PartyRelationships::PartyRoleInterrelationship 0..* RoleStatus effectivePeriod effectivePeriod CareWorker RegisteredTrainingOrganisation Teacher RehabProfessional HomeCarer Complainant CareRecipient Employee Country Endeavours “Creative Solutions for Difficult Problems” © 2014 37 A subset (!!!) of the “Generalisation” problem Agreement Role Employee Care Worker • • • Teacher Rehab Home carer Care Recipient Supervisor Licence • • • Teaching Licence Rehab Licence Home care Licence Restriction • • Teaching Restriction (etc.) Endorsement • • Teaching Endorse’t (etc.) Supervision • • Country Endeavours “Creative Solutions for Difficult Problems” © 2014 Teaching Supervis’n (etc.) Event Application • • Initial Renewal Audit Complaint Offence Monitoring Activities e.g. Preliminary review Suitability review • • • Identity Check Health Check (etc.) 38 Exercise: Design some queries 1. List all Care Workers who have ever had a Complaint 2. Identify all Roles filled by John Smith (employee, board member, teacher, home carer, …) Country Endeavours “Creative Solutions for Difficult Problems” © 2014 39 A clash of Pattern cultures? Christopher Alexander Hay, Silverston Nimble elephants?! Linstedt, (etc.) Kimball Inmon Country Endeavours “Creative Solutions for Difficult Problems” © 2014 40 Case study solution: – “Universal Data Vault” … let the credits roll: Hay, Silverston Lin ste d t, (e tc.) Country Endeavours “Creative Solutions for Difficult Problems” © 2014 41 Standard (specialised) DV model sample H_Teacher H_TeachingRestriction PK H_Teacher_SID U1 TeacherRegistrationNumber Load DateTime RecordSource H_TeachingRestriction_SID U1 RestrictionReferenceNumber LoadDateTime RecordSource L_Teacher_Restriction S_Teacher PK,FK1 PK PK H_Teacher_SID LoadDateTime TeacherName WorkPhoneNumber Mobile1 Mobile2 RecordSource PK L_Teacher_Restriction_SID FK1,U1 FK2,U1 H_Teacher_SID H_TeachingRestriction_SID LoadDateTime RecordSource S_TeachingRestriction PK,FK1 PK S_TeachingRestriction_SID LoadDateTime RestrictionFromDate RestrictionToDate SupervisionIndicator RecordSource Country Endeavours “Creative Solutions for Difficult Problems” © 2014 42 SNAPR: “Universal Data Vault” as a DV extension RoleType PK RoleTypeCode FK1 RoleTypeName RoleTypeDescription AbstractOrConcrete ParentRoleTypeCode AgreementType PK AgreementTypeCode FK1 AgreementTypeName AgreementTypeDescription AbstractOrConcrete ParentAgreementTypeCode RoleToAgreementLinkTypeCode RoleToAgreementLinkTypeName RoleToAgreementLinkTypeDescription H_Role H_Role_SID PK H_Agreement_SID FK1,U1 U1 RoleTypeCode RoleBusinessCode Load DateTime RecordSource FK1,U1 U1 AgreementTypeCode AgreementBusinessCode LoadDateTime RecordSource L_RoleToAgreement PK,FK1 PK H_Teacher_SID LoadDateTime AgreementToAgreementLinkTypeCode H_Agreement PK S_Teacher PK AgreementToAgreementLinkTypeName AgreementToAgreementLinkTypeDescription Participant1TypeCode Participant1TypeName Participant1TypeDescription Participant2TypeCode Participant2TypeName Participant2TypeDescription RoleToAgreementLinkType PK AgreementToAgreementLinkType PK L_RoleToAgreement_SID FK3,U1 FK1,U1 FK2,U1 RoleToAgreementLinkTypeCode H_Role_SID H_Agreement_SID LoadDateTime RecordSource TeacherName WorkPhoneNumber Mobile1 Mobile2 “Creative Solutions for Difficult Problems” RecordSource Country Endeavours © 2014 L_AgreementToAgreement PK L_AgreementToAgreement_SID FK1,U1 FK2,U1 FK3,U1 AgreementToAgreementLinkTypeCode Participant1_H_Agreement_SID Participant2_H_Agreement_SID LoadDateTime RecordSource S_TeachingRestriction PK,FK1 PK S_TeachingRestriction_SID LoadDateTime RestrictionFromDate RestrictionToDate SupervisionIndicator RecordSource 43 Exercise: A Universal Data Vault for you (or SNAPR) Roles can include: -Licensed services provider -Student -Complainant -Assessor -etc. relates to responsible for Service provider details extended by recording of competencies (languages, qualifications, etc.) Party & Role adjusts balance of Account relates to participates in participates in participates in contains, depends on triggers relates to produces Triggering Event milestone noted as constrains Activity (calendar entry) Examples include: -Payment for service -Applic’n for Regist’n -Applic’n for Renewal -Lodgement of Complaint -etc. referenced in Agreement has as outcome Examples include: -Registration -Restriction -Endorsement -etc. documentary evidence documentary evidence relates to documentary evidence Country Endeavours “Creative Solutions for Difficult Problems” © 2014 Document 44 © 2014 Country Endeavours “Creative Solutions for Difficult Problems” 1. 2. 3. 4. 5. 6. 7. A challenging case study Data Model Patterns – claims & applicability “Doc, I just don’t feel well” – need for diagnosis The diagnosis results, and a “get-well” plan Data Vault – why, what, & (some) how “Universal Data Vault” – combining patterns Hints & helpers for you 45 Learn the Data Model patterns Recognise the pattern types (elementary, assembly, integration) Get familiar with published patterns “Data” – David Hay, Len Silverston, … “OO” – Arlow & Neustadt, Fowler, Larman, … “Industry” – TM Forum, HL7, … Get familiar with patterns & agility Integrating the patterns – John Giles Building the agile database – Larry Burns Extreme Scoping [EDW, BI] – Larissa Moss Country Endeavours “Creative Solutions for Difficult Problems” © 2014 46 Data Vault observations “What’s the catch?” Start design with a logical model Consider a “Universal Data Vault” … but as with any variation to the DV standards, always use a consistent pattern Country Endeavours “Creative Solutions for Difficult Problems” © 2014 47 Leverage the ELDM Enterprise logical data model Application logical data model Relational database COTS package -Data Warehouse design -Services’ architecture -Services’ XML -Master data management -Reference data management -Business rules vocabulary -OO class design -etc. Country Endeavours “Creative Solutions for Difficult Problems” © 2014 48 Refactor the enterprise LDM Country Endeavours “Creative Solutions for Difficult Problems” © 2014 49 Get agile: - The T-model approach to using the enterprise logical model Mile-wide, inch-deep (touch points at least) Drill-down only where required Iterate within each project, & across projects Account High-level logical subject areas Agreement Document Standard logical assembly patterns Refined logical assembly patterns Party/Role (etc.) Country Endeavours “Creative Solutions for Difficult Problems” © 2014 50 Thanks … and questions? Country Endeavours “Creative Solutions for Difficult Problems” © 2014 51