Share
Embed
Transcript
47 slides
-
Trade-offs all the way down Building Software in the Finance
Industry Aitor García Rey - @_aitor - aitor.is -
Trade-off: Restaurants/Bars ┌────────────────┬────────────────┐ │ │ │ │ │ │ │
│ │ │ │ │ Hospitality │ │ │ workers' life ├ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤ │ │ │ │ │ │ │ │ │ ╭───╮ │ │ │ │ X │ │ │ ╰───╯ │ └────────────────┴────────────────┘ Fitting my life style -
Trade-off: Mars Rovers ┌────────────────┬────────────────┐ │ ╭───╮ │ │ │ A
│ │ │ │ ╰───╯ │ │ │ │ │ │ Terrain │ │ │ Adaptability ├ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤ │ │ │ │ │ │ │ │ │ ╭───╮ │ │ │ │ D │ │ │ ╰───╯ │ └────────────────┴────────────────┘ Speed -
Trade-off: 1.5°C Paris Agreement Goal ┌────────────────┬────────────────┐ │ │ │ │
│ │ │ │ │ │ │ │ Resources │ │ │ Frugality ├ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤ │ │ │ │ │ │ │ │ │ ╭───╮ │ │ │ │ X │ │ │ ╰───╯ │ └────────────────┴────────────────┘ Convenience -
Spectrum: Reliability Your Average Massive Space Blog Custom Soft. E-comm
Utilities Mission │ │ │ │ │ □────┴────────┬──────┴────────┬─────────────┴───┬───────┴───────┬─┴───□ │ │ │ │ Average Average Bank Nuclear E-comm SaaS Plant -
Spectrum: Resource Availability Your Average Scale-up Multinational Blog Startup Startup
Corps. States │ │ │ │ │ □────┴────────┬──────┴────────┬──────────┴──────┬───────┴───────┬─┴───□ │ │ │ │ Starting Established Series Bank Trad Company Trad Company C/D -
Spectrum: Performance Your Average Trad Ultra Average API Video Blog
biz interaction specialized team Games │ │ │ │ │ □────┴────────┬──────┴────────┬──────────┴──────┬───────┴───────┬─┴───□ │ │ │ │ Bank Average Average Industrial franchise webapp Software interaction -
Our context - Devengo 1.0 • Started as a Salary
Advance solution to fight payday-loans. • First commit on Jul 21, 2019. • Rails API + Native apps (iOS & Android) + Custom integrations with HR/Payroll software. • Got smacked in the face by COVID-19 but experienced constant growth from 2021 onwards. • Spent 2 ½ years building the product...just to discover that it took us in the wrong direction. -
Our context - Devengo 2.0 • We reflected on how
we were doing all the heavy lifting of moving money • ...and deploying it (too early) in a very narrow niche. • Pivoted to Payments Provider on 2022 Q2. • Special focus on EU and Instant/Real-time A2A payments. -
╭─────────────╮ ╭─────────────╮ │ Originator │ │ Beneficiary │ ╰──────□──────╯ ╰──────△──────╯
│ │ │ │ ╭ ─ ─ ─▽─ ─ ─ ╮ ╭ ─ ─ ─ ─ ─ ─ ─ ╭ ─ ─ ─ ─ ─ ─ ╮ ╭ ─ ─ ─□─ ─ ─ ╮ 1. SCT Inst 2. SCT Inst │ 3. Relay 5. Funds │ Instruction │ │ Transaction │ Transaction │ │ available │ ─ ─ ─ □ ─ ─ ─ ─ ─△─ ─ ─ □ ─ ╯ ─ ─△─ ─ ─ ─□─ ─ ─ ─ △ ─ ─ ─ │ │ │ │ └───┐ │ │ │ │ │ │ │ ╭──────▽──────────╮ │ ╭──▽──────────□───╮ ╭──▽───────□──────╮ │ │ │ │ │ │ │ │ Originator PSP □──┘ │ CSM │ │ Beneficiary PSP ◁─┐ │ │ │ │ │ │ │ ╰───────△─────────╯ ╰────□───□───△────╯ ╰─────────□───────╯ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ╭ ─ ─ ─ ─ ─ ─ ─ ─▽─ ─ ─ ─ │ │ │ │ └──□ 4a. Communicates OK/KO │ │ │ │ │ ╰ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ │ │ │ │ │ ─ ─ ─ ─□─ ─ ─ ─ ─ │ │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╮ │ │ 6. Relay Result ◁───────────┘ └──────▷ 4b. ACK Communication □─┘ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ╯ -
Our context - Devengo 2.0 • Still an early-stage startup,
just 7 developers (including me) running everything. • But already moving a volume of hundreds of thousands of transfers per month for a value of dozens of million euros (even from old competitors). • We'll (finally!) get a PSP license by the Central Bank of Spain this summer. -
Devengo Engineering Principles We make trade-offs by applying our principles
to our current context. • Finesse • Managers Of One • Zen Pragmatism • Taking Care Of Business • Do The Right Thing • Trust, But Verify -
Devengo Engineering Principles • We materialized them in supporting practices.
• We paranoidly monitor associated red flags. • We provide self-evaluation topics. -
Finesse / Supporting practices • Continuous refinement of the Developer
Experience. • Failing gracefully on unexpected scenarios. • Continuous improvement of features. • Continuous learning. • Expansive testing. -
Finesse / Red flags • Quality defects reaching production. •
Small known bugs are present for too long. • Unexpected collaterals -
Finesse / Self-evaluation • Does this piece of work represent
my best shot at the problem? • Have I thought deeply about the consequences of this implementation? • How can I make this more robust without making it more complex? -
Zen Pragmatism / Supporting practices • Iterative implementation • Scope
reduction • Consensus built on definition stages • Proof of Concepts • Minimum Valuable Product • ADRs (Architectural Decision Records) -
Zen Pragmatism / Red flags • Projects agonizing for months
• Under-used, overly complex implementations • Premature optimization (of the business problem not performance) • Bike Shedding & Yak-shaving -
Zen Pragmatism / Self-evaluation • Is this the most cost-effective
way to solve our problems? • Am I building the solution of the core part of the problem first? • Is the chosen approach reversible and flexible? -
Do The Right Thing / Supporting practices • Thinking like
a customer • Cross-org transparency • Frequent interactions with support -
Do The Right Thing / Red flags • “Not my
problem” mentality • Customers feeling unheard. • Slow reaction times. -
Do The Right Thing / Self-evaluation • Are we doing
this just because it is easy? • Are we doing this just because “everybody does it”? • Is this the best thing for our customers? -
Managers Of One / Supporting practices • Proof of Concept
• Designs open to feedback • Developer-led initiatives • Praising dev success stories and heroes. -
Managers Of One / Red flags • Decision bottlenecks •
Impostor syndrome • Analysis paralysis -
Managers Of One / Self-evaluation • Do I have all
the information to act on this? • If not, do I know how to get it? • Do I feel confident to commit to this solution? -
Taking Care Of Business / Supporting practices • Shared, cross-org
language • Direct, frequent communication with OPS and customers • Everybody rotates to on-call • Prioritize boring technology • Provide tooling to other orgs inside Devengo • Buy vs Build evaluations -
Taking Care Of Business / Red flags • “Not invented
here” syndrome • Recurring bugs • Feeling stuck in a specific approach -
Taking Care Of Business / Self-evaluation • Is there a
no-coding solution to this problem? • Do I understand the point of view of the other parties? • Can I serve the mission in other ways? -
Trust, But Verify / Supporting practices • Exhaustive monitoring •
Automatic & manual checks • Feature flags • Soft-launching features/products • Expansive testing • Incident management -
Trust, But Verify / Red flags • “No deploys on
Friday” attitude. • Manual processes. • Siloed knowledge. -
Trust, But Verify / Self-evaluation • Do I feel confident
about this proposal? • Do I understand the ramifications of my work? • If this implementation fails, what is the worst-case scenario? -
Since death alone is certain, and the time of death
uncertain, what should I do? -
𝕏 @_aitor / aitor.is 𝕏 @devengoapi / devengo.com Thank you!
Share your feedback, love & insults! l.aitor.is/scpna