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

Architecture Without an End State

Architecture Without an End State

Michael Nygard

June 24, 2012
Tweet

More Decks by Michael Nygard

Other Decks in Programming

Transcript

  1. ARCHITECTURE WITHOUT AN END STATE Michael T. Nygard Relevance, Inc.

    [email protected] @mtnygard © 2011-2012 Michael T. Nygard, All Rights Reserved.
  2. 3. Pitch the plan Year 1 Year 2 Year 3

    Vendor Selection & Pilot Legacy Conversion Converged Applications
  3. 4. Start a new cycle Year 1 Year 2 Year

    3 Year 1 Year 2 Year 3 Year 1 Year 2 Year 3 Year 1 Year 2 Year 3 Year 1 Year 2 Year 3 Current CIO’s vision Previous CIO’s boondoggle Legacy crap Legacy crap Legacy crap
  4. Complex Systems • No “grand narrative”, no privileged vantage point.

    • Only locally contextualized views • Many local optimizations • Global optimization not possible
  5. Like world peace, it exists only briefly and is so

    very fragile. Like world peace, it exists only briefly and is so very fragile.
  6. • “We can only know what we can record.” •

    SSoR must choose one representation • “What is a customer?” • Any model enables some thoughts, disallows others. Epistemological Challenges
  7. Example: Getting SKUd • What is a Stock Keeping Unit

    (SKU)? • Can be sold • Must be shipped • Takes up shelf space • Has a price & cost • One SKU exists per “kind of thing” that can be sold • Does not track the individual inventory item
  8. Getting SKUd: Changes In One Year New Market Rendered Irrelevant

    Added Digital Downloads Shelf space, shipping, fixed cost Tracking individual purchases Partner sales Controlled ID space Multiple prices & shippers per item Home Installation & Renovation 16,000,000 add’l SKUs
  9. COGS Distribution Stocking Presentation Pricing Delivery Inventory COGS Distribution Stocking

    Presentation Pricing Delivery Inventory Entitlements COGS Distribution Stocking Pricing Delivery Inventory Presentation Competing Deconstructions
  10. Focus on • Local authorities and spans • System of

    identifiers: URNs & URIs • Representations for interchange • Enable copies instead of eliminating them • Representations identify their contributors Multiple Systems Of Record
  11. Consumers must assume open world • Cannot embed rules from

    all sources • Use service URLs to identify mechanics • E.g., “price me by posting to this URL” Multiple Systems Of Record
  12. Business Rules Are Contextual How much information is required? What

    is the lifecycle of the entity? What can it be used for in the current state? Answers will vary across business units.
  13. Example: Comparing Desk Sizes Equity Fixed-income HFT Frequency Size Execution

    Ratio per minute per day per microsecond 105 – 106 106 – 107 104 – 106 ~ 1:1 1:1 1:105
  14. Example: Auto Financing How many rules are the same between

    personal auto financing and fleet vehicle leasing?
  15. Prerequisites For An Enterprise Modeling Project • Global perspective •

    Agreement across all business units • Talent for abstraction • Concrete experience in all contexts • Small enough team to make decisions
  16. Prerequisites For An Enterprise Modeling Project • Global perspective •

    Agreement across all business units • Talent for abstraction • Concrete experience in all contexts • Small enough team to make decisions ∅
  17. 1. Seek compromises 2. Assume an open world 3. Begin

    small, incrementalize 4. Allow lengthy comment periods
  18. Prerequisites • Transparency Methods, work, and results must be visible

    • Isolation One group’s failure cannot cause widespread damage • Economics Distributed economic decision-making
  19. Example: Boeing 777 Source: “Principles of Product Development Flow”, D.

    Reinertsen Aircraft Weight Cost 1 pound gross weight = $ 300 per plane
  20. 8 Rules 1. Embrace Plurality 2. Contextualize Downstream 3. Beware

    Grandiosity 4. Decentralize 5. Isolate Failure Domains
  21. Value Of Modularity Splitting Substitution Augmenting Excluding Inversion Porting Source:

    “Design Rules: The Power of Modularity.”, Baldwin & Clark, 2000.
  22. Negative Option Value Failed system or failed business unit ==

    negative value option. Isolate the failure, use modularity options.
  23. 8 Rules 1. Embrace Plurality 2. Contextualize Downstream 3. Beware

    Grandiosity 4. Decentralize 5. Isolate Failure Domains 6. Data Outlives Applications 7. Applications Outlive Integrations
  24. “Hexagonal Architecture” Or Ports & Adapters http://alistair.cockburn.us/Hexagonal+architecture System Boundary Admins

    Users Databases Feeds in ELinux: Disabled at runtime. SELinux: Unregistering netfilter hooks type=1404 audit(1316273329.901:2): selinux=0 auid=4294967295 ses=4294967295 input: PC Speaker as /class/input/input0 netfront: Initialising virtual ethernet driver. netfront: device eth0 has copying receive path. netfront: device eth1 has copying receive path. Floppy drive(s): fd0 is unknown type 15 (usb?), fd1 is unknown type 15 (usb?) Failed to obtain physical IRQ 6 floppy0: no floppy controllers found work still pending lp: driver loaded but no devices found md: Autodetecting RAID arrays. md: autorun ... Monitoring Metrics Feeds out Domain adapter adapter adapter adapter adapter adapter adapter
  25. 8 Rules 1. Embrace Plurality 2. Contextualize Downstream 3. Beware

    Grandiosity 4. Decentralize 5. Isolate Failure Domains 6. Data Outlives Applications 7. Applications Outlive Integrations 8. Increase Discoverability
  26. Improve by building on the work of others. It’s not

    eliminating duplication or reducing cost. But costs will come down as a result of being better.
  27. • Visible work: • Internal blogs • Open code repositories

    • Modern search engine (homegrown is fine) Prerequisites
  28. • Contributions are disruptions • Inquiries are alarming. • They

    presage a budget annexation attack. Beware: Budget Culture
  29. • Default to open sharing • Every app should have

    links to: • Team blog • Bug submission • CI server Engineering Culture
  30. 8 Rules 1. Embrace Plurality 2. Contextualize Downstream 3. Beware

    Grandiosity 4. Decentralize 5. Isolate Failure Domains 6. Data Outlives Applications 7. Applications Outlive Integrations 8. Increase Discoverability
  31. Abandon the 3 Year Plan Year 1 Year 2 Year

    3 Vendor Selection & Pilot Legacy Conversion Converged Applications
  32. ARCHITECTURE WITHOUT AN END STATE Michael T. Nygard Relevance, Inc.

    [email protected] @mtnygard © 2011 Michael T. Nygard, All Rights Reserved.