Search this site
Embedded Files
Published Patterns
  • Home
  • A Vision
  • Book Outline
    • Acknowledgments
    • Beedle Dedication
    • Beyond the Core
    • Composing Your Own Pattern Language
    • Confidence Star Summary
    • Dedications
    • History of the Patterns
    • Introduction
    • Patlets
    • Pattern Name Aliases
    • Picture Credits
    • Preface
    • Product Organization Pattern Language
    • Product Organization Pattern Language
    • Product Owner’s Note
    • The Core Patterns in Brief
    • The Future of the Patterns
    • Value Stream Pattern Language
  • External Patterns
    • Apprenticeship
    • Code Ownership
    • Community of Trust
    • Compensate Success
    • Completion Headroom
    • Day Care
    • Developer Controls Process
    • Developing in Pairs
    • Distribute Work Evenly
    • Do Food
    • Domain Expertise in Roles
    • Don’t Interrupt an Interrupt
    • Eat Your Own Dog Food
    • Engage Quality Assurance
    • Face-to-Face Before Working Remotely
    • Failed Project Wake
    • Firewall
    • Gatekeeper
    • Informal Labor Plan
    • Interrupts Unjam Blocking
    • Matron Role
    • Moderate Truck Number
    • Named Stable Bases
    • Organization Follows Market
    • Patron Role
    • Producer Roles
    • Programming Episodes
    • Recommitment Meeting
    • Sacrifice One Person
    • Self-Selecting Team
    • Size the Organization
    • Smoke-Filled Room
    • Solo Virtuoso
    • Someone Always Makes Progress
    • Stand-Up Meeting
    • Surrogate Customer
    • Take No Small Slips
    • Team per Task
    • Team Pride
    • The Water Cooler
    • Unity of Purpose
    • Wise Fool
    • Work Flows Inward
  • Product Organization Pattern Language
    • A Scaling Sequence
    • A Sequence Of Scaling
    • Birds of a Feather
    • Chief Product Owner
    • Conway's Law
    • Development Partnership
    • Development Team
      • Autonomous Team
      • Collocated Team
      • Cross-Functional Team
      • Developer-Ordered Work Plan
      • Distribute Work Evenly
      • Fertile Soil
      • Oyatsu Jinja
      • Remove the Shade
      • Self-Organizing Team
      • Small Teams
      • Stable Teams
      • Swarming: One-Piece Continuous Flow
      • Team Pulse
      • Team Sprint
    • Domain Expertise in Roles
    • Emergency Procedure
    • Illegitimus Non Interruptus
    • Improvement Community
    • Kaizen and Kaikaku
    • Kaizen Pulse
    • Leading Team
    • MetaScrum
    • Mitosis
    • Norms of Conduct
    • Organizational Sprint Pulse
    • Pop the Happy Bubble
    • Product Owner
    • Product Owner Team
    • Product Pride
    • Scrum of Scrums
    • Scrum Team
    • ScrumMaster
    • Scrumming the Scrum
    • Small Red Phone
    • Sprint Pulse
    • The Mist
  • Scrum Core Pattern Language
    • Backlog Grooming Meeting
    • Backlog Refinement Meeting
    • Daily Scrum
    • Development Team
    • Product Backlog
    • Product Owner
    • Scrum Team
    • ScrumMaster
    • Sprint
    • Sprint Backlog
    • Sprint Burndown
    • Sprint Planning Meeting
    • Sprint Retrospective
    • Sprint Review
  • Sequences
    • A Project Language of Highly Effective Teams
    • Product Backlog Sequence
    • Product Organization Sequence
    • Project Languages
    • Value Stream Sequence
    • Your Own Pattern Language
  • Unlinked Patterns
    • Impediment List
    • Involve the Managers
    • Involve the Managers - Redux
  • Value Stream
    • Daily Clean Code
    • Definition of Done
    • Estimation Points
      • Accountable Estimates
      • Pigs Estimate
      • Updated Velocity
      • Yesterday's Weather
    • Fixed Work
    • Good Housekeeping
    • Greatest Value
    • Information Radiator
      • Scrum Board
      • Sprint Burndown Chart
    • Notes on Velocity
    • Product Backlog
      • Aggregate Velocity
      • Change for Free
      • Definition of Ready
      • Enabling Specification
      • Estimation Range
      • Fixed-Date PBI
      • Granularity Gradient
      • High Value First
      • Money For Nothing
      • Product Backlog Item
      • Rechunked PBIs
      • Refined Product Backlog
      • ROI-Ordered Backlog
      • Specialized Velocities
      • Vacation PBI
      • Value and ROI
    • Product Roadmap
    • Product Wake
    • Production Episode
    • Regular Product Increment
    • Release Plan
      • Product Roadmap
      • Release Range
      • Release Staging Layers
    • Responsive Deployment
    • Rhythms: Patterns of Time
    • Running Average Velocity
    • Set-Based Design
    • Small Items
    • Sprint
      • Daily Scrum
        • ScrumMaster Incognito
      • Follow the Moon
      • Sprint Retrospective
      • Stop the Line
    • Sprint Backlog
      • Burndown Chart
      • Dependencies First
      • Developer-Ordered Work Plan
      • Small Items
      • Sprint Backlog Item
    • Sprint Goal
    • Sprint Planning
    • Sprint Review
    • Team Sprint
    • The Spirit of the Game
    • Value Areas
    • Value Stream Fork
    • Visible Status
    • Vision
    • Whack the Mole
  • Organizational Patterns of Agile Software Development
    • BookOutline
      • Appendices
        • Bibliography
        • ParkingLot
        • PhotoCredits
        • SummaryPatlets
      • CaseStudies
        • AHyperproductiveTelecommunicationsDevelopmentTeam
        • BorlandQuattroProForWindows
      • FoundationsAndHistory
        • AnthropologicalFoundations
          • BeyondProcessToStructureAndValues
          • DistillingThePatterns
          • PatternsInAnthropology
          • RolesAndCommunication
          • RolesAndCommunications
          • SocialNetworkAnalysis
          • CRCCardsAndRoles
          • ScatterplotsAndPatterns
          • SocialNetworkTheoryFoundations
        • OrganizationalPrinciples
          • PiecemealGrowth
          • PrimingTheOrganizationForChange
          • SomeGeneralRules
          • BuildingOnTheSolidCore
          • DissonancePrecedesResolution
          • ItDependsOnTheContextOfTheOrganization
          • ItDependsOnYourRoleInYourOrganization
          • MakeLoveNotWar
          • OrganizationalPatternsAreInspirationRatherThanPrescription
          • OrganizationalPatternsAreUsedByGroupsRatherThanIndividuals
          • PeopleAreLessPredictableThanCode
          • StabilityAndCrisisManagement
          • TeamBuilding
          • TeamBurnout
          • TheOpenClosedPrincipleOfTeams
          • TheRoleOfManagement
      • HistoryAndIntroduction
        • HowThePatternsCameToUs
          • CreatingSequences
          • GatheringOrganizationalData
          • HistoryAndRelatedWork
          • AnalyzingRolesAndRelationships
          • IntrospectionAndAnalysisOfOrganizations
          • IntrospectionInAndAnalysisOfOrganizations
          • ShortcomingsOfStateOfTheArt
          • TheCRC-CardMethodology
        • HowToUseThisBook
          • ApplyingThePatterns
          • ReadingThePatterns
          • UpdatingThePatterns
          • WhoShouldUseThisBook
      • PreFace
      • ThePatternLanguages
        • OrganizationConstructionPatterns
          • OrganizationalStylePatternLanguage
          • PeopleAndCodePatternLanguage
          • ArchitectAlsoImplements
          • ArchitectControlsProduct
          • ArchitectureTeam
          • CodeOwnership
          • ConwaysLaw
          • CouplingDecreasesLatency
          • DeCoupleStages
          • DeployAlongTheGrain
          • DistributeWorkEvenly
          • DivideAndConquer
          • FaceToFaceBeforeWorkingRemotely
          • FeatureAssignment
          • FewRoles
          • FormFollowsFunction
          • FunctionOwnerAndComponentOwner
          • GenericsAndSpecifics
          • HallwayChatter
          • HierarchyOfFactories
          • HubSpokeAndRim
          • LockEmUpTogether
          • LooseInterfaces
          • MoveResponsibilities
          • OrganizationFollowsLocation
          • OrganizationFollowsMarket
          • ParserBuilder
          • PrivateVersioning
          • ProducerRoles
          • ProducersInTheMiddle
          • ResponsibilitiesEngage
          • ShapingCirculationRealms
          • SmokeFilledRoom
          • StableRoles
          • StandardsLinkingLocations
          • StandUpMeeting
          • SubclassPerTeam
          • TheWaterCooler
          • ThreeToSevenHelpersPerRole
          • UpsideDownMatrixManagement
          • VariationBehindInterface
        • OrganizationDesignPatterns
          • PiecemealGrowthPatternLanguage
          • ProjectManagementPatternLanguage
          • ApplicationDesignIsBoundedByTestDesign
          • ApprenticeShip
          • BuildPrototypes
          • CommunityOfTrust
          • CompensateSuccess
          • CompletionHeadroom
          • DayCare
          • DeveloperControlsProcess
          • DevelopingInPairs
          • DevelopmentEpisode
          • DiverseGroups
          • DomainExpertiseInRoles
          • DontInterruptAnInterrupt
          • EngageCustomers
          • EngageQualityAssurance
          • FailedProjectWake
          • FireWalls
          • GateKeeper
          • GetOnWithIt
          • GroupValidation
          • HolisticDiversity
          • ImpliedRequirements
          • IncrementalIntegration
          • InformalLaborPlan
          • InterruptsUnjamBlocking
          • LegendRole
          • MatronRole
          • MercenaryAnalyst
          • ModerateTruckNumber
          • NamedStableBases
          • PatronRole
          • PhasingItIn
          • PrivateWorld
          • ProgrammingEpisode
          • PublicCharacter
          • RecommitmentMeeting
          • SacrificeOnePerson
          • ScenariosDefineProblem
          • SelfSelectingTeam
          • SizeTheOrganization
          • SizeTheSchedule
          • SkunkWorks
          • SoloVirtuoso
          • SomeoneAlwaysMakesProgress
          • SubsystemBySkill
          • SurrogateCustomer
          • TakeNoSmallSlips
          • TeamPerTask
          • TeamPride
          • UnityOfPurpose
          • WiseFool
          • WorkFlowsInward
          • WorkQueue
          • WorkSplit
    • CommonPatternLanguage
    • DiversityOfMembership
    • IndentationHint
    • OrganizationalPatterns
    • SkillMix
    • StartingPoints
    • TheCatalyst
    • ThoughtsWeaver
    • WorkAllocation
    • HistoryAndIntroduction
      • AnOverviewOfPatternsAndOrganizationalPatterns
        • OrganizationalPatternLanguages
        • WhatArePatternLanguages
        • WhatArePatterns
Published Patterns

Standards Linking Locations

Standards in cartography allow people in different nations to use the same maps.

We once worked with a project doing a wireless communications architecture. The project was spread across three states and two countries, though most of the work centered in two states. Each of those two locations built software for the locations' respective hardware boxes, and those boxes communicated closely with each other. There of course was a standard message protocol, but it wasn't articulated anywhere: each location used its own C language structures to define its understanding of the messages. Each location emphasized the message fields most of interest to it; in some cases, one location would give a field one name while another location gave it another name. It doesn't take much imagination to envision the confusion that ensued.

...a product must be developed in several different hallways, on different floors of a building, in different buildings or at different locations. Their code must interact.

✥ ✥ ✥

It is difficult for geographically distanced teams to find opportunity or time to meet and interact for reasons of geographic distance. Yet the system must act as a system, and to do that the parts must talk to each other. There must be a common convention for the parts to talk to each other. The many parties could come to an agreement in a common meeting, but that is too much master planning and doesn't build on experience enough, and also doesn't leave much room for correction and iteration.

Communication patterns between project members follows geographic distribution. Local groups should be as autonomous as possible. Coupling between pieces of software must be sustained by analogous coupling between the people maintaining that software. People avoid communicating with people who work in other buildings, other towns, or overseas (see below). People in an organization usually work on related tasks, which suggests that they communicate frequently with each other.

Therefore:

Use standards to express architectural concerns that cross geographic boundaries. The technique may extend to organizational boundaries, which can be as severe as distant geographic location. It might extend to organizations separated only by one floor in a building; small geographic distances can loom large if the building architecture doesn't support close interworking.

One of the good things about standards is that they are almost context-free. They at least give the illusion of a shared context across organizations that otherwise can find little in common.

✥ ✥ ✥

This is a variant of ConwaysLaw. There is low cultural context between locations, so the interaction between locations is mediated at a technical level using the most vernacular approach: industry or corporate standards.

Local groups have higher context and more effective communication within themselves. Use of standards within a location or within groups can actually reduce understanding, add overhead, and complicate communication.

Be sure to use FaceToFaceBeforeWorkingRemotely to temper what can too easily become a sterile exchange of standards-based communications.

The problem described in this pattern might, in extreme cases, extend to work between adjacent cubicles--but in that case, there may be nothing that can help, and such a technological solution to this certainly won't solve the underlying organizational or personality problems.

Example:

A project might use standards like XML and RM/ODP to communicate between corporate subsidiaries working on a project. But to use a standard within one of the subsidiaries would be counterproductive. For example, reducing all inter-object communications to use CORBA would both complicate architectural understanding and put system performance at jeopardy.

Standards such as protocols and conventional data formats can provide cultural context that lowers the need for communication between remote sites.

Report abuse
Page details
Page updated
Report abuse
OSZAR »