Scaling out architectural decision making
@patkua O’Reilly Software Architecture Conference Berlin (November 2019)Scaling out architectural decision making OReilly Software - - PowerPoint PPT Presentation
Scaling out architectural decision making OReilly Software - - PowerPoint PPT Presentation
@patkua Scaling out architectural decision making OReilly Software Architecture Conference Berlin (November 2019) The first bank youll love @patkua Banking, this beautiful @patkua Chief Scientist, former CTO #leader #coach
The first bank you’ll love
@patkuaBanking, this beautiful
@patkuaWe’re hiring in Barcelona, Berlin, & Vienna & NYC! https:/ /n26.com/jobs/ Chief Scientist, former CTO
@patkuaChief Scientist, former CTO
@patkuaCourse: Tech Lead Skills for Developers
http:/ /thekua.io/tech-lead-course @patkuaLevel Up
A curated newsletter for leaders in tech http://levelup.thekua.com
@patkuaWhat did we learn? What did we do? Why scale decision making?
@patkuaWhy scale decision making?
Our context: Hypergrowth
Berlin Barcelona New York
Hypergrowth feels like you’re building the rocket as its flying
“
Decisions
Decisions
Design Architecture
Easier to change Harder to changeDecisions
Easier to change Harder to change BE <-> FE error standard Sync versus Async Standard “across” services Code layout within a service Method/function design LibraryDecisions
Decision Quality Buy-in Time
Decisions
Fast AND good
Decisions
How we used to make decisions…
Pain Points
Meetings Information Locations VisibilityWhat did we do? Why scale decision making?
@patkuaPractices
@patkuaequest
- r
- mments
R F C
Introduced Organic adoption Confusion
Refactoring
RFCsRefactoring
Refactoring
RFCs?
RFCs83
RFCsPractices
@patkuaWorking Groups
Design by Commituee
NO
Informed Consulted Speed
Working GroupsExample: Error Handling
Example: Error Handling
iOS Android Web Internal Service A Service B Service C Service DExample: Error Handling
JSON? Structure What details? Already translated?
Example: Error Handling
Result: Adoption of RFC7807
- Problem details object (type, status, detail, userMessage, instance)
- Content-Type = application/problem+json
- Only used for 400 and 500 responses
- Use of 207 (batch request/response)
Practices
@patkuaArchitecture Guild
What?
- Representatives across the entire tech
- Entire company wide cross cutting topics
- Decision making authority
Who?
iOS Android Web Security Data Internal Tools SRE BE Segment Location (BCN, NYC) QE Staff Engineers
Example: Updating Tech Radar
Architecture GuildExample: Security Scanning in CD Pipe
Architecture GuildWhat did we learn? What did we do? Why scale decision making?
@patkuaLearnings
Pain Points
Meetings Information Locations VisibilityLearnings
Learnings
Listen Observe Refactor
Learnings
Listen Observe RefactorIterate
Questions? @patkua