Acquiring: Call It a Prototype
Why Open Source Payment Applications Is An Opportunity Hidden in Plain Sight
How do people develop an obsession?
In my case, it happens in Hemingway style. Gradually, then suddenly.
I built an open source payment application, acquiring, while preparing my talk on how to design one. The goal was to show it to fellow engineers and say "this is what I meant, but didn't have the time to show".
I published the package the day before presenting the talk. At that point, I was positive it would be the last thing I was going to do on that project.
But the truth is, I haven't stopped thinking, strategizing, and writing code for it ever since. I am obsessed with it.
I even missed last week's post!
I'm a bit shy to write down why I'm still working on an open source payment application project. It would have to compete against multi-billion dollar companies and hundreds of developers. So why bother?
Thing is, I know I can beat them. And I want to dedicate this post to explain why.
Welcome to Money In Transit, the newsletter bridging the gap between payments strategy and execution. I’m Alvaro Duran.
Recently, we’ve looked at
why scalability, not scale, is what matters in payment applications
the limitations of building money software on top of relational databases
They’re all free to read.
Want to be notified when there’s a new post? Hit that subscribe button below.
Every year, thousands of STEM undergraduates learn how to code using a tool called MATLAB. Back in the day, I was one of them.
I hated MATLAB.
Many others hate it, too:
In grad school I witnessed no fewer than three separate failed projects in one lab. The common denominator among all of them was that they wanted it to be done in MATLAB.
Meanwhile, the thing they all actually wanted already existed.
What disgusts me the most about MATLAB is that it is a licensed software. You have to pay to use it.
And look, if that was the only way I could do what MATLAB allows you to do, then I would be glad it existed. I don't mind paying for a superior product. Neither does anybody reasonable.
But MATLAB isn't the only way you could do scientific computation. In fact, MATLAB has shut itself from becoming a superior tool by requiring a license.
If you want to do state-of-the-art scientific simulations, you should use Python instead. Which is free.
Not because it's free as in "free beer". You should use Python rather than MATLAB because Python is free as in "you're free to do as you please with it".
Licensed software like MATLAB isolates its users from the rest. In science, that means isolating "mere mortal scientists" from the engineers who are actually good at building software.
It is a vicious cycle. Neither the professor teaching "Intro to CS", nor the Physics undergraduates attending know any better.
But you couldn't care less about MATLAB, can you? It's a tool for PhD students. Whatever happens to them has no consequences for professionals building real world companies.
Except...yes, it does.
Not MATLAB, of course. But the problems that it embodies are the very same problems that pervade building software that deals with money.
Payments software is licensed software. Closed, within the walls of private companies, away from the sight of non-certified eyes.
And everyone seems to believe that is how it must be.
William Gates III Says You Should Give Him More Money
Back in the 1970s, it was absurd to talk about open source software. All software was open. What was paid for was the hardware. How to use it was facilitated by a sliver of code that was as valuable as the user manual.
Those early days of software weren't going to last very long.
Bill Gates, back when he signed letters as William Gates III and Microsoft was still Micro-soft, put an end to this in 1976. He wrote an open letter to hobbyists compelling them to “pay up”. Hobbyists were stealing from him!
The amount of royalties we have received from sales to hobbyists makes the time spent on Altair BASIC worth less than $2 an hour.
Why is this? As the majority of hobbyists must be aware, most of you steal your software.
— Bill Gates, An Open Letter To Hobbyists
He had a point, though. As hardware was becoming more powerful, it was also becoming much harder to write software for. Gates's insight was that, at some point, even engineers were going to need a layer of complex software to use the computers they were buying.
Everyone was going to need an operating system. So he built one, and licensed it.
What made Bill Gates richer than Ray Kroc is that, unlike McDonald’s burgers, software doesn’t incur marginal costs. Any extra unit you sell, past the cost of creating it, costs you nothing.
The paradox of software is that it is both machine and manual. It gets assembled once, but copied endlessly. It gets written, but breaks unless it is carefully designed.
And most importantly, you can grab it for yourself and use it, without leaving its author worse off.
I Would Rather Have A World With Amazon Than One Without It
In 1994, Linus Torvalds, a university student from Finland, released an open source alternative to Windows called Linux. And that changed...nothing. No serious company was going to move away from Oracle or Microsoft.
Torvalds was a nobody, and professionals used certified software.
The dot com bubble explosion put an end to this way of thinking. Costs must be aggressively cut, and hobbyist's software was up for grabs.
Why did hobbyists gave that software for free? Because they were driven by the conviction that it is the right of the hardware's owner to have complete control over the software that runs it.
This was risky for professionals, of course. Only 6 years after Torvalds released Linux, Amazon was betting its existence on it. They just didn’t have a choice.
Open source software is what allowed Amazon to survive.
The Economics of Open Source
The cost of open source is the opportunity cost. The potential sale paid by someone who, instead, chooses to download the code, productize it and run it without you.
Here's what Bill Gates never understood about open source: that someone who doesn't pay would have never bought from you anyway.
Software is best when given for free to make your product more desirable.
Like Google releasing Android to make their search engine the default option in millions of smartphones. Or Facebook offering free Internet to become the default gateway to being online for millions. Even the AI is how cloud providers are enticing you into using more of their services.
No one buys the iPhone to use iOS; everyone puts up with iOS because that's how you can use an iPhone.
Interoperability Is the Wrong Goal to Aim
In payments, no one releases their software in the open. There's a widespread belief that, if you do that, then your competitors would jump at the opportunity to rip it off and put you out of business.
But here's the crazy thing: that won't happen. And the reason that won't happen is because your competitor thinks you're an idiot.
No, really. They wouldn't touch it with a ten-foot pole. They would rationalize it, saying things like "we run higher quality software than this". But deep down, we all know. It’s because, in their minds, your software was built by idiots.
That's why I am building an open source payment application. Because they, too, think I'm an idiot.
This is my opportunity: what financial institutions have tried, and keep trying, is not working.
For the last decade, we've had something called Open Banking. The idea that we can unlock innovation in payments by forcing banks to give authorized startups access to their customers' data through a common standard.
Ten years of this, billions of dollars spent, and what we have to show for is that now you can see your account on Bank A on the mobile app of Bank B.
Open Banking is failing because the goal is interoperability, and that is the wrong goal to aim. Because it never works.
And yet, professionals are drawn to it, like Gollum to the ring. To those attracted to intellectual purity, One Standard To Rule Them All is very compelling.
The interoperability route always leads to standard proliferation. Once you've decided that your goal is a common standard, the question is...which standard is best?
Interoperability is not the goal; collaboration is.
Interoperability gives you MATLAB licenses. Certified tools you are authorized to use, tools nobody can fire you for using.
Collaboration gives you open source. No certified tool will give you permission to look inside, to tinker, to be left to your own devices. To improve.
Openness means not to be forced to use a specific technology. And, to the extent that a company doesn’t let anyone else see, let anyone else change, let anyone else fix, engineers cannot do their job completely.
What engineers need isn’t stamps of approval, but a Build Your Own toolkit.
The payments industry is missing the DIY ethos, and you may contribute a verse. I’m calling it acquiring.
You can call it a prototype.