Architecture Decisions & Leadership
Architecture Decisions & Leadership
Architect Responsibilities
- Make Architecture Decisions - Define decisions and principles guiding technology choices
- Continually Analyze - Assess architecture vitality as business and technology change
- Keep Current - Stay updated on technical and industry trends
- Ensure Compliance - Verify teams follow defined decisions and principles
- Understand Technologies - Technical breadth over depth
- Know the Business - Understand domain, problems, goals, requirements
- Lead Teams - Exceptional interpersonal skills: teamwork, facilitation, leadership
- Navigate Politics - Negotiation skills to get decisions approved
Decision-Making
Architectural Decision Antipatterns
1. Covering Your Assets
Fear of being wrong prevents making decisions.
Solutions: Last Responsible Moment (decide when cost of deferring > risk of deciding) | Collaborate to validate feasibility |
2. Groundhog Day
Decisions get revisited repeatedly because people don’t know why they were made.
Solution: Provide technical AND business justifications: Cost | Time to market | User satisfaction | Strategic positioning |
3. Email-Driven Architecture
Decisions lost, forgotten, or unknown.
Solution: Store in single system of record | Email only links, not decision bodies |
Architectural Significance
A decision is architecturally significant if it affects:
- Structure (patterns/styles)
- Characteristics (performance, scalability)
- Dependencies (coupling)
- Interfaces (access/orchestration)
- Construction techniques (platforms, frameworks, tools)
Architectural Decision Records (ADRs)
Structure
Title: Numbered sequentially with short phrase
- Example: “42. Use Asynchronous Messaging Between Order and Payment Services”
Status: Proposed | Accepted | Superseded | RFC (with deadline) |
Approval Criteria:
- Cost thresholds (e.g., >$5K requires review)
- Cross-team impact
- Security implications
Context: Forces at play
- Specific circumstances
- Possible alternatives
- Area affected
Decision: Affirmative, commanding voice
- Example: “We will use asynchronous messaging between services.”
- Include full justification. Why > How
Consequences: Overall impact (pros and cons)
- Example: Better responsiveness (25ms vs 3,100ms) but complex error handling
Compliance: How will it be measured and governed?
-
Manual checks Automated fitness functions Tools (ArchUnit, NetArchTest)
Notes: Metadata
-
Author Approval date Approved by Last modified Superseded date
Storage
Store in dedicated repository or wiki accessible to all stakeholders.
Team Leadership
Making Teams Effective
Collaboration: Break down architect/developer barriers. Form strong bidirectional relationships. Architecture changes every iteration—tight collaboration essential.
Constraints & Boundaries: Create appropriate constraints forming a “room” for teams. Provide right level of guidance—not too much, not too little.
Architect Personalities
Control-Freak Architect: Too fine-grained decisions, tight boundaries, too many constraints → teams lose autonomy
Armchair Architect: Disconnected, no implementation details, loose boundaries → teams do architect’s work
Effective Architect: Appropriate constraints, ensures collaboration, right guidance level, removes roadblocks
Elastic Leadership
How involved should you be? Consider:
Team Familiarity: Better they know each other → less involvement
Team Size: Small (≤5) less | Large (>12) more |
Experience: More juniors → more mentoring | More seniors → facilitator role |
Project Complexity: High → more availability | Low → less involvement |
Project Duration: Longer → more involvement over time
Team Warning Signs
Process Loss (Brooks’s Law):
“Adding manpower to a late software project makes it later.”
– Fred Brooks, The Mythical Man-Month (1975)
When communication overhead exceeds productivity gains from additional people.
- Indicators: Frequent merge conflicts, working on same code, getting in each other’s way
- Solution: Find parallelism; avoid adding people without parallel work available
Pluralistic Ignorance (social psychology concept):
Everyone privately rejects a norm but assumes others accept it, so publicly goes along.
- Example: Team thinks daily standups are waste of time but nobody speaks up, assuming others find them valuable
- Solution: Smaller teams where people feel psychologically safe to speak up
Diffusion of Responsibility (social psychology concept):
Large teams → unclear ownership → everyone assumes someone else will handle it → work gets dropped
- Example: Bug report in shared channel with 20 people; nobody picks it up
- Solution: Clear roles, explicit ownership, right-sized teams
Providing Guidance
Design Principles
Use principles to form constraint boundaries.
Example: Third-Party Library Decision Framework
Special Purpose (Developer Decision):
- Specific functionality (PDFs, barcodes)
- Developer decides independently
General Purpose (Architect Approval):
- Wrappers on language APIs
- Developer analysis + architect approval
Framework (Architect Decision):
- Entire layers (persistence, IoC)
- Highly invasive
- Architect decides entirely
Business Justifications
Ask for business value to increase awareness and enable better decisions.
Leveraging Checklists
Inspired by Atul Gawande’s “The Checklist Manifesto” (2009)
When to Use: Processes without set order | Frequently skipped steps | Common error-prone tasks |
Guidelines: Keep small | Automate what you can | Don’t overdo it |
Useful Checklists:
- Developer code completion (“definition of done”)
- Unit & functional testing (edge cases, unusual scenarios)
- Software release (build/deployment steps)
Getting Buy-In: Explain reasoning | Collaborative creation (ownership) |
Hawthorne Effect (observational psychology concept): Perception of monitoring encourages compliance - people perform better when they know they’re being observed or measured
Negotiation Skills
With Business Stakeholders
- Pay attention to buzzwords/jargon (contain clues)
- Gather information before negotiating
- State things in qualified cost and time
- Divide and conquer to qualify demands
With Other Architects
- Demonstration defeats discussion
- Avoid being overly argumentative or personal
- Calm leadership + clear reasoning wins
With Developers
- Provide justification (not dictates)
- Have them arrive at the solution themselves
Integrating with Development Teams
Control Your Calendar
Meetings Imposed on You:
- Ask why you’re needed
- Attend only for relevant topics
- Could meeting notes suffice?
Meetings You Impose:
- Keep to absolute minimum
- Set and stick to agenda
- Schedule at day edges (morning, after lunch, late)
Physical Presence
On-site: Sit with the team | Walk around, be visible | Block time for conversations, questions, coaching |
Remote: Use video calls effectively | Establish regular check-ins | Maintain open communication |
Respect Developer Flow State
Flow = 100% brain engagement where hours feel like minutes. Don’t disrupt flow. Pay attention to team productivity patterns.
Quick Reference
ADR Template
# [Number]. [Title]
**Status**: [Proposed/Accepted/Superseded]
**Context**: [Situation forcing this decision]
**Decision**: [We will...]
**Consequences**:
- Pros: [Benefits]
- Cons: [Trade-offs]
**Compliance**: [How measured]
Leadership Checklist
- Appropriate constraints (not too many/few)
- Regular collaboration with teams
- Clear business justifications for decisions
- ADRs for significant decisions
- Respect team flow and productivity
- Right-sized meetings (agenda, timing)
- Lead by example, not authority
Team Health Indicators
Good Signs: Parallel work | Clear ownership | Open communication | Productive flow time |
Warning Signs: Merge conflicts | Unclear responsibilities | Silent disagreement | Blocked progress |
The 4 Cs of Architecture Leadership
- Communication: Clear, effective information sharing
- Collaboration: Working together toward goals
- Clear: Unambiguous direction and decisions
- Concise: Direct, to-the-point guidance
Found this guide helpful? Share it with your team:
Share on LinkedIn