Could the recent concession on interchange actually be a boon the card networks?

2w •

There’s a way of thinking about the job that interchange fees actually are. The bulk of interchange fees flow back to cardholders in the form of rewards (particularly points or cashback on purchases) as well as general card features and benefits. In practical terms, cards function as a way for consumers to collectivize and demand certain discounts from sellers, proportionate to the spending power they represent.

On the merchant side, accepting cards has always helped to benefit top-line due to consumers higher propensity to spend on card as well as other benefits of convenience, operational efficiency and trust etc. But of course there’s a limit to how much those acceptance benefits weigh against the cost of swipe fees. All else being equal, any rational business would prefer to take less of a merchant discount rate if they could. This merchant calculus varies significantly across segments. But universally, acceptance volume is sensitive to payment costs.

For their part, the networks have long been stuck in sort of prisoner’s dilemma. Networks depend on not letting average interchange drift too high. But when effective rates get too high, card acceptance wanes, merchants push back, competing rails or close-loop schemes emerge, or regulators step in. And so the card networks struggle with trying to keep their merchant constituents happy enough while also keeping their share of issuance. Issuers are constantly playing Visa and MasterCard off each other for higher rates, or looser rules on qualifying various portfolios for premium rates. The issuers have to constantly push on interchange fees to compete against each other on rewards offers – even to the existential risk of the industry’s whole golden goose.

And that’s why this week’s settlement news (btwn MC, Visa and US merchants) is a potentially big win for the US card industry. If you haven’t already, read the whole details below. The merchants get a win, it’s not huge, but a 4-7bps savings in fees, locked in over several years is something. At the same time, those cuts should not materially impact rewards programs so consumers still win. For the networks and the banks though, a negotiated cap on rates helps break the prisoners dilemma of upward pressure on interchange. They can’t say it out loud, but many a network exec are probably breathing a sigh of relief that rates are correcting (slightly) downwards.

Lastly, the settlement potentially takes some of the heat off of Durbin2.0 and the likely industry carnage if the CCA act passed. In the meantime though, networks and issuers are just going to have to rely on actual innovation and delivering new value to compete instead of just on rates.

Posted in Uncategorized | Tagged , , , , | Leave a comment

Dieter Rams’ 10 principles of SaaS API design

For those of you who’ve spent time at design school, or even just walked past the halls of one, you’ve probably heard of Dieter Ram’s 10 principles of industrial design. For anyone who’s spent the odd decade or two building online and SaaS products, you’ve undoubtedly mediated a good many engineering debates on software design best practices. Engineers too, have their own lexicon of deep lexicon and idiomatic principles of software design.

Product leaders, you sometimes can’t help making a few cross-disciplinary conceptual connections. I’m not sure if old Dieter (who’s still kicking btw) has ever spec’d out, say, a payments API, but if he had…

Dieter Rams’ Design Principles
Core Principles Good API design
Good Design Makes a Product Useful – A good product must have utility and always balance form with function.

Before all other considerations, firstly your API has to do something useful. I like to say, an API is just a messenger. Don’t shoot the messenger if the real problem you have is that you haven’t yet built some useful services the world needs to be served over an API. Then to make that service useful, the API needs to offer the right granularity, call sequencing and inputs/outputs that at least minimally enables the solutions your customer will want to build.

If you’re having difficulty getting customers to integrate your API (or any new product), usefulness is the  assumption you really need to validate first – before assuming any other aesthetic re-working will solve your problems.

Good Design Is Innovative
The possibilities for innovation are not, by any means, exhausted. Technological development is always offering new opportunities for innovative design.
Innovative design always develops in tandem with innovative technology, and design can never be an end in itself


Great SaaS APIs unlock your customer’s ability to innovate, by being really good at one thing, so they don’t have to be. Innovation is cumulative, and engineering advances through useful layers of abstraction. Every good API a little giant for others to stand upon. Innovation also means differentiation, and avoiding commoditization. If there are many others already like it, what new value are you creating?

Conversely, good APIs are not led by Resume-Driven-Development. Be careful of the occasional impulse to leap upon new fashionable platform/language/frameworks etc as and end in itself.

Good Design Is Aesthetic – The aesthetic quality of a product is integral to its usefulness because products are used every day and have an effect on people and their well-being..

An aesthetic API picks a clear, readable, self-documenting style and is consistent. An elegant software design avoids ugly quirks or hacks to be effective.

A good API will steer (and not arbitrarily restrict) API users from making good design choices in their implementations. Aesthetic, UX tested reference apps or implementations can go a long way to set a bar or exceptions and help implementers make good choices. All of which will ultimately best improve changes success with end users and adoption.

If all else fails, just make sure your developer-docs site has a cool chill-wave vibe and renders well when viewed in ‘dark mode’.

Good Design Makes a Product Understandable – Good design leverages affordances, it can make the product clearly express its function by making use of the user’s intuition.

Good APIs are well documented. Starting with having accessible (preferably public) documentation. And that the API’s behavior actually matches what’s in the documentation and the examples (Sounds obvious, but surprisingly hard in practice to maintain). Good APIs themselves should be self describing as reasonably possible. Sure, ‘naming things’ is known as one of the Hard Problems in computer science. Nonetheless, endpoints, methods, parameters, and returned results should strive to use intuitive names that convey their purpose and functionality.

Following familiar conventions (like standard REST and JSON) makes APIS understandable and reduces the learning burden on developers. Consistency is Key across your API products, rather than forcing developers to relearn different idiomatic patterns arbitrarily. Next best practices are having language-specific examples, ‘recipes’ for different solutions, SDKs if applicable, mock/sample apps to demo and test capabilities.

Good Design Is Unobtrusive – Neutral, allows user expression.

One of the main reasons we build APIs as abstraction layers to our backends is to give flexibility to the front end implementation. A non-leaky abstraction is unobtrusive. A good API doesn’t force awkward or unnecessarily restrictive design choices for the front end. Good APIs can be opinionated about proper useage,  Minimizing  foot-guns and generally making it harder to use the API poorly. The art though is an inevitable tension between designing an API that is broad enough to support many use cases but exposes excessive complexity, data and surface area than is strictly needed for any one use case. Vs trying and failing to create a perfectly scoped API that becomes too narrow or restrictive to  support some important but newly discovered use case.

What I love best, is to design a clean set of versatile primitives. Each service simple on their own, but composable and flexible to serve diverse customer segments, usecases and solution types.

Good Design Is Honest – Truthful about product capability.

The Principle of Least Surprise Software should behave in a way that is least surprising or astonishing to its users. In terms of capabilities and performance, this means that a system should accurately represent what it can and cannot do, and how well it performs. 

Be up front about Beta vs GA readiness of your service.  You’d be surprised how much less concerned your customers are about absolute levels of uptime, performance, bugs vs what they experience relative to the initial expectations you set.

Good Design Is Long-Lasting – Avoids being outdated quickly. It avoids being fashionable and therefore never appears antiquated.

Extensible and Maintainable – Designing and launching some new feature is like the exciting ‘kitten’ phase of software ownership. But remember, the real cost is that, that you could now be on the hook for feeding and changing the litter box on this once-cute feature for years more to come.  Software must always be maintained, patched and supported. And you need to build with that in mind. Similar to durability, Throw-away work and tech debt happen, but try to be intentional vs accidental about it. You often end up living with those choices longer that originally imagined.

Don’t break your Customers – Allow your customers’ investments in your service to be as durable as reasonably possible. Good APIs should be extensible without breaking or requiring onerous re-integration and re-testing by existing users. New features should be optional rather than required, and existing users should see forced version updates rarely as possible. (protip: But maybe also include some contractual sticks/carrots to keep your customers from forcing you to support legacy versions beyond all reason 🙂

Good Design Is Thorough – Care in every detail. Robustness Principle or Postel’s Law: “Be conservative in what you send, be liberal in what you accept”. This means an API or data system should strive to be as accepting as possible of the input data it receives (while still ensuring security), and follow standards strictly when sending data or communicating outward.

Errors and Exception Handling Matters: Sweat these details in the requirements. Your API should provide meaningful error messages that help developers understand what went wrong when a request fails. A lazy API spec focuses only the happy path, leaving  other paths as ambiguous or undefined.
Good Design Is Environmentally Friendly – Conserves resources, does not deliberately or incidentally externalize costs and harms.

Literally environmentally friendly – not wasteful in use of resources, including memory, CPU cycles, and bandwidth. Both benefiting infrastructure costs of scaling and direct environmental impact of energy use.

Mindful of the Compliance, Security, Privacy Environment –  For example, a mindful API doesn’t ask for, nor return any private data not strictly needed for the usecase, and adequately protects any private data that is.

The digital, social and economic environment – a responsible API designer would not single-mindedly help drive-up online clicks and engagement, but while also incidentally undermining western liberal democracies in the process.  

Good Design Is as Little Design as Possible – Purity & simplicity.

The ideal API asks for only what it needs, and returns only exactly what is needful

Similarly, a nice API is not overly chatty, requiring more round trips (each round trip adds more latency, more resources, more things to code and debug) than should be necessary.

Of course, easier said than done. Rare to get the above perfectly right on the first release of an API spec, nor is it even reasonable (or desirable) to necessarily predict all future use cases for your web service. Nonetheless, ‘as simple as possible, but no simpler’ is an important ideal. Versatility and flexibility are also valuable, but I always like to think of anything that drives complexity, as a budget to spend carefully and to continually re-evaluate.

Generally, the less complexity you need to effectively get a job done, also creates less surface area you’ll have later for bugs, exploits and maintainability. The less complexity debt you assume now, the faster you’ll be able to iterate and innovate on your product in the future


Posted in Product Management | Leave a comment

How AI will reshape product teams in 2024

  1. leaner teams – Generative AI is pretty great, at a lot of generalized PM tasks. Anything that’s boilerplate or commonly used across organizations: product requirement outlines, commonly used frameworks, agendas, role descriptions, typical project plans. PMs often struggle to find enough time to write content and copy, or internal or external audiences. GPT can absolutely help with first drafts of user documentation or help content. It can also help you spin up, more personalized copy, implementation guides or docs in greater breadth or depth than you could otherwise ever do unaided. GPT and others are about 80% great at the basic stuff. It’s also pretty helpful (like in the sense of Wikipedia or google searches in the old days) for quickly learning, at least superficially, a fair bit about nearly any well-established technical, business or industry topic. And, having to know/learn a little bit about everything, is half the job product management. Generating basic code can be handy too, esp if you are a little rusty as a PM. Code interpreter can help with generating SQL or Excel VBA scripts to pull or scrub data. Up to and including kicking the tires your own or 3rd party apis with simple prototyping without fully distracting the engineering team.

    Of course, LLMs are still (and I can’t stress this enough) terrible at creating ‘new’ knowledge. Generative won’t help you much with anything that was never in it’s training set. To be sure, Sam Altman’s stated goal is to create an AI that can truly invent new ideas and new knowledge. But don’t expect that to change in 2024. You still need humans to bring true insight, to separate the salient signals from the noise and to actually innovate. In theory though, today’s AI should be allowing you a little more time in your PM’s oft-harried days to actually do that.

2. New tooling – I love tools like and Gong that can do remarkable jobs of transcribing and annotating live internal or customer sales/service conversations, and then turning those into collaborative assets for actionable insights and roadmap ideas. New design tools like make it possible to import screenshots to figma. A couple weeks ago, I need a way to better visualize and idea for a client. So I navigated to an archetypal customer website and screen-shotted their checkout flow into an AI-generated figma. And in the space of one cross-country flight, mocked up multiple ways my client’s embedded fintech product could transform that category of checkout experiences.

If you are looking for more, Product school also maintains a moderately updated list AI-driven PM tools.

3. Mix Shift to Hard skills – Now lets talk about building AI, not just using AI. For organizations investing in proprietary AI tech, I am seeing engineering and data science leads driving the roadmap and product strategy. Somewhat less, for now, is the primacy of the UI/experience focused PM. It used to be, the riskiest assumption in tech was, if we build it, will they come? With AI though, the riskier, more expensive feedback loop is going to be can we build it? From data sourcing to training, tuning, retrieval augmentation and scalable inference – good AI is not trivial to build. And even when you can get good results can you manage for safety, compliance, un-good edge cases? AI than some of the past waves of web and digital tech. More of your engineering backlog is going to be consumed by engineering challenges, technical features, as well as more platform engineering and  data science. We’re also likely to see more product teams led by engineering or technical leaders.

Can AI replace your product team 2024? Well hardly, but I’d hope it’s helping them work at least 10-20% smarter and more efficiently as well as helping them be stronger generalists.

Between  the above effects of efficiency and mix shifts I do see likely change for the size, process and composition of product orgs. You may see a higher working ratio of engineers and data science to traditional PM roles. Some PMs will start to feel a little un-tethered if their skill sets are less well matched now, or more of the roadmap is increasingly out of their hands. It’s a good time now to have those career conversations with your team. Change can be hard, but everything is learnable, and the future is perennially something we’ve barely started to invent yet.

Posted in Uncategorized | Leave a comment