Stripe is the company I usually hold up as the exemplar of polished internal tools. Hopefully this is taken the right way and I don't want to be negative towards the teams working on this, but I see a distinct lack of polish in these tools and presentations. Some examples:

- Unnecessary AI copy throughout the interfaces like "Browse, discover, and manage skils for your agents", "No favorites yet — hover a card and click the star to pin it here", "One execution environment, shared across agents". These instantly read as AI copy and decrease my enthusiasm.

- Inconsistent, AI-sloppy look-and-feel with different typefaces spattered across the interface.

- The session metrics slide looks busy and AI-generated. It repeats 360,014 sessions in one of the cells at the top, but also has a "360K sessions" in the heading.

I don't know if I'm the only one that notices this stuff, or whether others see it too.

I think there’s been somewhat of a mask-off moment post-AI in which we’ve realized that a lot of the careful and considered output we’ve come to expect of some companies wasn’t out of a respect for the craft or desire to produce “good work”.

Pre-AI the attitude was: if we are going to do something, it is going to use up our precious resources, so we should do it well, because our staff are capable and the marginal cost of doing it well vs. doing it at all is negligible.

Post-AI: we can churn out things quickly, we don’t have to worry about resource allocation, churn churn churn!

Ultimately, it is pragmatic for businesses to behave this way, but it is a shame for those who love the craft. I think we took for granted the beautiful ornate hand carved furniture era of software engineering. We are now in the ikea era.

>> Ultimately, it is pragmatic for businesses to behave this way,

This is how I realized we truly are in an AI arms race. Literally every app or website or tool I use now forcibly pushes their "AI features" or "AI assistant" on you instead of just letting you use their products the way it makes sense for you. Stripe just confirmed what OP was saying. Poorly built, poorly thought out software is now the norm not the exception any more.

If you don't win at AI, you will die.

That is the reality for most (software) businesses.

Counterpoint, maybe you don’t die? When I step outside the bubble, I hear many of the same concerns people have always had: they just want the thing to work.

We are now in the ikea era

If Ikea furniture were lopsided, ugly, not-quite-properly functional and traded their minimalist design for a Frankenstein hodgepodge of redundant parts.

I'm thinking more of the design language and lack of modular functionality part here. Ikea stuff is perfectly fine and minimalist, but the FORSBOGG shelf and the GLOMBOR lamp never seem to be built with any kind of underlying design language in mind and may or may not go together. The BLOKKE box sticks out when you put it in the FORSBOGG. Yes there are notable exceptions (KALLAX inserts, etc.)

This is the same problem I see with these Stripe tools. This may not actually be a problem for real users at Stripe.

> Ultimately, it is pragmatic for businesses to behave this way, but it is a shame for those who love the craft. I think we took for granted the beautiful ornate hand carved furniture era of software engineering. We are now in the ikea era.

I feel this so much. I thought AI would make it easier to get lots of hand-carved ornate furniture; but right now what we are getting looks like the typical Ikea product line -- a bunch of mismatched pieces by a host of different designers with no common underlying design theme or continuity (I'm talking specifically about the looks and design, not the materials).

If your output is based on best next result, it will tend toward the mode, not even the median.

I have to assume the most common [insert thing] is going to be bad, because more people are amateurs at [insert thing] than are experts. Right?

I have never expected excellence from chatbot generated anything. I have always expected just good enough.

I don't think the beautiful ornate hand carved furniture era of software engineering has existed for many decades now.

What's happening right now is more like, we're moving from a hyper-optimized era of just-in-time manufacturing (in software, this is called "Agile", "scrum", "sprints", etc.) to getting our manufacturing outsourced to another country. In software, the "other country" is AI.

love this idea. the question then is: who has made the Toyota 22R-E of software?

My Toyota is a pre office 365 Microsoft Excel

Have any companies mastered high craft at scale (like 1000s of engineers)?

In the classic "the mythical man month", Brooks describes 5000 man years effort in delivering OS/360.

I think by any measure that OS/360 would be "high craft".

Consistently, at scale, and in a durable way: I doubt it. However, I have seen many localized cases of extreme excellence in the places where the company knows it really matters.

Yeah. Small groups within it can definitely maintain it

Apple’s hardware side seems pretty great at it. Software maybe less so.

I am really interested in this topic, but man I had to give up reading the document because there were too many paragraphs that contained lots of words but no additional detail that I could actually use. It could be AI-generated or human-generated with too many buzzwords. Doesn't really matter, still gave up.

It's not just you. Let's take a small paragraph and break it down.

> Surface-agnostic APIs: Kai ships with an opinionated web application and a Slack integration, but the main primitive is the underlying API that powers them both. The agent is a service, not an application, and surfaces are simply customized views into it.

I...kinda get that they built an API that the agent polls. And then Slack or the webapp both invoke the agent? If so, the above paragraph is obscuring the point. Also, why isn't there a diagram showing it? There is a diagram below showing "Execution Environment" below, but that one doesn't show the API. And Kai and "Stripe Product Agents" are parallel paths on it. Does it not call out to this API anywhere?

I doubt if most people these days actually try to understand any of this, or just go "Agents? Cool! Here's some product that's vaguely similar that I like or have worked on!".

Hi, I'm Drew, Stripe's new engineering blog editor. Thanks for sharing your experience! I didn't edit this one, but this is helpful for future posts.

It sure feels like companies have lost their way now. It's no longer about high polish and quality, and all about volume of features. I don't think users want to be overwhelmed with features, they want things that work nicely, and consistently.

Working in b2b SaaS, there’s a real gravity toward checkbox-driven development. Any time we lose a deal because a competitor had feature A, the immediate response is “we need to build feature A.”

And from a sales perspective, that’s probably not wrong.

I think a new (or newly critical) engineering challenge is how to build in a way that keeps a codebase that’s churning out features from crumbling under the weight.

> from a sales perspective, that’s probably not wrong.

Possibly not wrong. One scenario that happens over and over again is that we lose a deal because we didn't have feature A. So we build feature A, and we still don't win deals with it. One way this happens is when the competitor has a focus on one part of the market, and we have a focus on another.

Example: We go after SMB, the competitor owns "The Enterprise." Just building A will never break us into the Enterprise part of the market. We have to build an entire strategy around seizing part of the Enterprise market from our competitor. That strategy may or may not include A, but it is definitely more involved than "Build A and customers will come."

if we aren't going to build an entire strategy around "The Enterprise," not only can building A fail to win the business, it may cost us some of our existing SMB business. Every feature our core market doesn't want or need is additional complexity and feature surface area for our customers to absorb. They stop thinking of our product as "tailored for their needs" as it begins to bloat with features they don't need.

And worst of all, the investment in feature A means some other feature—B—that our existing customers have asked for gets punted down-calendar because we're suddenly tearing up our road map and building A because the VP Sales threw a temper tantrum about being unable to close deals without A. This is another way that chasing feature A means sacrificing value for our existing customers who are asking for feature B.

>> I don't think users want to be overwhelmed with features, they want things that work nicely, and consistently.

In the case of Stripe, users want one thing, which is to receive correct answers to their questions nearly instantly. And from the sounds of it, that is indeed the case.

That's funny, because I recall in 2015 hitting their endpoint for a large-ish customer, and if you added a boolean to get the total result count, it would 500 every time, presumably because it was doing some kind of "SELECT count(1)" over a postgres table. IIRC, Stripe was ruby internally for a long time, no?

Also their documentation was frequently just straight up incorrect (as in the described json schema for a response was violated. keys missing, different field names, etc.).

But it's been over 10 years, has it improved since then? I'm still in my impression of their stack from back then, although they were decently mature by then as well.

I recently had to implement a stripe payment system for a client (having never used it before) and found their documentation to be accurate and excellent (at least for the Java SDK and relatively basic use case).

No love for Stripe but IMO their documentation feels like a first-class product.

I think the specific cases where it failed was when the customer was one of their earlier ones. My guess is that some data schema migration happened, and older data was being served which didn't quite match. So perhaps recency wouldn't potentially even surface those problems either.

> Stripe is the company I usually hold up as the exemplar of polished internal tools.

unless you work there how would you know this?

I worked there. All the internal tools are amazingly polished. I’ve never seen anything like it.

As someone who has worked there as well, this is just funny to me.

Stripe has already existed for a while, and has gone through ups and downs. There was a period where customer experience was first, and the systems inside were built fast and in rather cavalier ways (See Greg Brockman famously telling everyone in a MongoDB convention about using Mongo's oplog as a queue). There were times where internal tools teams could spend all the time they needed to get about as much shine internally as the external facing websites were. Huge investments in everything. But there's just so much churn, as some staff burns out, and others realize that they have so much vested stock that continuing in such a high intensity environment is pointless, that whatever Stripe might have been during your tenure might be very different from other people's, and you can both be right.

I worked at stripe too. Sail design system at time was exemplary. A ton of effort got invested in little details. They spent an insane effort in making ruby fast with their own jit, formatter and type checker they built.

Post AI, I think the bar hasn’t been the same.

They have published a bunch of stuff about their internal tools in the past. Look up https://stripe.com/blog/stripe-home and compare it to this, as an example.

It's always possible that in reality they were always a bit less polished behind the scenes though.

It's possibly a cost benefit thing. Moving quickly with AI leaves blood splatter, but if you get enough in return you decide it's worth it anyway.

Its always more likely the company pushing the PR is less polished than they present themselves.

Maybe they have jobs to do so they offloaded a lot of the presentation work to AI, assuming reasonable people would not judge based on surface level copy style.

The issue is not that that the presentation work has been offloaded to AI. It's that the result is sloppy.

People are always going to judge based on what seems "surface-level". Stuff like legibility also matters just for data comprehension, the AI tic of constantly repeating key numbers all over a presentation or webpage actively hurts legibility.

A company that handles money should absolutely not be cavalier about the details, especially in the parts of the business that are public facing.