View
25
Download
3
Embed Size (px)
DESCRIPTION
Presentation by John Giles to Melbourne Scrum User group. From 26 Sept 2012
Citation preview
Country Endeavours“Creative Solutions for Difficult Problems”
© 2012
1(John Giles)
The civil (uncivil?) war-
Agilist vs. Data Architect
1. Understand the “enemy”2. The mechanics of data pattern agility3. Tips & techniques4. Take-aways for you
Country Endeavours“Creative Solutions for Difficult Problems”
© 2012
2
What’s the war really about?
© 2012Country Endeavours
“Creative Solutions for Difficult Problems” 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”
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Conflict resolution(“fighting over the remote”)
4
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
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)
5
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
“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.”
6
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Modelling controversies
7
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
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)
8
Country Endeavours“Creative Solutions for Difficult Problems”
© 2012
9
Mechanics of patterns
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Fine-grained “Elementary patterns”
10
namedateOfBirth
Person
skillTypeCodeskillTypeDescription
SkillType
0..* 0..*
skill acquisition
namedateOfBirth
Person
skillTypeCodeskillTypeDescription
SkillType
dateAcquiredlevelOfProficiency
PersonalSkill
1 0..*
personal skill record 1
0..*
skill inventory
© 2012Country Endeavours
“Creative Solutions for Difficult Problems” 11
Resources & their attributes
registrationNumberfuelTypenumberSeats
FourWheelDriveCabChasis
waterCapacitypumpDeliveryRatefuelType
SlipOnTank
radioTypemakemodel
Radio
0..1
0..1
current fitting
0..1
1..2
emergency communications
registrationNumberwaterCapacityairSpeed
WaterBomber0..1
2..2
communications
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Using the EAV Elementary pattern
12
resourceSpecificationNameisAbstract
ResourceSpecification
resourceTypeCoderesourceTypeDescription
ResourceType
0..10..*subclassification
10..*
classification
effectivePeriodresourceName
Resource
0..1
0..*inheritance
1
0..*
template
localNameminOccursmaxOccursderivationExpression
Utitilty-EAV::AllowableAttribute
1
0..*
containment
specifiedValue
Utitilty-EAV::AttributeValue
Note that components of this Assembly Patternare based on the Entity/Attribute/Value (EAV)Elementary pattern (also known by severalother titles e.g. the "Name/Value pair" pattern).
attributeNamedatatype
Utitilty-EAV::AttributeSpecification
1
0..*
containment
1
0..*
constraint
1
0..*
specification
unitOfMeasure
Utitilty-EAV::EnumerationItem
1
0..*
containment
effectivePeriodresourceIdentifierTyperesourceIdentifierValue
ResourceIdentifier
1
0..*
identification
enumerationValue
Utitilty-EAV::DiscreteEnumerationItem
minimumValuemaximumValueminimumBreakRulemaximumBreakRule
Utitilty-EAV::RangeEnumerationItem
0..1
0..*
enumeratedValue
effectivePeriod
ResourceToResourceRelationship
1
0..*
participant1
1
0..*
participant2
resourceToResourceRelationshipTypeCoderesourceToResourceRelationshipTypeDescriptionparticipant1Roleparticipant2Role
ResourceToResourceRelationshipType
1
0..*
classification
1
0..*
participant type1
1
0..*
participant type2
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
One medium-grained pattern- the face of “Party”
13
namegender
Person
registrationNumberregisteredName
Organization
effectivePeriod
Party
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Drill-down for “Party”
14
effectivePeriodnameDisplayString
Party
effectivePeriod
Role
10..*
fulfilment
roleTypeCoderoleTypeDescription
RoleType
10..*
classification
gender
Person Organization
effectivePeriodaddressUsageType
AddressService
effectivePeriodaddressDisplayString
Address
postalDeliveryDescriptiontownstatepostcodecountry
PostalAddress
flatIdentifierfloorIdentifierpropertyNamelocationDescriptionstreetNumberstreetNametownstatepostcodecountry
PhysicalAddress
countryPrefixareaPrefixlocalNumber
PhoneNumber
emailAddressString
Emailddress
1
0..*
(link)
effectivePeriodpersonNameTypesalutationfamilyNamepostNominal
PersonName
givenNamesequenceNumber
PersonGivenName
effectivePeriodorgNameTypeorgName
OrganizationName
11..*
containment
10..*
containment
1
1..*
containment
partyIdentifierTypepartyIdentifierValueeffectivePeriod
PartyIdentifier
1
0..*
identification
1
0..*
(link)
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
A palette of “Assembly patterns”
15
Party & Role
Event
Account
Location
Document
AgreementTask
Product
Resource / Asset
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Coarse-grained “Integration patterns”
16
2
Party & Role
Event
Account
Location
Document
AgreementTask
Product
participates in,signatory to, ...sited
at
copyfiledasconstrained
by
Resource / Asset
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Or mineral exploration/extraction
17
Party & Role
Event
Account
Location
Storableobject /
document
AgreementTask
Product
participates in,signatory to, ...sited
at
archivedat
associatedwith
copyfiledas
used as basisfor analysis in
constrainedby
Resource / Asset generates analysis
results held as
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
… what about emergency response?(or your problem?)
18
Party & Role
Event
Account
Location
Document
AgreementTask
Product
Resource / Asset
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
(a possible solution framework)
19
Party & Role
Event
Account
Location
Document
AgreementTask
Product
based at,now at, ...
occursat
occursat
triggers
assignedto
sitedat
associatedwith
manages,owns, ...(or "is")
Resource / Asset
Country Endeavours“Creative Solutions for Difficult Problems”
© 2012
20
Tips-&-techniques for using patterns
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
“In general, generalise”
21
namedateOfBirth
Person
registrationNumberregisteredName
Organization
Party
effectivePeriod
Role
roleTypeCoderoleTypeDesc
RoleType
1
0..*
fulfilment
1
0..*
classification
agreementReference
Agreement
0..*
0..*cross-reference
2..*
0..*involvement
licenseNumber
Solicitor
registrationNumber
RealEstateAgent
agreementTypeCodeagreementTypeDesc
AgreementType
1
0..*
classification
loanToValueRatio
Mortgage
partyTypeCodepartyTypeDesc
PartyType
0..1
0..*
classification
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Use patterns beyond their intended purpose
22
itemIdentifieritemDescription
GoodsItem
quantityRequired
AssemblySpecificationItem
1
0..*
aggregation rule 1
0..*
usage rule
partyIdentifierpartyName
Party
shareholdingPercent
Shareholding
1
0..*
aggregation rule 1
0..*
shareholding recording
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Tailored extensions become a pattern
23
contactReasonCodecontactReasonDescription
ContactReasoneffectivePeriodnameDisplayString
Party
effectivePeriod
ContactRuleSet
0..1
0..*
constraint
ContactRuleStep
0..1
1
initial step
0..1
0..1subsequent step
effectivePeriodaddressUsageType
AddressService
1
0..*
(link)
1
0..*
rule target contact point
effectivePeriodincludeOrExcludeIndicator
ContactRuleFilter
1
0..*
restriction on use
timePeriod
TimeOfDay
dayRange
DayOfWeek
dateRange
CalendarPeriod
effectivePeriodstatus
Role
1 0..*
fulfilment
0..1
0..*
generic constraint
0..1
0..*
specific constraint
effectivePeriodaddressDisplayString
Address
10..*
(link)
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
YAGNI(You ain’t gonna need it)
24
Sliding door panel (glass)
Side jamb
Door side
Towell bar
Fixed panel bottom
Door top
Door bottom
Fixed panel (glass)
Fixed panel top
Fixed panel side
Head rail
Bottom rail
Model Num.
Variable Number
Acronym Operand 1
Operator Operand 2
20 5 BR WB minus "7"
20 6 SJ H minus “35”
modelNumbermodelName
Model
variableNumbervariableAcronymvariableName
Variable
Measurement
operand1operatoroperand2
Computation
1
0..*
containment
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Take the enterprise view(& challenge the concepts)
25
nameaddressphone
Party - Simplified
salarysuperannuationFund
EmployeeRole
creditLimitindustryCode
CustomerRole
effectivePeriod
Role
effectivePeriodnameaddressphonesalarysuperannuationFund
Employee
effectivePeriodnameaddressphonecreditLimitindustryCode
Customer1
0..*
fulfilment
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
The “T-model” approach
Mile-wide, inch-deep (touch points at least) Drill-down only where required Iterate within project, & across projects
26
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
27
Take-away notes for you
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
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!!!
28
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
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
29
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Messages for agilists?
30
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
© 2012Country Endeavours
“Creative Solutions for Difficult Problems”
Conclusion?
Start-up models?
Flexibility over successive iterations?
Simpler post-project integration ?
… and any questions?
31