More Related Content
Similar to Melbourne agile and scrum sig slides v01-00 (20)
More from Craig Brown (20)
Melbourne agile and scrum sig slides v01-00
- 1. © 2012 Country Endeavours
“Creative Solutions for Difficult Problems”
The civil (uncivil?) war
-
Agilist vs. Data Architect
1. Understand the “enemy”
2. The mechanics of data pattern agility
3. Tips & techniques
4. Take-aways for you
(John Giles)
1
- 2. © 2012 Country Endeavours
“Creative Solutions for Difficult Problems”
What’s the war really
about?
2
- 3. Competing views
Agilists
• Can’t wait for perfect design – miss the opportunity
• Don’t need perfection – achieve better via iterations
• Standards may reflect “old” – we can do better
• Hence opinion “We don’t need no … architects”
(Or at least the old-style ones)
Architects
• “Integration” technical debt - Speedy delivery of
solutions = speedy delivery of integration problems
• Concern over “architecture breakers”
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 3
- 5. The vision for a creative win-win
A start-up data architecture/model
• Based on proven patterns
• Assembled in days. Or even hours!
Flexibility over successive iterations
• Start-up was minimal, but patterns extensible
Simpler post-project integration (if required)
• If all enterprise data artifacts are built on common
patterns, integration-made-easy (almost)
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 5
- 6. “Patterns” - elegance
today, flexibility tomorrow.
Gamma et al: “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”
Ambler: “Many agile developers underestimate the
value of data modeling and other data skills at their peril
… and have foregone opportunities for even greater
productivity and quality.”
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 6
- 8. I’ve been challenged!!!
Three projects about to kick off
All needed to be subsequently integrated, via
an enterprise data model (EDM)
Competitor’s EDM took 5 years of effort
My allowance – 10 days effort
Solution: Len Silverston
• Len Silverston’s 50% to 75% theory
• Time-boxed interviews
• YAGNI (75% fit OK)
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 8
- 9. © 2012 Country Endeavours
“Creative Solutions for Difficult Problems”
Mechanics of patterns
9
- 10. Fine-grained “Elementary patterns”
Person skill acquisition SkillType
name skillTypeCode
dateOfBirth 0..* 0..* skillTypeDescription
Person personal skill record skill inventory 1 SkillType
name skillTypeCode
dateOfBirth 1 0..* 0..* skillTypeDescription
PersonalSkill
dateAcquired
Country Endeavours levelOfProficiency
“Creative Solutions for Difficult Problems” © 2012 10
- 11. Resources & their attributes
0..1 FourWheelDriveCabChasis
emergency communications
current fitting registrationNumber
fuelType WaterBomber
0..1 communications 0..1
numberSeats
registrationNumber
waterCapacity
0..1 1..2 2..2 airSpeed
SlipOnTank Radio
waterCapacity radioType
pumpDeliveryRate make
fuelType model
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 11
- 12. Using the EAV Elementary pattern
subclassification
0..* 0..1 Note that components of this Assembly Pattern
are based on the Entity/Attribute/Value (EAV)
classification Elementary pattern (also known by several
ResourceType
other titles e.g. the "Name/Value pair" pattern).
resourceTypeCode
resourceTypeDescription 1 inheritance
0..* 0..*
participant type1 1
ResourceSpecification
participant type2 1
resourceSpecificationName Utitilty-EAV::AttributeSpecification
0..1
0..* isAbstract attributeName
0..*
1 datatype
1 containment
ResourceToResourceRelationshipType template containment
1 1
resourceToResourceRelationshipTypeCode
resourceToResourceRelationshipTypeDescription specification
participant1Role Utitilty-EAV::AllowableAttribute
participant2Role 0..* 0..* 0..*
localName
classification 1 minOccurs
1 participant1 0..1
Resource 0..* maxOccurs Utitilty-EAV::EnumerationItem
participant2 1 derivationExpression
unitOfMeasure
effectivePeriod
0..* 0..* 0..* resourceName
1 constraint
1
identification
1 enumeratedValue Utitilty-EAV::DiscreteEnumerationItem
ResourceToResourceRelationship
enumerationValue
effectivePeriod 0..* 0..*
containment
0..* Utitilty-EAV::RangeEnumerationItem
ResourceIdentifier Utitilty-EAV::AttributeValue
effectivePeriod minimumValue
specifiedValue
resourceIdentifierType 0..* maximumValue
resourceIdentifierValue minimumBreakRule
maximumBreakRule
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 12
- 13. One medium-grained pattern
- the face of “Party”
Party
effectivePeriod
Person
name
gender
Organization
registrationNumber
registeredName
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 13
- 14. Drill-down for “Party”
RoleType
roleTypeCode
roleTypeDescription
identification 1 Party fulfilment classification
effectivePeriod 0..* 0..* 1
0..* (link) 1
nameDisplayString 1
Address
Role
PartyIdentifier effectivePeriod
1 effectivePeriod
partyIdentifierType (link) addressDisplayString
partyIdentifierValue
effectivePeriod
0..* 0..*
Person Organization PostalAddress
gender AddressService postalDeliveryDescription
containment containment town
effectivePeriod
state
1 1 addressUsageType
1..* postcode
1..* PhysicalAddress country
flatIdentifier
PersonName
floorIdentifier
effectivePeriod OrganizationName Emailddress
containment propertyName
personNameType effectivePeriod locationDescription emailAddressString
salutation 0..* orgNameType streetNumber
familyName 1 orgName streetName
postNominal town PhoneNumber
PersonGivenName
state countryPrefix
givenName postcode areaPrefix
sequenceNumber country localNumber
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 14
- 15. A palette of “Assembly patterns”
Account
Task
Agreement
Resource
/ Asset
Document
Product
Event
Party & Role
Location
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 15
- 16. Coarse-grained “Integration patterns”
Account copy
filed
Task constrained as
by Agreement
Document
Resource
/ Asset participates in,
sited signatory to, ...
at
Product Event
Party &
Role Location 2
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 16
- 17. Or mineral exploration/extraction
Account copy
filed
as
Task constrained
by Agreement
archived
at
used as basis Storable
Resource for analysis in
object /
/ Asset participates in,
generates analysis document
sited signatory to, ...
results held as
at
associated
with
Product Event
Party &
Role Location
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 17
- 18. … what about emergency response?
(or your problem?)
Account
Task
Agreement
Resource
/ Asset
Document
Product
Event
Party & Role
Country Endeavours Location
“Creative Solutions for Difficult Problems” © 2012 18
- 19. (a possible solution framework)
Account
assigned
to Task
Agreement
triggers
Document
Resource occurs
/ Asset at
sited
at
manages,
owns, ...
(or "is")
associated
with
Product Event
occurs
at
based at,
Party &
Country Endeavours
now at, ...
Role Location
“Creative Solutions for Difficult Problems” © 2012 19
- 20. © 2012 Country Endeavours
“Creative Solutions for Difficult Problems”
Tips-&-techniques for
using patterns
20
- 21. “In general, generalise”
AgreementType
PartyType agreementTypeCode
agreementTypeDesc
partyTypeCode
partyTypeDesc RoleType
1
classification roleTypeCode classification
0..1 roleTypeDesc cross-reference
0..* 0..*
0..* 1 classification Agreement
Party agreementReference 0..*
1 fulfilment 0..*
0..*
involvement
Role
effectivePeriod 2..*
Person 0..*
name Mortgage
dateOfBirth
loanToValueRatio
Solicitor
licenseNumber
Organization
registrationNumber
registeredName RealEstateAgent
registrationNumber
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 21
- 22. Use patterns beyond
their intended purpose
1 GoodsItem
itemIdentifier usage rule
aggregation rule itemDescription 1
0..*
AssemblySpecificationItem
quantityRequired
0..*
1 Party
partyIdentifier
aggregation rule partyName 1 shareholding recording
0..*
Shareholding
shareholdingPercent
0..*
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 22
- 23. Tailored extensions become a
pattern fulfilment
Party
effectivePeriod 1
nameDisplayString 0..* ContactReason
contactReasonCode
Role contactReasonDescription
1 0..1
effectivePeriod
status 0..1
0..1
constraint
specific constraint
0..* 0..*
(link) generic constraint ContactRuleSet
0..* effectivePeriod
0..* ContactRuleFilter
0..1 effectivePeriod
includeOrExcludeIndicator
Address
initial step restriction on use
effectivePeriod
addressDisplayString
(link) TimeOfDay
1 timePeriod
0..* 0..*
subsequent step DayOfWeek
AddressService 1 0..1 dayRange
effectivePeriod
rule target contact point
addressUsageType 1 ContactRuleStep
CalendarPeriod
0..1
0..* dateRange
1
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 23
- 24. YAGNI Model Variable Acronym Operand Operator Operand
(You ain’t Num. Number
20 5 BR
1
WB minus
2
"7"
gonna need it) 20 6 SJ H minus “35”
Head rail
Model
modelNumber
Fixed panel top modelName
Door top
containment
Fixed panel (glass)
Sliding door
1
panel (glass)
Fixed panel side
Door side
0..*
Side jamb
Towell bar Variable
variableNumber
variableAcronym
Door bottom
variableName
Fixed panel bottom
Bottom rail
Measurement Computation
operand1
operator
Country Endeavours operand2
“Creative Solutions for Difficult Problems” © 2012 24
- 25. Take the enterprise view
(& challenge the concepts)
Party - Simplified
name
address
phone
Employee Customer
1 fulfilment effectivePeriod effectivePeriod
name name
address address
0..* phone phone
salary creditLimit
Role superannuationFund industryCode
effectivePeriod
EmployeeRole CustomerRole
salary creditLimit
superannuationFund industryCode
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 25
- 26. The “T-model” approach
Mile-wide, inch-deep (touch points at least)
Drill-down only where required
Iterate within project, & across projects
Account Agreement Document Party/Role (etc.)
High-level logical
subject areas
Standard logical
assembly patterns
Refined logical
assembly patterns
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 26
- 27. © 2012 Country Endeavours
“Creative Solutions for Difficult Problems”
Take-away notes for you
27
- 28. Does it really work?
Some real-life stories
• Weeks, not months, for a usable framework
But
• It’s more of a framework than an implementation
design
• The 80/20 rule doesn’t work
Even with “patterns”, there is a place for (agile)
modellers!!!
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 28
- 29. Messages for modellers?
The Agile world is different:
• Modelling “ain’t enough”
• Deliver early, stay to refine, integrate at end
There’s a need to learn about:
• “Agile” (Scrum, Kanban, Lean, stand-ups, UX, …)
• Patterns, and their integration
• OO – More than reading UML
It can be fun working with agilists
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 29
- 30. Messages for agilists?
Welcome (agile) modellers, & be patient
Jointly identify/mitigate “architecture breakers”
Help “data” types with solutions beyond patterns
Tell “data” types your expectations:
• Want a framework in your first iteration (not
perfect, but it should be robust, extensible)
• They need to keep an eye on integration – it’s their job
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 30
- 31. Conclusion?
Start-up models?
Flexibility over successive iterations?
Simpler post-project integration ?
… and any questions?
Country Endeavours
“Creative Solutions for Difficult Problems” © 2012 31