Architectural Knowledge and Organizational Context: The Case for - - PowerPoint PPT Presentation

architectural knowledge and organizational context the
SMART_READER_LITE
LIVE PREVIEW

Architectural Knowledge and Organizational Context: The Case for - - PowerPoint PPT Presentation

Center on Architecting Socio-Technical Ecosystems Architectural Knowledge and Organizational Context: The Case for Socio-Technical Styles James Herbsleb Carnegie Mellon University jdh@cs.cmu.edu Photolithographic Alignment Small


slide-1
SLIDE 1

Center on Architecting Socio-Technical Ecosystems

Architectural Knowledge and Organizational Context: The Case for Socio-Technical Styles

James Herbsleb Carnegie Mellon University jdh@cs.cmu.edu

slide-2
SLIDE 2

Photolithographic Alignment

  • Small architectural changes have often

killed successful firms

  • Architecture gets embedded into
  • rganization

– Communication paths – Cognitive filters – Problem-solving strategies

Henderson, R.M. & Clark, K.B. (1990). Architectural Innovation: The Reconfiguration of Existing Product Technologies and the Failure of Established Firms. Administrative Science Quarterly, 35 (1), pp. 9-30.

slide-3
SLIDE 3

Architectural Decisions

  • Influence technical characteristics of product
  • Also constrain design of organization
  • Conway’s Law

– “Any organization that designs a system will inevitably produce a design whose structure is a copy of the organization's communication structure.”

Conway, M.E. How do committees invent? Datamation, 14, 5 (1968), 28-31

slide-4
SLIDE 4

Conway’s Law Is Static

  • Assumes architectural decisions all made up

front, not changed

  • Assumes requirements won’t change

– Requirements Δ  architecture Δ

  • Assumes simple, static organizational

structure

– Ignores network structure

  • Assumes implementation will conform to

architectural specification

slide-5
SLIDE 5

Varieties of Change

  • Key elements

– Interfaces (uncertainty, complexity) – Allocation of functionality – Bending the rules

  • How change propagates

– Informing vs. negotiating – Interests at stake: degrees of “heat”

  • Ability to accommodate change varies dramatically

– Coordination capability

  • How to bring architectures and organizations

into alignment?

slide-6
SLIDE 6

An Approach . . .

  • See successful patterns that recur, e.g.,

– Architectural styles – Design patterns – Problem frames

  • A way of capturing knowledge for

reuse

  • Can we expand such ideas from

technical to socio-technical?

slide-7
SLIDE 7

Architectural Style: Pipe and Filter

  • Pipe-and-filter commitments, e.g.,

– Filter performs local transformation – Filters are independent – Filters do not know identity of up- or down-stream filters

  • Organizational commitments to handle change

– Internal filter changes – local, no coordination (optimistically) – Interface changes – regional, just between producer/ consumer groups – Changes affecting global attributes – project-wide

slide-8
SLIDE 8

Architectural Style: Layers

  • Layered systems commitments, e.g.,

– Each layer provides service to layer above – Each layer acts as a client to layer below – Components implement virtual machine

  • Organizational commitments to handle change

– Internal layer changes – local – Interface changes – local if service remains backward compatible, or client does not need new services – Other Interface changes – regional, only between two layers – Changes affecting global attributes – central, or project- wide

slide-9
SLIDE 9

Socio-Technical Style

  • Technical architectural style matched

with organizational arrangements with the capacity to handle the kinds of coordination work the style requires.

slide-10
SLIDE 10

Coordination Capacity

  • People factors
  • Language skills
  • Culture
  • Expertise & TMS
  • History of

collaboration

  • Organizational

stability

  • Organizational

factors

  • Divergent incentives
  • Divergent strategies
  • Unclear goals
  • Divergent tools,

practices, processes

  • Communication

infrastructure

slide-11
SLIDE 11

Coordination Capacity

  • Project factors
  • Number of sites
  • Time zones
  • Disciplinary or

professional boundaries

  • People have

multiple teams

  • Leadership style
slide-12
SLIDE 12

A Few Examples . . .

  • Extracted from developers and architects at

multinational engineering firm

  • Idealized
  • Echoes of product line engineering
  • Not necessarily seen multiple times
  • Have been integrated as a module in

corporate training program for software architects

This work was done in collaboration with Marcelo Cataldo and Sangeeth Nambiar.

slide-13
SLIDE 13

Component Forking

slide-14
SLIDE 14

Component Forking

Most components maintained centrally Forked component maintained locally

slide-15
SLIDE 15

Component Forking

Gain: no need to coordinate across variants Loss: duplicated effort, difficulty in maintenance, impact of changing other components difficult to anticipate

slide-16
SLIDE 16

Partitioned Component

slide-17
SLIDE 17

Partitioned Component

Most components maintained centrally Common part maintained centrally Variant part maintained locally

slide-18
SLIDE 18

Partitioned Component

Gain: no need to coordinate across variant parts Loss: duplicated effort, difficulty in maintenance, impact of changing other components difficult to anticipate

slide-19
SLIDE 19

Component Slicing

slide-20
SLIDE 20

Component Slicing

All components maintained centrally Variant selected locally (configuration)

slide-21
SLIDE 21

Component Slicing

Gain: simplifies coordination around integrating and testing variants Loss: must communicate requirements for variants to central team

slide-22
SLIDE 22

Centralized Runtime Dependencies

slide-23
SLIDE 23

Centralized Runtime Dependencies

Runtime functionality with complex interdependencies brought together in single component Maintained by team with global view, e.g., of error recovery

slide-24
SLIDE 24

Centralized Runtime Dependencies

Gain: Easier to correctly meet global requirements, e.g., complex error handling Loss: More difficult to evolve individual components with new or different error conditions, messages

slide-25
SLIDE 25

Monolithic Layer-Spanning Components

slide-26
SLIDE 26

Monolithic Layer-Spanning Components

Most functionality is implemented in layers Exception granted for functionality with highly complex interactions across layers, e.g., sensors actuators, and computation for automatic parking

slide-27
SLIDE 27

Monolithic Layer-Spanning Components

Gain: ability to coordinate work within component B; use co-located team Loss: potentially very difficult integration with

  • ther

components, unexpected interactions

slide-28
SLIDE 28

An Observation

  • Centralized versus decentralized decision-making

– Centralized can globally optimize decisions in stable environments – Centralized is bottleneck in highly dynamic environments – Centralized is slower, longer and larger information flows – Decentralized may be better for solving immediate problem, may cause future problems

  • Fundamental approach: solve the hardest problems

by assigning all the closely-related work to a single, co-located team, manage the rest

slide-29
SLIDE 29

Some Research Issues

  • How to capture the organizational part?
  • How to capture the dynamism that drives

the style/pattern?

  • Dimensions of coordination capacity?

– Communication bandwidth – Tendency to cooperate – Correct anticipation – Background knowledge

slide-30
SLIDE 30