inverse-conway
Align architecture and team structure using inverse Conway maneuver
What this skill does
# Inverse Conway Maneuver Skill
## When to Use This Skill
Use this skill when:
- **Inverse Conway tasks** - Working on align architecture and team structure using inverse conway maneuver
- **Planning or design** - Need guidance on Inverse Conway approaches
- **Best practices** - Want to follow established patterns and standards
## Overview
Apply inverse Conway maneuver to deliberately design team structure for desired architecture.
## MANDATORY: Documentation-First Approach
Before applying inverse Conway:
1. **Invoke `docs-management` skill** for architecture-team alignment
2. **Verify Conway patterns** via MCP servers (perplexity)
3. **Base guidance on Team Topologies and DDD literature**
## Conway's Law
```text
Conway's Law:
"Organizations which design systems are constrained to
produce designs which are copies of the communication
structures of these organizations."
— Melvin Conway, 1968
IMPLICATION:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Team A │ │ Team B │ │ Team C │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Component A │◄──►│ Component B │◄──►│ Component C │
└─────────────┘ └─────────────┘ └─────────────┘
If teams communicate, their components will integrate.
If teams don't communicate, their components won't integrate well.
```
## Inverse Conway Maneuver
```text
Inverse Conway Maneuver:
Instead of: Team structure → Architecture (emergent)
Do this: Desired architecture → Team structure (deliberate)
PROCESS:
1. Design the target architecture
2. Identify communication patterns needed
3. Restructure teams to match
4. Architecture follows teams
┌─────────────────────────────────────────────────────────┐
│ TARGET ARCHITECTURE │
│ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Service A │ │ Service B │ │ Service C │ │
│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │
│ │ │ │ │
│ └───────────────┼───────────────┘ │
│ │ │
│ ┌──────┴──────┐ │
│ │ Platform │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
│
▼ DESIGN TEAMS TO MATCH
┌─────────────────────────────────────────────────────────┐
│ TEAM STRUCTURE │
│ │
│ ┌───────────┐ ┌───────────┐ ┌───────────┐ │
│ │ Team A │ │ Team B │ │ Team C │ │
│ │(Service A)│ │(Service B)│ │(Service C)│ │
│ └─────┬─────┘ └─────┬─────┘ └─────┬─────┘ │
│ │ │ │ │
│ └───────────────┼───────────────┘ │
│ │ │
│ ┌──────┴──────┐ │
│ │ Platform │ │
│ │ Team │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
```
## Architecture-Team Alignment
### Bounded Contexts to Teams
```text
DDD Bounded Context → Team Mapping:
BOUNDED CONTEXTS TEAMS
┌─────────────────┐ ┌─────────────────┐
│ Order Context │ ───────► │ Order Team │
│ │ │ │
│ • Order │ │ • Full-stack │
│ • OrderItem │ │ • Own deployment│
│ • OrderStatus │ │ • Own data │
└─────────────────┘ └─────────────────┘
┌─────────────────┐ ┌─────────────────┐
│ Payment Context │ ───────► │ Payment Team │
│ │ │ │
│ • Payment │ │ • Full-stack │
│ • Transaction │ │ • Own deployment│
│ • Refund │ │ • Own data │
└─────────────────┘ └─────────────────┘
BENEFITS:
✓ Clear ownership
✓ Reduced coordination
✓ Autonomous deployment
✓ Domain expertise
```
### Integration Seams
```text
Where Contexts Meet → Team Interfaces:
┌─────────────────┐ API Contract ┌─────────────────┐
│ Order Context │◄───────────────────►│ Payment Context │
│ │ │ │
│ Team A │ Clear interface │ Team B │
└─────────────────┘ └─────────────────┘
INTEGRATION PATTERNS:
• Shared Kernel: Small shared code (use sparingly)
• Customer-Supplier: One serves the other
• Anti-Corruption Layer: Translate between contexts
• Open Host Service: Published API for many consumers
```
## Applying Inverse Conway
### Step 1: Define Target Architecture
```text
Architecture Vision:
1. Identify key components/services
2. Define boundaries (bounded contexts)
3. Specify integration patterns
4. Note scaling requirements
5. Consider operational aspects
Questions:
□ What services will exist?
□ What are the boundaries?
□ How will services communicate?
□ What data does each own?
□ What are deployment units?
```
### Step 2: Map Communication Needs
```text
Communication Matrix:
│ Svc A │ Svc B │ Svc C │ Platform
───────────┼───────┼───────┼───────┼──────────
Service A │ - │ Low │ None │ High
Service B │ Low │ - │ High │ High
Service C │ None │ High │ - │ High
Platform │ High │ High │ High │ -
High = Frequent, detailed coordination
Low = Occasional, well-defined interfaces
None = No direct communication needed
```
### Step 3: Design Team Structure
```text
Team Structure Rules:
1. ONE TEAM PER BOUNDED CONTEXT
- Full ownership
- Reduced dependencies
- Clear accountability
2. MINIMIZE TEAM DEPENDENCIES
- If A and B need heavy coordination → same team
- If A and B are independent → separate teams
- If dependency is API-only → separate teams OK
3. SIZE APPROPRIATELY
- 5-9 people per team
- Can understand entire domain
- Manageable cognitive load
4. PLATFORM TEAMS FOR SHARED NEEDS
- Common infrastructure
- Shared services
- Self-service focus
```
### Step 4: Plan Transition
```text
Transition Approaches:
GRADUAL EVOLUTION:
Week 1-4: Pilot new team structure with one boundary
Week 5-8: Expand to adjacent boundaries
Week 9+: Full rollout
BIG BANG (Risky):
Day 1: New structure in place
Requires: Clear communication, quick stabilization
HYBRID:
• Announce new target structure
• Allow organic movement
• Timebox the transition
```
## Common Patterns
### Monolith to Microservices
```text
FROM:
┌─────────────────────────────────┐
│ Monolith Team │
│ (Everyone on everything) │
└─────────────────────────────────┘
TO:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Orders │ │ Payments │ │ Shipping │
│ Team │ │ Team │ │ Team │
└─────────────┘ └─────────────┘ └─────────────┘
│ │ │
└─────────────┼───────────────┘
│
┌───────┴───────┐
│ Platform │
│ Team │
└───────────────┘
APPROACH:
1. Identify bounded contexts in monolith
2. Assign teams to contexts
3. Extract services gradually
4. Move code ownership with teams
```
### Feature Teams to Stream-Aligned
```text
FROM:
┌──────────────────────────────────────────────┐
│ Feature Teams │
│ ┌────────┐ ┌────────┐ ┌────────┐ │
│ │Feature │ │FeaRelated in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.