Melbourne agile and scrum sig slides v01-00

31
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 agility 3. Tips & techniques 4. Take-aways for you
  • date post

    19-Sep-2014
  • Category

    Business

  • view

    15
  • download

    3

description

Presentation by John Giles to Melbourne Scrum User group. From 26 Sept 2012

Transcript of Melbourne agile and scrum sig slides v01-00

Page 1: Melbourne agile and scrum sig   slides v01-00

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

Page 2: Melbourne agile and scrum sig   slides v01-00

Country Endeavours“Creative Solutions for Difficult Problems”

© 2012

2

What’s the war really about?

Page 3: Melbourne agile and scrum sig   slides v01-00

© 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”

Page 4: Melbourne agile and scrum sig   slides v01-00

© 2012Country Endeavours

“Creative Solutions for Difficult Problems”

Conflict resolution(“fighting over the remote”)

4

Page 5: Melbourne agile and scrum sig   slides v01-00

© 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

Page 6: Melbourne agile and scrum sig   slides v01-00

© 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

Page 7: Melbourne agile and scrum sig   slides v01-00

© 2012Country Endeavours

“Creative Solutions for Difficult Problems”

Modelling controversies

7

Page 8: Melbourne agile and scrum sig   slides v01-00

© 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

Page 9: Melbourne agile and scrum sig   slides v01-00

Country Endeavours“Creative Solutions for Difficult Problems”

© 2012

9

Mechanics of patterns

Page 10: Melbourne agile and scrum sig   slides v01-00

© 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

Page 11: Melbourne agile and scrum sig   slides v01-00

© 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

Page 12: Melbourne agile and scrum sig   slides v01-00

© 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

Page 13: Melbourne agile and scrum sig   slides v01-00

© 2012Country Endeavours

“Creative Solutions for Difficult Problems”

One medium-grained pattern- the face of “Party”

13

namegender

Person

registrationNumberregisteredName

Organization

effectivePeriod

Party

Page 14: Melbourne agile and scrum sig   slides v01-00

© 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)

Page 15: Melbourne agile and scrum sig   slides v01-00

© 2012Country Endeavours

“Creative Solutions for Difficult Problems”

A palette of “Assembly patterns”

15

Party & Role

Event

Account

Location

Document

AgreementTask

Product

Resource / Asset

Page 16: Melbourne agile and scrum sig   slides v01-00

© 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

Page 17: Melbourne agile and scrum sig   slides v01-00

© 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

Page 18: Melbourne agile and scrum sig   slides v01-00

© 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

Page 19: Melbourne agile and scrum sig   slides v01-00

© 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

Page 20: Melbourne agile and scrum sig   slides v01-00

Country Endeavours“Creative Solutions for Difficult Problems”

© 2012

20

Tips-&-techniques for using patterns

Page 21: Melbourne agile and scrum sig   slides v01-00

© 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

Page 22: Melbourne agile and scrum sig   slides v01-00

© 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

Page 23: Melbourne agile and scrum sig   slides v01-00

© 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)

Page 24: Melbourne agile and scrum sig   slides v01-00

© 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

Page 25: Melbourne agile and scrum sig   slides v01-00

© 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

Page 26: Melbourne agile and scrum sig   slides v01-00

© 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

Page 27: Melbourne agile and scrum sig   slides v01-00

Country Endeavours“Creative Solutions for Difficult Problems”

© 2012

27

Take-away notes for you

Page 28: Melbourne agile and scrum sig   slides v01-00

© 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

Page 29: Melbourne agile and scrum sig   slides v01-00

© 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

Page 30: Melbourne agile and scrum sig   slides v01-00

© 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

Page 31: Melbourne agile and scrum sig   slides v01-00

© 2012Country Endeavours

“Creative Solutions for Difficult Problems”

Conclusion?

Start-up models?

Flexibility over successive iterations?

Simpler post-project integration ?

… and any questions?

31