构建卓越文化 | David Singleton(Stripe CTO)
Building a culture of excellence | David Singleton (CTO of Stripe)
David Singleton: The way we think about product development at Stripe, it really is to find the correct set of early users to kind of co-create the product with. Maybe the best example of that is Stripe billing. When we got to starting the Stripe billing product, we realized that there were a number of our existing users, these were companies like Figma and Slack, were already using Stripe for payments, but had these subscriptions business models. And we figured that there were going to be many more of these kind of companies into the future. And we could see that they were really kind of pushing the boundaries of what was possible here.
So we decided to co-create the product with them. So we had shared Slack channels, we’d actually show them product on a very regular basis, get their feedback on it. And only when that original kind of Alpha group was super, super happy with the product did we then think it might be ready to go to a broader audience. So that is just how we build product at Stripe. And that means that every engineer building product at Stripe really has many of the kind of attributes and will exercise many of the attributes that’ll you often find in PMs in other companies.
Introducing the Guest
Lenny: Welcome to Lenny’s podcast where I interview world-class product leaders and growth experts to learn from their hard experiences building and growing today’s most successful product. Today my guest is David Singleton. David is chief technology officer at Stripe where he’s responsible for guiding its engineering and design teams, a role he’s had for over five years. Prior to Stripe, David was VP of engineering at Google where he spent over a decade. And in hearing from David, you’ll quickly be able to tell how passionate he is about the craft of building great products and building great teams. We dig into Stripe’s unique approach to hiring, how they built a very product oriented engineering team, which allowed them to hold off on hiring their first product manager for many, many years, how they operationalize their operating principle of be meticulous in your craft, including a number of fascinating internal processes like engineer occasions, walking the store and something called friction logging.
David also shares what it takes to run an engineering culture with the uptime and scale requirements of Stripe, plus how AI is already impacting how they work and lessons around leadership management and planning. I’m so thankful David carved out time to come on the podcast and I know that you’ll learn something valuable from it. With that, I bring you David Singleton after a short word from our sponsors.
David Singleton: Thanks for having me, Lenny. It’s great to be here.
Stripe Sessions Conference
Lenny: I know Stripes Sessions is coming around the corner in later next week and I imagine it’s a pretty hectic time for you. And so I just want to extra appreciate you making time for this in the middle of all that.
David Singleton: Thank you. Well, it’s a pleasure. It’s a lot of fun. Stripe Sessions is our annual user conference, so we get together a bunch of folks from businesses building on Stripe and it’s a great opportunity both to share what we’ve been up to over the last year, but also just learned a lot from them about what they would like to see us doing. And so I find it very energizing. It is of course a lot of work to put it together. In particular, I’m spending a bunch of time getting some demos together today, which I love building demos so, but it’s a real pleasure to join you today.
Stripe’s Talent Attraction
Lenny: So as I was preparing for this conversation, I kind of realized that the Stripe alumni are just killing it on this podcast, both in terms of the number of people that have come from Stripe and also just in terms of the quality and the popularity of some of the episodes. So folks like Claire Hughes Johnson, and Shreyas Doshi and Eeke. And my first question essentially, what is it that you all do that allows you to attract hire, close, keep people of that caliber? And I’m not going to accept just we keep a high bar or we just spend a lot of time on hiring. I’m curious just like what is it that you all do that other companies don’t do that’s maybe unique to the way Stripe finds and hires?
Core Philosophy and Mission
David Singleton: Well, yeah, I’d love to tell you more about how we find and hire people. I think it makes sense to kind of zoom out for a second because it’s material here. So think about what Stripe is doing. Our core thesis is that the internet economy is going to be much bigger and more important in the future than it is today. And that’s certainly played out over the last 10 years. And so we are really a business full of product minded builders who are seeking to make it easier for businesses to get started and to operate against that backdrop. And so we got started building a credit card payments API. Before Stripe came along, accepting credit card payments online was way too hard. You had to go talk to your bank, you had to maybe sign a contract with Visa, MasterCard. You then had to kind of string together all this very complicated infrastructure and it then put a bunch of kind of restrictions and requirements on the business.
And John and Patrick are our co-founders at a previous business and they tell this funny story actually, which is while they were building that company, they assumed, it was an internet company, they assumed the hardest thing was going to be putting together hardware in a data center. But it turned out because there were services like AWS around by then, that that was actually quite easy. However, when it came to accepting payments in that business, it was just as hard as they had expected building hardware to be. They had to actually deploy some physical hardware, they had to do a whole bunch of these partnerships and it was very difficult, especially as an upstart, folks that didn’t have any reputation yet to kind of be taken seriously and be able to correct into that. And so that’s kind of the inspiration behind Stripe. So we started out solving a really kind of important and profound problem for these businesses getting started and scaling and obviously taking a very developer-centric approach to that in the early days.
I think what’s exciting to know about and important to know about next is as we’ve scaled, we really kind of figure out what to do based on paying really close attention to our users. Those are the businesses building on Stripe. What are they getting out of the products as they are today and what are the problems adjacent to the ones that we’re already solving that they have to put a lot of their own energy into but really feel like they shouldn’t and they’d like us to help. And when we find that confluence of kind of need and then adjacency to what we’re already doing, that’s usually our invitation to go and build the next layer of our economic infrastructure. So we think about what we do today is building economic infrastructure for the internet and beyond.
So to bring this back to how do we attract the right talent and why does this matter? First of all, a lot of people, most people I think come to Stripe because they see that there is this great opportunity to help businesses at scale. So it really is about taking part in a mission that matters and are really motivated by that idea that we spend a lot of time with our users, the folks that actually need our help and are guided by them. And that mindset I think attracts a certain kind of person who wants to take a lot of agency, wants to understand the problems deeply and come up with their own ideas about how to solve for them. Because we’re building infrastructure, it’s also our approach that we really do think that we can do the best work kind of behind the scenes. We don’t have to be out having the splashy launch, but hopefully all of our users can and we are quietly working behind the scenes to make their businesses better and more effective over time.
And I think that attracts folks with a certain kind of mindset, which is the interest and kind of tenacity to dig into difficult problems that may not be obvious and obviously kind of attractive to everyone in the world then really plug away at them until we’ve made a tremendous amount of progress. And so it attracts folks that are long-term thinkers, that care about building and also actually want to work very collaboratively together. So when I think about what makes Stripe different to other companies, it really is this singularity of purpose. Our mission is increasing the GDP of the internet and building this financial infrastructure to do that and a tremendous amount of teamwork and collaboration to get that done. And so that attracts a certain kind of person. When we think about finding those people, we don’t hide any of that. You have to care about that in order to, I think be excited about working at Stripe.
And so we work very hard to make it very clearer as we’re bringing people in that that’s what this is about. And to that end, we’re often very patient when we’re hiring. So especially for critical roles, leadership hiring in particular, we’re happy to take our time and meet tens or hundreds of people. And then in particular, sometimes we’ll meet someone that we think is a really good fit for a given role, but they’re not available right now. And then we’ll be patient. We’ll keep building the personal relationship with them and oftentimes the moment in time comes when it makes sense for them to join. And in order to pull that off, it’s also the case that hiring at Stripe is a very personal activity. So look, there are lots of other companies where recruiting is kind of like this machine. And by the way, we have an awesome recruiting team, but folks across the rest of the company partner very closely with our recruiting team.
So it’s not like it’s a machine that delivers new hires, then you’re like, oh, well maybe this person is here and I can put them to use on that thing. Our managers spend a lot of time identifying exactly what they need for the various roles that we have and then getting to know the potential candidates, the people out there in the world that could do these jobs actually really go quite deep with them on why it might make sense for them to feel like number one, they can feel very personally fulfilled against that mission here. And then also why it represents a bigger opportunity for them than maybe anything else they can spend their time and attention on. And to that end, another thing that I think Stripe has definitely delivered for many, many people who join here is just, and I care about preserving this in the culture, is just tremendous learning opportunities.
Very, very many people at Stripe today are doing a quite different job to the one that they join for. In order to do that they’ve often had to learn a lot and stretch themselves into new areas. It’s also the case that when you think about that financial infrastructure we’re building, the space really rewards people who want to go and learn a ton of detail in how these systems that are not that popular or well understood in the broader world, how they actually work and assimilate just a lot of context. And then in particular, you can build better stuff. Right. You’re sharing that context with each other and helping other people learn. And so I think that all ladders up to this kind of group of folks that you mentioned. And all the folks you mentioned are wonderful Stripes or former Stripes that come together in service of our users.
Lenny: I always love to hear what people call their people internally. So Stripes. Good to know.
From Payment Pain to Stripe
David Singleton: That’s right.
Lenny: So just to summarize what you shared, which I was just writing as you were talking about the things that essentially help Stripe build this incredible team. A strong mission and a mission that draws people in that are incredible and people may be hearing that and be like, yeah, yo, sure. But in my experience, having invested in a bunch of companies and working with a lot of founders, there’s such a dichotomy between how hard it is for companies to hire when they don’t have a mission people really care about versus a mission that’s really meaningful. So there’s something so powerful there and so it’s 100%, I could see how that works so well. And then the other things you mentioned, patients, personal connections between the hiring manager and the people they’re hiring. And I see that on Twitter, a lot of PMs are just doing things, like basically it’s like they’re writing on a little startup on Twitter like Jeff Weinstein,
User-Centric Expansion Strategy
David Singleton: Yeah, so,
Lenny: Atlas.
How Mission Attracts the Right Talent
David Singleton: Jeff is the PM for our Atlas product, and he’s a great example of someone who cares a lot about learning exactly how the world works. So I mean for instance, one of the things that that team and Jeff really has driven this himself have done recently is recognizing that when you’re starting a new business in the US, one of the most frustrating steps is that you have to apply for this Employer Identification Number from the IRS. And it used to have an extremely long backlog and it’s really hard. You can’t start running your business until you have it.
And Jeff dug into the details, the team dug into the details and we’re just like kept asking, does it have to be this way? Does it have to be this way? And eventually we work with the IRS to make it possible for us to issue those numbers much, much more quickly, like instantly as you sign up. And I think that’s exactly a great example of how being curious, having this relentless passion to solve problems for users and then just keep plugging away at a problem delivers this great result and in a environment where you can learn a lot from each other.
Lenny: I hope he got a big promotion for getting the IRS to do something that he needed. That’s incredible. I’m going to ask, try to go one layer deeper on the hiring piece and then move on to a different topic, but,
Patience and Personalization in Hiring
David Singleton: Sure.
Learning Opportunities and Culture
Lenny: What is just the interview process like? I don’t know how involved you are with the product management hiring process, but just I’m curious what that is like, high level and engineering hiring process, however you can share.
Structured Interviews and Practical Assessment
David Singleton: Yeah, there are a couple things that are very common across hiring for all roles at Stripe and in particular engineers and PMs. One of the things is we do have structured hiring loops. So we put everyone through a very consistent process, so very personal as we help folks figure out why they might want to be here. But then we have a consistent way of evaluating talent. And I think that’s important because it means that you can, as an interviewer, as a hiring manager, you can actually really start to understand what is the broad spectrum of responses you might get here and what do I actually learn about individual candidates when I’m asking similar questions. The other thing that these loops have in common is nothing is a trick question. We try to put people into an environment which is as close to doing the actual work together as we possibly can.
So I mean for engineers for instance, we’ve got several different coding exercises that they do. They share their screen with the interviewer. It’s actually kind of pair programming welcome to use Google to search for Stack Overflow to search for answers. We don’t care. We just want to see the outcome. We’re happy for you to ask your interviewer questions as you go along. And we’ve created these exercises that is close to real problems as we need to solve at Stripe as possible. The same is true on the PM side. One of the things, for instance we do with PMs is we have a written exercise, we’ve got obviously a variety of different problems and we find that very valuable for actually just seeing how does someone attack a real problem that they would be solving at work and will they want to do that in a way that is curious, digging into the details, collaborative with their interviewer and so forth. So that’s the point. Structured loops that are consistent. And then questions that are as close to the real job as we possibly can.
Stripe’s Product-Engineer Culture
Lenny: And for the questions on the PM side, do you have them do it at home or do them do it in the office?
David Singleton: It’s a variety. Right now at Stripe, we’re very much in a hybrid mode, so a lot of our interviews are still happening over Zoom, although we have plenty of great activity going on in our offices as well. The written exercises tend to be something that you do in your own time. We suggest a time bind so it’s not an unreasonable demand in the rest of your life. And then the other exercises are with an interviewer on Zoom.
Striving for Craft Excellence
Lenny: Okay. So speaking of product managers at Stripe, Stripe is kind of famous slash infamous for waiting a long time to hire your first product manager. From what I understand, it was like around the 200th employee and maybe five years in, which to me tells me that you’re really good at building product minded engineers and or hiring and building a product minded engineering culture. How do you do that? How do you go about doing that? And then I’m also just curious what PMs ended up bringing to the table and how they kind of collaborate now.
David Singleton: Yeah, so I mean at Stripe today, we have lots of product managers, lots of engineers, product management’s an extremely valuable and important job family. I’ll talk more about what folks do today. It is true that our original team, and I think we hire our first PM a little bit earlier than you said, but our original team was really an engineering team. However, they were extremely product minded. And I would honestly say that of all of the very early team that I’ve worked closely with and know well over time, every single one of them could also have been and essentially also was acting as a PM. If you think about the nature of the first Stripe product, and again today we solve problems for businesses from the very small to the very large across a whole range of financial infrastructure. But the initial product was very developer focused and we still have a developer focused at the core of many things that we do.
The best PMs for developer focused products I think are usually very technical. They’re mostly former engineers themselves or maybe kind of current engineers still tinkering on the side, but bringing a lot of user insight and strategy to the problem. And every single early member of the team at Stripe had to act like that in order to work the way that we do and that we want to. So remember, again, that is to get to know our users very well and then bring those kind of personal insights into our product development loop. So I mean, in fact, the way we think about product development at Stripe, it really is to find the correct set of early users to kind of co-create the product with. So maybe the best example of that, or at least an example of that is Stripe billing. So it’s our solution for subscriptions and invoicing.
And when we got to starting the Stripe billing product, we realized that there were a number of our existing users. These were companies like Figma and Slack. We were already using Stripe for payments, but had these subscriptions, business models, and we figured that there were going to be many more of these kind of companies into the future, and we could see that they were really kind of pushing the boundaries of what was possible here. So we decided to co-create the product with them. The early team working on billing got a bunch of those companies included Slack and Figma, but a bunch more as well, got to know them. But the individuals who were operating those systems at those companies personally understood exactly what their challenges and hopes and dreams for the future were, and then brought them into a kind of shared product development loop.
So we had shared Slack channels, we’d actually show them product on a very regular basis, get their feedback on it. And only when that original kind of Alpha group was super, super happy with the product did we then think it might be ready to go to a broader audience. So that is just how we build product at Stripe. And that means that every engineer building product at Stripe really has many of the kind of attributes and will exercise many of the attributes that you’ll often find in PMs in other companies.
Now, that doesn’t mean that there isn’t a really important job for PMs to do here as well. So something else that I think is worth knowing about Stripe and is somewhat unique is building products is also a much more kind of team sport at Stripe across functions. So there are the obvious functions that most companies have, engineers, engineering managers, product managers, designers, and those folks all get involved throughout the entire lifecycle of product development at Stripe. But also, if you think about the nature of our products, it turns out that a lot of our products are about abstracting over what the financial system does at large.
So sometimes there’s a capability in a certain country and there’s a different one in another country, and we want to make it all work consistently. So our financial partnerships matter. So sometimes folks from our partnerships team are part of the kind of early development phase of a product. Similarly, when you think about product legal and many of the other functions around risk and compliance and so forth, we actually need their creative thinking in order to build the right stuff for our users. So the point is it’s a way more cross-functionally collaborative process than I’ve seen in a lot of other companies. And PMs play just this absolute linchpin role across a lot of that. So PMs are very frequently the ones that are providing the kind of look motion to bring all of that partnership together. They’re very frequently the folks that are synthesizing what we’re learning from our users.
Not everyone is talking to users across all those job families, but the PM is probably the person talking to folks the very most and probably the one who’s synthesizing the very best. They often and usually also bring a lot of the product strategy, okay, this is what we’re doing today, but what does it ladder up to and therefore how do we make the right choices to make sure that we’re taking the right longer term path. And so it’s a super important and valuable role. And I mean, you’ve mentioned a couple of great ones on the call here already, but I think that the PMs at Stripe embodying a lot of the culture I talked about in our operating principles just contributed a tremendous amount to what we get done.
The Friction Log
Lenny: Perfect segue to where I was going to go with the next question, which is, one of your operating principles is to be meticulous with your craft. And I know this is something that you focus on a lot. What I’m curious about is that sounds great. Everyone would love for that to be a focus of theirs and a core value in the way they operate. But there’s always this trade off of we just got to ship stuff. How do we wait until it’s perfect? So what I want to ask is just how do you operationalize this principle, first of all? And then I’m going to have a few follow up questions.
Optimizing Checkout and Increasing Revenue
David Singleton: Yeah, great question. Before I talk about this one operating principle, let me just set a little bit of context of,
Lenny: Yeah.
Polishing Websites and Product Pages
David Singleton: What are our operating principles at all. So at Stripe we have operating principles and they’re kind of like corporate values, but they’re not just values, they’re much less abstract than that. So actually, we were just talking about the early Stripe team. I think one of the best things that they did, I mean they did a bunch of great stuff, finding early product market fit, but one of the most foresighted things that they did was to kind of take a little detour and think about what is it about how we’ve been working so far that we think has made us successful and is going to be important as we continue to scale. And we capture those as a set of operating principles so…
Continue to scale and we capture those as a set of operating principles. So their behavior is distilled from the most effective Stripes and we really care about them. So we talk about our operating principles a lot internally. I’ll often see individual Stripes kind of celebrating each other’s work in terms of which operating principle is kind of best represented. We frame a lot of our feedback processes and so forth around them, although not exclusively. The very first operating principle we have by the way, is users first. So we’ve already on this call, touched a bunch on how we put our users at the center of understanding what we should be doing at all. And that idea that we’ve formed these deep personal relationships with our users to guide everything really comes from and is captured by that operating principle. We also have operating principles. They’re kind of segmented into how we work, who we are, and then a bunch that leaders must execute.
So I mean another example of one of how we work ones is move with urgency and focus. We really believe that even though we’re building infrastructure that will persist for decades, it is important that we solve the needs our users just have right now, relatively rapidly so that it actually makes sense, is delivering value for them. So anyway, there there’s a range of them. You asked about being meticulous in our craft. So this is another highway work principle and it is very important at Stripe and you also call it Lenny, a challenge of being meticulous, which is, well, there’s so much to get done. So where can I be meticulous? Because well, if you do it across everything, maybe a lot of progress would grind to a halt. Well first of all, let me tell a couple of stories.
So before I joined Stripe, I spent some time and it’s a big part of deciding to join, playing with the product. And something that really delighted me was that when I started integrating the product, there were parts of the experience where I was stuck. So I made a mistake with how it integrated API. I was getting an error message back, but I wasn’t stuck for very long because something that the team at Stripe had done was we made the error messages coming out of our API link to the piece of the docs that told you how to solve the problem.
Running a Friction Log
Lenny: Genius.
The Value of Stepping Back
David Singleton: And that is a really good example of being meticulous in the craft. So it’s pretty uncommon, it’s certainly very uncommon back then for companies to do this, like your error messages or your API, who’s ever going to look at them? Well, turns out developers while they’re building and if they’re running into problems, they will look at them. It’s actually a really high stakes moment because it’s a time that matters. So that is an example of where we’ve been meticulous in the product.
And the way that we kind of figure out where to be meticulous, where to really sweat the details and go above and beyond is again, we try to be as user first as we possibly can. So we have a process that is widely used across product teams that even like folks building stuff internally for Stripes to use, which we call friction logging. The way this works is you need to put yourself in a particular user’s shoes. It’s actually important to have a very clear idea of who is the person I am kind of modeling the friction for right now.
So for instance, I might be integrating the Stripe billing API and I might put myself in the shoes of an engineer at, I don’t know, let’s say Atlassian, which is one of the world’s largest SaaS platforms and using actively Stripe billing for automating all the revenue today, I might put myself in the mindset of that person. I might have met them recently and kind of understood a little bit better than otherwise doing this particular thing.
And then I will go through the process of actually using the product, starting off in the dashboard, hopping over to the particular page in the docs that I need to follow, starting to write code and so forth in order to do my integration and make really careful and meticulous notes of what the experience is. So stream of consciousness notes, but paying particular attention to the places where I ran into friction that I think that particular user mental modeling would find difficult. And then those are the places where we will tend to go and invest a tremendous amount in really thinking how could we solve this problem? And then putting a lot of attention into detail into making it right.
And by the way, the example I gave you on the error message is there’s actually more code in the jobs that serve the Stripe API to handle those edge cases than in the actual main flow. And I think that’s quite remarkable. Most people wouldn’t do that, but it turns out not only was it something I was impressed with, but when I talk to Stripe users, this is very frequently something they tell me and delights them about the product. It’s a reason that they can adopt it more quickly and it’s a reason that they keep adopting other Stripe products because they know that it’s going to be easier than doing anything else. So it really matters. So the point is like we are intentional about where the places where being particularly meticulous matters and then when we are, try to do it in quite a systematic way. It’s great business as well.
So for instance, we actually just earlier today put a blog post up that explains we’ve been tuning both what we call our payment element, which is our kind of morph kind of batteries included UI for putting payment integrations directly on your website. You can style it to fit with the rest of your page, but it has a lot of powerful features. And we also have a set of hosted services called Stripe Checkout. And the point here is we’ve gone and scarred a whole bunch of checkout flows on the internet over the course of many years and we look out for all of the little broken edges and we’ve been working hard on these products to tune those and then not, we don’t just stop there. We’ve also been really obsessing about what are the things that we can do in the flows that we’ve already built that will remove latency or remove a click or whatever.
And what we found, we’ve recently measured the difference between, so with a bunch of actual users who’ve migrated from a fairly vanilla integration where they built their own checkout flow to one of these surfaces to our payment element or to Stripe Checkout, it turns out that it increases the average user’s revenue by 10.5%. And that’s huge. So this is an industry where little changes that you might go about making or even big changes that you pour blood, sweat, and tears into will typically deliver uplifts in that you measure in basis points that’s hundreds of a percentage point and this set of small changes compounding over time ladders up to 10.5%, it’s huge. And the point is you only get there by knowing that this is a thing that might ultimately matter and being meticulous in every single step along the way and that it compounds to a dramatic impact in the end. So I think that that particular set of experiences is one where this operating principle has really mattered.
Thinking about those kind of flows is what led us to build Link, which is our product for making one click checkout available. And that has had a tremendous impact both on convenience for customers of our users and also on their conversion rate and so forth. So it really matters.
And then one final other area, if I may, I think Stripe is relatively well known for putting a lot of care and attention into our website, a lot of our marketing or product explanation pages. And I think for a business like ours, it’s not immediately obvious that it makes a tremendous amount of sense to be super meticulous in building those experiences. But we are, and again, I think it really matters for us and for our users. So the way that we got into this mode was we recognized that we are building a lot of infrastructure.
So we build what we call our global payments and treasury network. It is literally our product infrastructure for moving money into Stripe, holding balances on behalf of our users, moving money out, all of the automation between moving money between different businesses and all of the kind of regulatory stuff we have to handle, all handle in this big payment engine. But as a user, it’s very hard for you to come in and inspect that and say, well, is it good? I mean hopefully you can go and talk to a bunch of other Stripe users, but it’s very hard to know from the outside. So if we put a lot of care for detail and attention into the experiences that we use to explain the value and the power of that, it actually helps our users understand exactly how it is that we are trying to operate for them.
And that’s where all the meticulousness that we put into our site have come from. There are lots of features like we have a spinning globe on our page that shows you what payment methods you can use in different countries and we have this kind of big animated wave on our homepage. And in general, Stripe is kind of known for these great internet moments when we launched products. And so we did it because we wanted our users to be able to see the care and attention that we were taking. It’s turned like to have this wonderful kind of side benefit to some extent because those experiences tend to get shared a lot on Twitter and LinkedIn and elsewhere because they’re worth looking at just because they’re beautiful and they often push the web platform forward. And that then means that folks are likely, folks who themselves want to push internet business forward, are likely to know about Stripe and know about our capabilities.
So meticulousness plays out with impact in so many different ways at Stripe and I enjoy working that way in many different areas.
Lenny: I have a few follow up questions along those lines, but before we do that I want to double click on this friction logging process.
Friction Log Template
David Singleton: Sure.
Room for Teams to Improve UX
Lenny: Just understand how you actually do that. So maybe two questions there. Is this a regular task people have on their plate say or is executives or just PMs in general? And is there a template that you share just like you talked about who we are, what company are you working for, what problem are you trying to solve? How do you actually kind of tactically operationalize that?
David Singleton: Yeah, great question. So it’s a practice that is quite valuable generically. There are many places where you can apply friction logging in order to really shine a light on what is the most effective place to invest time and effort.
So we use the practice across lots of different functions and in lots of different ways at Stripe, but it is the case that almost every product team has someone, it’s often the PM, sometimes it’s the engineering manager who has a regular repeating loop of going through the end-to-end flow of the product and writing a friction log. For years and years, I have gone through the process of onboarding [inaudible 00:33:28] user to Stripe once a month, writing a friction log and then tagging in the right people across the company that might need to take action on some of the things that we’re observing.
And one of the reasons that that kind of process of taking a big step back is useful is at this stage we have many people, we have thousands of engineers who are working in parallel. And while everyone cares a lot about being meticulous, paying attention to detail, getting the details can have to end up with experiences that diverge and going through this process of looking at it all together on a regular rhythm with friction logging really helps us maintain a cohesive whole while we all operate in parallel. And so therefore senior leaders, executives, I guess of our larger areas will often do this as a practice themselves in order to make sure that everything that they’re responsible for is coming together well. So it happens kind of recursively at different layers.
To your question about is there a template, so relatively simple process. So yes, there is a template and in fact there’s a Stripe talk dev article that maybe we can put into the show notes that has the template, but it literally is say what you want to do, be very explicit about the user that you are trying to have a mental model for because that helps you make the right choices as you go through the flow. And then really just keep a very clear stream of consciousness log of what you’re finding as you build.
By the way, also really important, praise the stuff that’s good. So I’ll often send these docs around to a lot of folks inside of the company. It’s a great opportunity to recognize great work done. So if I ran into that error message that links to the documentation, that’s a great example where I’d be like, this is awesome. Nice work.
UX Review Practices
Lenny: Being a PM that has received emails from the CEOs of companies with all the problems they ran into and they’re trying to book, it’s often like, oh God, I have so many goals I got to hit and I have this timeline, I have these things I’m working on. What is the culture like slash how do you give teams space to do these things that are just like, we’re just going to make the experience better? How do you actually do that so that PMs aren’t stressed out when they get these things?
Value of Reviewing Products Together
David Singleton: It starts with our operating principles. So because we have operating principles of users first and being meticulous in our craft, we actually tend, all of our ways of building plans tend to be wired quite well around this idea that we’re going to reserve enough time to really make the experience good. Maybe the most pronounced version of that is not even the issues we identify in friction logs. Maybe in a bit we can talk about how we invest in reliability and so forth, but things go wrong.
And one of the things that’s very important to me is that we are a learning organization. We need to understand why they went wrong and then take action to stop the same thing going wrong in future. And so that means that we identify instant remediations, that’s what we call those and we prioritize those carefully and most of them, the ones that matter actually get prioritized before other work on the roadmap, which means that as a PM when you’re building your roadmap and your plans, you do have to think about, well approximately how much bandwidth do I need to reserve in this area in order to address and polish stuff that might come up through friction logging and also to take care of those kind of operational things as well?
It varies by team and varies by stage of product. So there is no Stripe kind of like we will reserve 50% of our time to do this stuff. That wouldn’t make any sense. But we do encourage and ask every team to think hard about how much should they be setting aside for those kind of activities. Does that make sense?
Lenny: Absolutely. I was going to ask you if there’s a percentage and basically you trust the teams to set aside the right amount of time.
Putting Values into Practice
David Singleton: That’s right.
How to Prepare for UX Reviews
Lenny: Awesome. Okay, so along the same lines, I actually asked Shreyas Doshi what I should ask you.
David Singleton: Oh cool.
Advice for Building Better Products
Lenny: You had no idea I was going to do this. And what he said is I should ask you how you did UX reviews pre shipping right after you joined Stripe and you just said you were very good at this. And so what is that like and how should people learn from your experience?
David Singleton: The way that I did UX reviews very early on in my time at Stripe and the way that every group at Stripe does these reviews is employing some of the techniques we talked about already. So that act of friction logging, it’s very often done asynchronously. So someone will sit down and reserve an afternoon and go through the product and make meticulous notes and that’s super useful.
We also find it very valuable to go through that process together. So we will bring together both the team that built the product that we’re looking at, but also a lot of their cross-functional partners. So things like the support folks that are going to be handling or are building the process to handle questions from users about it. Executives in the org that they’re a part of to do these walkthroughs where we’re taking exactly the same approach as I described with friction logging so imagining we’re a particular user and experiencing the product together. And then just discussing very openly actually the way that we do this today is we have a log of issues that we want to talk about that anyone can type into while the PM usually is walking us through the flow. And then we’ll get together at the end and actually talk about each issue and does this need to be addressed? What do we really think about it? So that that’s the approach both that I took early on and that we take in at general at scale today.
There’s a lot of benefit to doing this together. So someone once described this to me as if you were a chef, you’re going to taste the soup and you’re going to talk to your kitchen staff about what went into the soup when it was good and wasn’t so good. If you run a movie studio, you’re going to sit down and watch a lot of movies together. And so actually kind of looking at product together I find extremely energizing and also really valuable in actually teaching some of the kind of bar for craft and values around how we want the product to interoperate for our users at scale across the company.
And building on that, there’s something that we do occasionally and I’ve done occasionally a Stripe called Walk the Store where we’ll actually do that process of looking at the product together with the whole company. So we have a weekly meeting called Friday Fireside where you don’t have to attend, but the majority of the company does attend and we’ve done a few series where we’ll actually go through some really, really interesting critical product flows together and talk about how this is reflecting various priorities that we have and shifts that we’re trying to make, but in particular with the user experience and a particular user at the core. And that turns out to have a tremendous amount of benefit and value in helping just everyone have a shared language, we’re talking about things and get on the same page about everything.
So yeah, those are some of the techniques that Shreyas might have been thinking of.
Front-Line Immersion and Engineercation
Lenny: It’s amazing how many directions you all come at to create this high quality end product walking the store, friction logging these entire company meetings, looking at the product, UX reviews, this is how it’s possible to build something so high quality. It’s not just we have this value and we’re going to be building great stuff. It’s like you have to come at it from so many places.
Value of Friction Logs
David Singleton: Yeah, that’s an interesting observation. I think almost anything that you talk about is a value. I mean, being a value matters, but you need to have a practice behind that. That means that the value becomes real for everyone. So we very frequently find that for any product development team, so long as they identify the right metrics that actually represent the experience that they want to deliver for their users and then get together frequently like predictably to look at how the team is doing against those metrics. But then everything else just happens naturally because you understand what you’re trying to move and every little micro decision you’re making within your own time prioritization and then in terms of the actual work you’re doing will ladder up to that. And so why do I say that? It is like you have to have the predictable and regular thing that ladders up to the value you’re trying to deliver in order to make it happen.
Keeping Up with Tech Changes
Lenny: Coming back to the UX review, just a question there. Presenting to the CTOs often very stressful in a review like that. What advice would you give PMs and designers and just leads of a team for how to prepare for a meeting like that, whether it’s Stripe or anywhere?
David Singleton: I personally try to be as friendly and unscary as possible, but I know that no matter how much I do that, these can’t be high stakes meetings. At Stripe, and I think it’s probably goes for most companies, but at Stripe, the main answer here is put your user’s hat on and if you understand your user well and what they’re seeking to get out of the experience and anchor any questions you get asked or wobbles you may feel of like, oh, that was an out of the blue question back to well here’s, remember what we’re trying to do for our users, that usually makes any meeting like that go really well. And so that would be my main piece of advice.
So I mean a risk that exists in any company as you get to run a bigger team or whatever is that individual contributors, individuals will have a very small amount of time with you in general. So there’s always a risk that you might make a kind of fairly unimportant remark and it will be taken out of context to be something very important. So I personally also try very hard to anchor feedback I’m giving in what’s the user experience we’re trying to deliver? Does this actually matter? Recognizing that that is a risk and yeah, it definitely takes constant practice.
Making Unexpected Discoveries
Lenny: You’ve touched on a couple of these things, but just if someone’s trying to get better at building product, either a PM, designer, engineer, what kind of advice do you often give for helping people just build better product?
David Singleton: Almost always goes back to things we’ve already talked about here. So remember at the very top I talked about iterating very closely with users? If you have a mechanism to listen to users, get something in their hands quite quickly and then get their feedback on it to run it back through a feedback loop, you’re very unlikely to go wrong. Especially if you put a lot of thought into these being the right users whose needs you want to focus on because they ladder up to your strategy. It’s actually very hard to go wrong if you have that feedback loop working really well.
So if you don’t have that feedback loop, and actually it’s remarkable as I talk to folks across the industry and so forth, it’s remarkable how frequently that feedback loop doesn’t exist in product development cycles. So if you don’t have that, go figure out how to create it and if you do have it, but you can’t get something into user’s hands very rapidly from you having the idea that this might matter to getting their feedback on it, figure out how to make that go faster as well. And at Stripe, we focus a lot on all of our developer tooling and infrastructure on making it possible for changes to get delivered continuously to production so we can get them in front of users very rapidly and that’s really important.
Developer Productivity Investments
Lenny:
Braintrust charges a flat rate of only 10%, unlike agency fees of up to 70% so you can make your budget go four times further. Plus they’re the only network that takes 0% of what the talent makes so they’re able to attract and retain the world’s best tech talent. Take it from DoorDash, Airbnb, Plaid, and hundreds of other high growth startups that have shaved their hiring process for months to weeks at less than a quarter of the cost by hiring through Braintrust network of 20,000 high quality vetted candidates ready to work.
Whether you’re looking to fill in gaps, upskill your staff, or build a team for that dream project that finally got funded, contact Braintrust and you’ll get matched with three candidates in just 48 hours. Visit usebraintrusts.com/lenny or find them in my show notes for today’s episode. That’s usebraintrust.com/lenny for when you need talent yesterday.
Something that I’ve heard about you is that you get into the weeds, you get really deep as a CTO of a company at the scale of Stripe and I came across this term engineerications, which I think connects to this. Can you talk about that and how you think about just getting in the weeds?
Balancing Reliability and Continuous Change
David Singleton: First of all, in terms of how much getting in the weeds matters. At Stripe, we find that it’s very important for engineering managers in particular, but really all managers to really have a very detailed understanding of whether their teams are kind of on the right track and where they’re getting stuck in order to make sure that we make the most progress in unit time for our.
We’re getting stuck in order to make sure that we make the most progress in unit time for our users. So we find that, again, the nature of the problems we’re solving, really reward domain expertise, like assimilating a deep understanding. And we ask all of our managers to be kind of the editors in chief of their teams plans. And I think the only way to do that is to get the right loop for yourself to understand what is actually going on the ground. Now, it would be really damaging if I was only doing work at the IC engineering level every day. That doesn’t ladder up to someone who’s able to help guide the team or whatever. So it’s important to just judiciously but done on the right cadence. I think it’s very, very valuable. So engineer occasion is something that I personally do. So it’s obviously a port man of engineer and vacation, but it’s not a vacation.
The way we get to the name of the tower, at least the way I think about it is what you do on engineer occasion is I’ll clear, other people track do this as well. I’ll clear several days in a road, three or four days actually join a team, pick up a small task, hopefully a small feature that we can get all the way from start to finish in production and do that going through the exact experience the team has. So you get to understand the developer tools, the build infrastructure, how you get stuff reviewed, how good is the documentation, how long did I have to wait in order to actually see my thing live in order to start that feedback loop that I talked about with users. So you’re actually going and joining a team and doing some work.
While one does that, it’s really valuable and important to keep a friction log because then what you want to do is write up the experience both as an aid memoir for yourself because it then helps you go and for all of the next year’s worth of conversations I might be involved in around making trade offs and helping set priorities, that context really helps. So I actually reread these reports periodically and it’s also really valuable to actually share them work with the team, which then demonstrates, well I understand what it’s actually like and here’s how we’re going to make sure that we’re carrying that information through prioritization. So that’s what you do. The name is, it’s the often the hardest thing about these is finding the time to clear your calendar for that many days. So the reason I think about it is a vacation is of course people go on vacation.
By the way, I work very hard to use all my vacation days every year. I think that taking a break and recharging your creative juices is valuable. So the point is when you’re on vacation, the world goes on and it’s all fine. So I treat it like I’ll decline every meeting in order to clear my schedule and have a maker schedule in order to do that. And so I’ve done this many times at Stripe. I advise engineering managers at Stripe that they should do an engineer occasion sometime in their first quarter to six months at the company. It gives you a tremendous amount of context for what your teams are actually experiencing and then for folks who do it once a year on an ongoing basis and it provides a tremendous amount of context.
Lenny: That is insane. I’ve never heard of that process. How do you stay knowledgeable and up to date on the infrastructure and the code that you have to code and all of a sudden things move so fast?
Development Process and Automated Testing
David Singleton: The process is literally to help you do that. I guess maybe something I left out in explaining it is we’ll often identify a buddy on the team who’s going to help you through. So for what it’s worth at Stripe, we write a lot of code in Ruby, we write a lot of code in other just Java type script as well. But our kind of core infrastructure is mostly implemented, core product infrastructure mostly implemented in Ruby. When I started I had never written a line of Ruby in my life and I knew I wanted to do this thing and actually done something like it before joining and I was really scared. How much credibility might I lose if I show up and I can’t write a line of Ruby. But my first buddy was a guy called Ajhja who’s still at Stripe doing great stuff and he helped me learn Ruby during these three days and they [inaudible 00:49:48] me a little bit, but ultimately everyone really appreciated that I’ve done it.
Lenny: Imagine being the engineer has to review your PR.
Handling Failures and Incident Response
David Singleton: I tell them this is an important part of the process. Please don’t treat me any different to anyone else. And obviously to make this work well you have to set the expectation that you’re not going to take me action if something isn’t exactly the way you want it to be. It is a moral kind of longitudinal process.
Continuous Improvement and Chaos Testing
Lenny: Is there something that you found in this process that comes to mind that was really surprising or interesting or just kind of lasting in the past set of couple years?
David Singleton: One of the most interesting things that I think I’ve run into is there are a lot of places that as we scale, we know that it makes a lot of sense to invest in automation and there were a bunch of places in our development process where while we’ve done that, we were working hard to help each other out and actually saying, hey, please come talk to this other team if you want to use this thing. And if you’re working for instance, a different time zone from someone else, it’s often the case that actually it would be much better just to document it well and automate it and then maybe make the consultation available. And so running into those kind of pieces of friction and then having a good conversation about it has really helped. But one good thing about Stripe I think is that kind of change doesn’t depend on me doing anything.
So we really care about making Stripe a place where engineers can do some of the best work of their careers and that means being enabled with good tools and good developer productivity. So we invest a lot in developer productivity. We have a team who work on our dev tools and they actually run exactly the same product development process that I just described for our external users internally. So understand your users really well. Talk to them a lot, as so for instance, we do a monthly survey. We operate in enough scale where we can ping enough people once a month that we get a statistically significant sample of the entire organization without having to get everyone to respond. Every individual respond once every six months. And we ask very directly, what’s the experience you’re having? And then we use that to prioritize the roadmap of our developer productivity team. We also measure everything so we know where people are getting stuck and when we compare both the kind of free responses and the data, it helps us invest in the best places to make everyone else more productive.
Improving Developer Productivity
Lenny: Okay, that’s exactly where I was hoping to go next. And let me set this question up. So I saw a tweet of yours recently where I have some notes here I’m going to read that you deploy changes to your core, API 16.4 times a day on average. Your uptime has been 99.999% and one in 10 people in the world have transacted with a business powered by Stripe at this point. And so my question is just what does it take to achieve something like this, especially in terms of tooling and culture and everything else you’re just talking about?
David Singleton: Well I think it’s worth saying at Stripe we are trying to do something I think relatively unique, which is what we power for the businesses to build on Stripe our users, it’s really business critical to them. We’re literally talking about money coming into your business to help you run your operations or make it even possible for you to run your operations and maybe pay your employees and so forth. All the revenue automation that we do around billing subscriptions, our financial automation products, helping you close your books, this stuff matters. You cannot get it wrong. And we also operate, Stripe today, we move as much money as all of e-commerce was when Stripe got started. So we operate very significant scale and so business critical significant scale, we just have a tremendous duty to our users to get this right and be extremely reliable and available for them.
So we do think about that a lot. Now there’s one way to be very reliable, which is to try to change things as infrequently as possible. Never change anything than you have many fewer opportunities for things to break. But we don’t take that approach. The needs of our users are evolving so rapidly, the number of ways that we want to serve them and can serve them is evolving rapidly enough that it matters a lot that we can operate in a kind of constantly changing environment. Hopefully I’ve explained why that matters like that type feedback because it’s only possible if you can actually get something in their hands. So we choose to design the way we work to hold those two things true at the same time and it does take a lot of care and attention and it takes a lot of systems. So maybe just kind of build this up.
First of all, there’s a lot in our development process and the ways that we take changes into our product that makes this possible. One of those is we really care a lot about having really good test suites. So we believe in automated testing. We don’t have manual testers because manual testers couldn’t possibly cover the vast array of API endpoint and configurations that we offer but automated test can. So we work hard to have a lot of automated test coverage and then every single change that an engineer produces gets run through this battery of tests before it can even possibly go towards production. And then we work very hard as changes end up in production to put them through increasingly realistic and then more broadly exposed environments. So we have a bunch of staging environments where we’ll send a battery of more realistic end-to-end tests. Then finally when something actually goes to production, it starts at very small percentage of the traffic and then wraps up to the hole.
So we can detect problems before they become huge problems. There’s a number of things that we had to do to make that all possible. So for instance, every change that Strip engineer submits [inaudible 00:55:23] test, it actually ends up in production automatically over the course of the next 45 minutes or so. And I don’t think there are a lot of financial services companies, at least not until maybe the last few years that have operated that way. And so that takes a certain mind shift. You actually have to assume that that’s going to happen and put the right systems and processes in place. And then the other thing that’s important is to recognize that we have to obsess about getting very systematically good at addressing anything that can go wrong. So I mentioned earlier it’s really important to me that we are a continuously learning organization.
And I mean something else that matters of course is things will go wrong. Sometimes there is a downstream partner where something breaks, other times there is a particular kind of network outage side of our control or whatever. So things will go wrong. So it’s important that we have the right systems in place that minimize the damage that any individual thing going wrong can cause. And we work hard on that. We have redundant systems in a bunch of places. We think hard about how something that breaks for one user wouldn’t kind of carry over into other users and then we actually very actively work hard to put things right when they are wrong. So that’s called instant response at most companies including Stripe. I actually think Stripe is very, very good at instant response. We’ve got very good tools for both declaring incidents and then pulling the right people together to put them right.
But we don’t stop there. We really obsess about reviewing them carefully and identifying not only what would’ve stopped this thing happening, but how could we prevent this whole class of issues in the future. And as I said earlier, we prioritize working on that stuff ahead of anything else on the roadmap that’s because of remember what it is we’re trying to do, how important it is and how if we don’t do that well, we can’t move quickly for our users. So that’s how we do it.
By the way, I don’t want to come across here and sound like we’ve got it all figured out. Of course all of this is always entirely influx. We’re always anxious to figure out how we can make it go better. For instance, in recent years we realize that we could get a lot of benefit from what we call chaos testing. That’s like injecting errors and making sure that the systems respond in such a way that it doesn’t cause any impact on users. So it’s constantly evolving and we really enjoy learning from other companies and learning from our users as well. But it’s something we care about and think very rigorously and systematically alone.
AI’s Impact on Product Building
Lenny: Did you say that it takes only 45 minutes from pushing code to it going into production?
David Singleton: Typically yes. So that battery of tests that I described, that gets run on every change, that gets run in parallel to when you send it for review by another human. So it’s run once, typically takes about 15 minutes and then once the changes merged into our code base, we run that same test suite one more time. So another 15 minutes then typically takes about 30 minutes for the systems to automatically deployed in production. That’s how we run and think about establishing that tight feedback loop with users, that means you can get feedback from a user in the morning, you can figure out how to address it and you can actually put something back in their hands by the end of the day. And that loop running inside of 24 hours I think is pretty important.
Copilot and Engineer Productivity
Lenny: That’s incredible. I remember times that Airbnb where took hours for tests to finish because there’s a lot of them and they fix that over time. But I’m used to more on that scale.
Copilot’s Real-World Impact
David Singleton: It takes constant effort to hold. Those numbers by the way are important. Those are about the right numbers I think for a company operating our kind of scale. Of course as you add more stuff, you add more tests. So we’ve had to work on, we had to invent mechanisms to make it run more in parallel, we now have a thing called selective test execution where we figure out for not the battery that runs before it goes into production that we run everything and just run it in more machines to make it parallelize. But for the changes or the tests that we run for individual changes, we actually have systems that figure out, well which tests are the ones that might be material for this particular thing? And that’s been a real source of innovation. In fact, our distributed change and test environment at Stripe is the biggest distributed system that we actually run. And so running that requires just as much energy and effort and rigor and craft as everything else.
Insights on Managing Large Teams
Lenny: What are some of the things you’ve done that have had the most impact on developer productivity?
David Singleton: We’ve touched on a couple of these already. That auto deploy mechanism definitely had a very significant individual impact. So before we introduced that, sometime within the last five years each deployed to production required an engineer to actually babysit it, to watch it as it, make sure all the charts look good. And it was a bit of kind of game of roulette because you always wish that your change would get bundled in with someone else’s so that they were paying attention to it for you. So literally being able to be fingers on keyboard on something else while your change is going live and it’s going to automatically monitored, that was a big improvement in our productivity. Also, very small things. This is just like optimizing checkout, very small changes really compounded in a big way. So for instance, by eight months ago we made it possible, we use a tool for code review.
It’s quite popular, it’s GitHub enterprise, but we’ve built a bunch of our own experiences and controls around that and we have a little tick box that you can tick on your pool request. That’s what you call an individual change that an engineer produces that is auto merge, which means once the reviewer says this is good, I don’t need to come back and look at it again, the system should just take over and that just cuts out one whole kind of human distraction step and that laddered up to a big change in productivity as well. So these very small changes can if you’re deliberate with them, ladder up to a big impact.
Planning and Prioritization
Lenny: I’m going to go in a different direction now. AI very hot right now. Has AI impacted the way you all build product yet? And if not, where do you think it starts to go in the next few years?
Core Planning Methodologies
David Singleton: Yeah, we’re very excited about AI. Now to just take one step back, Stripe has been using machine learning and advanced machine learning techniques at the heart of our products since the very early days. Radar is our solutions for payment fraud and it has used, I mean this is the very core of our products and has used machine learning since we introduced it. We also, if you think about the nature of Stripe, we operate in an environment where we have to do a lot of work to kind of catch bad actors in the system, fraudsters or fraudulent businesses. So we’ve been employing a lot of machine learning techniques there again for years and we couldn’t operate the company without them. So the difference between ML and AI, I think when we think about AI today we’re mostly talking about the applications of large language models, but those are really based on this new technology called Transformers.
It was a paper that came out of Google a while back about four years ago, five years ago. And we put transformer technology into those systems at some point more than a year ago. And it’s proved to have a very profound impact on our ability to solve those problems for our users, which is great. But we are also excited about the applications of large language models. I mean there’s really two dimensions to this. Number one, we feel privileged to be able to help serve and power a lot of businesses getting started in this space. One big difference between AI startups and others is it’s actually quite expensive to operate an AI startup in terms of the compute resources. Like running this stuff in these GPU machines is quite expensive. So typically these companies need to have a monetization model from day one. And I’m really excited to say most of the AI on these is running on Stripe and we’re working very hard to make sure we serve all their needs.
Open AI, for instance, using us for monetizing chat GPT plus and all their other products. But they don’t just stop there. We’re actually helping power all of their subscriptions and revenue tracking and financial operations around the business. And the point about that is we’ve been putting very large engineering teams on this stuff for years and that means anyone who wants to build a reconciliation product and a subscriptions business model, if you want to do that yourself, you have to put big engineering teams on them. But if you can use Stripe instead, you can actually focus those really precious engineering resources on keeping up with the rate of breakneck innovation in this space. So we’re excited about that, but we’re also really excited about the applications of these AI techniques on our own ability to serve our users better. And so for instance, at sessions we’ll be talking about a few of these.
We started working with OpenAI when they had the beta. It was a kind of private beta of GPT four available at the beginning of this year. The first thing we thought of was we’ve got a lot of documentation on Stripe and we put a lot of care attention into making it good. But if you want to achieve something with your Stripe integration, you’re typically going to spend quite a lot of time reading docs and kind of synthesizing them as an end user. We realized we can have GPT four read all of our docs, store them as embeddings and then answer questions for developers. And so we now have that available in kind of early stage release inside of our documentation. It’s turning out to be pretty valuable. We’ve also been able to apply these techniques to other areas of our products. So something that we’re going to show an early version of IT sessions is we have a really powerful product as part of our revenue and financial automation suite, which we call Sigma.
It allows you to write sequel queries across all of your Stripe data so you can interrogate your Stripe data to understand your business and really fine grain detail. Which country has the fastest growing sales, which segment in which country has particular attributes to it? Very powerful product, but it’s one that is potentially challenging for non-developers to adopt. You do have to know how to write sequel queries unless you just use the ones in the menu in order to get the full value out of the product. Well it turns out with large language models, we can apply this technology where you can ask questions in natural language and our engine will actually write the sequel query for you. And we’ve had to do a lot of work to kind of tune that to make sure that it’s reliable and understandable and it’s going really well. And we also see great applications in actually applying these technologies to make us more efficient internally, answer users questions faster, help each other out more quickly. And so we’re doing those things as well. One concrete thing that we did, which I’m pretty excited about is not long after we saw chat GPT come out, we realized it would be really awesome if we could apply that to many use cases inside of Stripe. But as you can imagine, a lot of the data that we are dealing with on a daily basis is very sensitive to our business, to our users and we care a lot and we have a lot of governance around this, but we wanted to make that technology bill. We couldn’t say, Hey Stripes, go and use chat GPT. So we stood up an integration to GPT four and an internal UI to use models like that. But here’s the thing that I want to kind of relate to all of your viewers. We find that we built presets into that.
So when you work with large language models, you want to write a prompt that then helps get the model into a state where it’s going to be able to solve the particular problem at hand. And we find that writing prompts is something that’s accessible to folks across lots of different job families, not just engineers. Folks in our marketing team, folks in our user support team have been able to use this as well. But you can put a lot of care and attention to getting a prompt that works really well and we not make it possible for those to be shared across the company. So I can grab the preset to help me write a blog post with the right kind of tone and I find it extremely valuable in helping me and many other people across the company. So I think there’s a lot of innovation in high companies serve their users and operate is possible right now and we are working hard to employ all of that on behalf of our users.
Looking Ahead to Stripe Sessions
Lenny: What about as engineers? Are pro co-pilot, is there some along those lines that you find useful weary of? How do you think about that?
Connect’s Embeddable Components and Engineering Leverage
David Singleton: We’re excited about co-pilot. We’ve made co-pilot available to our engineers internally. We ran a fairly rigorous trial to make sure that we felt good about its actual impact on our ability to write code and the code it was actually generating and find that it was very effective for us. Both in productivity but also just in helping our engineers feel like they could direct their energy towards some of the bigger problems. How should this stuff fit together rather than some of the micro problems. So because we had such great feedback on that, we’ve made it available very broadly internally and we’ll be very excited to see where that space develops over time.
Lightning Q&A Session
Lenny: Do you have a sense of the productivity gain that say imagine you have a lot of 10X engineers, the gains that an amazing engineer gets out of a co-pilot versus a newer engineer?
Favorite Interview Question
David Singleton: It’s honestly too early to tell because we’ve only recently made it available at scale. What we’re typically seeing is that the kind of tasks that it accelerates are, remember I mentioned how much energy we put into having comprehensive test suites. It’s actually using co-pilot to generate your test cases, turns out to be extremely valuable. There’s a reasonable amount of boiler plate that is kind of like repeated code and concepts that goes into writing good tests. But you also have to reason very carefully about is this actually testing is exactly what I want? So co-pilot takes a lot of that boiler plate generation out of the way. So you’re actually thinking about the stuff that really matters. And I think that is going to have a profound impact on quality of code that we write as well. But it’s a little too early to say, because we literally just folded out what kind of actual measurable impact is having.
Lenny: I was talking to an engineer and he’s just like, I like the active writing code and it makes me sad that this is doing this for me. So he turns it off.
This is doing this for me, so he turns it off. I think over time people will be like, “Eh, that’s true. I never really enjoyed this part of it.”
A Favorite Product
David Singleton: Yeah, I’ll speak from personal experience. I love writing code. I really love writing code. It’s pretty much what I do for fun. I also love writing code with Copilot, because as I said, it means that I can focus on the parts that really matter. I think that’s been a fairly consistent experience across Stripe as well.
Lenny: Awesome. You run a massive engineering team. I don’t know if you shared the numbers of engineers, but I know there are many. What are, and this is a broad question, just what are some lessons you’ve learned about managing people and/or managing engineers, whichever direction you want to go?
David Singleton: Wow, big question. There are so many different directions we could take that. I’ll share a few observations. They don’t necessarily all have a particular theme to them. I think as I’ve been responsible for bigger and bigger teams over time, one of the things that just I repeatedly learn is I personally will not be involved in really any of the decisions that matter and happen. There are thousands of decisions that an organization of any skill is making every single day, every individual engineer or PM is making hundreds of small decisions and some big ones every day that affect the kind of general trajectory.
The most important thing is to really focus on hiring the right people, and that means hiring people that you can trust with a tremendous amount of autonomy. If I try to get involved in lots of decisions, everything will grind to a halt. How do you do that? It is important, obviously, to be rigorous. We’ve described already what our hiring process is. I really lean into getting to know folks in very, very well as we’re hiring them. By the way, something I didn’t mention earlier that is I think important here is we pay a lot of attention at Stripe during the hiring process to references.
This is typically later in the process, but if you put someone through an interview process, you’ve probably spent what, eight hours total with them? If you talk to people that actually have worked with them before, you’re probably benefiting from thousands of hours of direct experience. We take this very seriously, and we try to ask smart questions that will help get real signal out of that. I certainly find when it comes to hiring folks that have then gone on to really make a transformative impact, that references are often the time that you get the best conviction on the hire or not.
Hire the right people, and then you have to trust them. Now, trust is interesting. Is actually quite challenging to trust people that you’ve just hired, right? Well, you’ve got no stake really on you yet. What I find is you do actually just have to be generous in giving trust and assuming trust by default at the beginning. Then you do need to hold people accountable enough that they are proving that they can handle that trust. Sometimes, that means hiring someone who you think quite plausibly can end up in a very big role into a smaller role to begin with. Other times, you just have the big role that you need to fill, in which case, it’s important to be quite conscious about really trusting and delegating to them with a lot of support.
I’m always working hard to delegate sometimes a little bit more than I’m comfortable with, because that’s the only way to really operate at significant scale. I think something else, and sorry, this is really a smorgasboard is what a lot of differences.
Lenny: Perfect.
David Singleton: Something else I’ve realized as the organizations I work with and been responsible for have grown is that you have to be extremely conscious about managing your own time. There are hundreds or thousands of people who, quite legitimately, might want to get some time with you. If you just let the places that you spend your time and energy be controlled by the stuff that comes into your inbox, or the stuff that gets put on your calendar, that’s going to be random. It’s quite likely that that’s not laddering up to the biggest impact. I personally have been running a loop for, I don’t know, maybe 10 years, where on Sunday evenings, and usually, well, it usually starts on Sunday afternoons, I read a lot of what happened last week.
Then on Sunday evenings, I actually write a list for myself of, you asked me a question at this podcast, which is like, what would be great success for this podcast from your perspective?
I basically think about that for my week every Sunday night. I make a list of if we got these things done this week, that is a good week, but obviously, we need to be dynamic. Things will surprise you through the week. Honestly, then, that drives a lot of just where I decide to spend my time. I try to encourage everyone to think that way throughout the organization. I think it does ladder up to more impact over time. I think the final thing I’ll say here is I mentioned how important operating principles are to the culture. I think for any manager and any leaders, that includes ICPMs as well, but for any manager, any leader, how you show up really does set the culture that is around you.
I try very hard to show up very consistently every day, even though there will very frequently be things that are going wrong and are bad and are hard. It’s actually very important to show up quite consistently. Certainly, in line with all the values that we have and the culture that we want to set, in order to really kind of model that at scale. Different days, that can be easier and harder. The final thing is, I think it’s quite important to manage your own energy.
There are some tasks that I do that are maybe not the most important thing, but I know that I get a lot of joy and energy from them, and then that carries over into the other stuff that also needs to get done.
Lenny: Just two more questions before we get to our very exciting lightning round. One is just I feel like Stripe is incredibly good at planning and organizing, prioritizing. I know every inside, it’s always not as beautiful as it may seem on the outside, but what have you learned? What has Stripe learned about planning and prioritizing that you think other companies might be missing?
David Singleton: Yeah. Well it’s funny you say that. I would say planning inside of Stripe does not get the highest net promoter score that you might imagine. I do think it is actually quite effective. By the way, the reason I think that planning, the way we do planning at Stripe doesn’t always get the best internal rep is we have grown very rapidly. That means that almost every time we come back around to planning, we actually, and this is kind of a theme at Stripe, we think about a lot of the ways that we work internally from First principles.
We will tend not to by default just pick a system off of the shelf that some other company has run or that we’ve used before. We’ll think hard, considering what we are doing for our users. How should we do this? When we’re thinking even first principles, we’ll often go out and talk to a lot of other companies, and try to learn from their experience. It’s actually something I’ve really appreciated and enjoyed at Stripe. A lot of the learning I’ve done here has come not only from folks that are at the company, but also talking to a bunch of folks that we have the privilege to work closely with because their business is building on Stripe, or they’re a similar stage of scale to us.
A good example of this is Amazon. Amazon is a Stripe user. Because we work with them, in my first couple of weeks at Stripe, I was actually able to meet with Charlie Bell, who then ran operations at Stripe. A lot of the things that, sorry, who then ran operations at Amazon. A lot of the things that we actually now do at Stripe have come from learning from that experience. It wasn’t just, oh yeah, we’ll take this thing cause Amazon did it, talk to him. Lots of other companies hard to learn. The point is we care about learning from others and then we apply it.
Bringing this back to planning, because we tend to think a lot from first principles and we’ve been growing rapidly. The right planning process for us as a company has actually changed quite dramatically and quite significantly over the years. We do planning in a relatively deep way once a year, and then in a slightly lighter way halfway through the year. If you imagine doing someone once a year and you’re growing rapidly, you’re going to want to revisit exactly how you do it. I think for anyone who has the privilege of running the same planning process again and again, you can really iterate it and tune it. We’ve had to make more deliberate and more sweeping changes as we’ve gone along. There are a couple things at the core of how we do this. One is it’s really important to focus on who are the users that we are seeking to serve for any given product area that we’re working in? Kind of holding their needs front and center in your plans is important. Again, at Stripe, we do something that is, it’s not unconventional, but it’s not the most common practice in the industry, which is we work very hard to serve companies from the very, very small. The folks that are literally just starting their company on Stripe, with Stripe Atlas, all the way up to multinational, 10 Fortune five companies, fortune one companies, I guess.
There’s a very different set of user needs across those businesses. For any given area, it’s very important for each team to be clear about who are they serving. Then we run a kind of inverted W process. We typically have teams surface what their immediate thoughts are on the most important things to do. We’ll then have a group of product leaders get together and try to synthesize the most important parts of that into a kind of draft overall company strategy, and then take that back down to teams to figure out, “Well, if that’s where we’re making a big push, should that tweak my plans at all?”
We bring it back up for synthesis, and then back down for everyone to really distribute with a lot of context within their orgs. We find that at our current scale, very, very effective.
Lenny: I haven’t mentioned this yet, but I actually, Stripe for my newsletter, I check the app many times a day, so I’m probably in the Fortune 1 million, somewhere in that.
David Singleton: Do you have any feedback? Genuinely, I’d love to hear your Stripe feedback.
Lenny: It’s great. The app tells me that I’m …
David Singleton: No, no, don’t tell us it’s great. What bugs you?
Lenny: Well, it’s interesting for churn, for cohort retention, which I care a lot about for the newsletter, I actually use a different tool that feels like gives me better, a table of per cohort, how many people are still around? There’s an opportunity to have better cohort retention metrics.
David Singleton: Cool. Okay. Well, maybe we can email about that. Quite genuinely at Stripe, anytime we talk to a Stripe user, we are always looking for feedback that goes for any occasion. We often bring users into the beginning of our Friday fireside I already mentioned, and we’re always asking them for their feedback and we really, really want to act on it.
Lenny: Well, I wish I had more. It’s works great. Final question, Stripe Session’s coming up, it’s going to happen before this comes out. What should folks be watching for? What’s next for Stripe?
David Singleton: We’ve touched on a few of the things that we’re sharing broadly for the first time at Stripe Sessions on this call already. Per our development process, these have been in the hands of some Stripe users for a significant amount of time and we’ve really kind of crafted them with them. I’m super excited about a number of the things that we’re going to be talking about next week. One is I’ve mentioned our revenue and financial automation suite.
We’ve really been crafting the features there for some time, and really nice example actually of how building closely with users really, really helps build things at scale. We’ve a set of features that we work with companies like Atlassian and CloudFlare to enable their businesses on Stripe Billing. They have relatively complex models. For instance, you might sign a deal where it has a discount in the first year, and then there’s another product that’s being used in the second year, and then something else happens in the third year. You can now model all of that in Stripe Billing, and we’re going to be showing how you can do that in the dashboard at Stripe Sessions next week.
It’s now going into general availability for all Stripe users. It’s giving all of our users from the very small to the very large, the same power that the world’s best SAS platform might have. Excited about that. It’s also the case that we didn’t talk about it in this call, Stripe Connect is our product for platforms of marketplaces. If I may actually just take one second, it’s a really good example of how focusing on the needs of our users in one area took us into a really valuable space to solve for many users in other areas.
The ideas behind Stripe Connect came from working with companies like Lyft and Shopify. In the very early days, they were using Stripe for pay-ins, but we realized, “Oh, these companies are operating these multi-sided marketplaces, and there’s a ton of heavy lifting you have to do to make that work really well.” We have to have a bunch of regulatory licenses in place, but also there’s a lot that you need to do to actually make the money move and kind of account for it in the right way. Connect is our product for platforms and marketplaces.
One of the things that we’ve done over the course of the last year or so is actually taken a lot of the features that we’ve built in the Stripe Dashboard to help folks manage things like gathering the right documents from their users, or handling refunds and so forth. We’ve actually made them available as embed-able UI components that are also completely customizable, which these platforms can take and put inside their own dashboards so they can present a lot of the power that Stripe is enabling to their customers, without having to do a ton of engineering work themselves.
Look, generating engineering leverage for our customers is just very frequently the main thing that we can do to help their businesses. We’re going to show a bunch of that stuff next week, which I’m excited about. Then finally, we touched on it already, but it’ll be great to show some of the innovation we’ve had around AI and large language models. Again, I think it’s going to make a big impact over the coming years.
Lenny: Well, with that, we’ve reached our very exciting lightning round. First question, what are two or three books that you’ve recommended most to other people?
David Singleton: Most means that you have to integrate under the curve, so I’d say High Output Management by Andy Grove is definitely the book that I’ve recommended the most. It was a book that really opened my eyes to how to get the most out of teams over the whole course of my career. Definitely check that out if you haven’t read it already. Recently, we talked about being meticulous in our craft. I’ve really enjoyed Build by Tony Fidel. Tony worked on the iPod, and then the iPhone, and then was the founder of Nest.
He puts a tremendous amount of thought into his users and how to build really great crafted experiences. I had the privilege of working with him very briefly at Google, but I thought the book was excellent in terms of helping provide some practical pointers there. Then I would be remiss if I did not mention Claire Hughes Johnson’s book, Skilling People. Even though it only just came out, I’ve recommended it a lot. There’s actually some stuff in here where I’m sharing some techniques that we’ve used at Stripe, so you might enjoy that. Then if I may share one …
Lenny: Here’s my copy.
David Singleton: You’ve got it too.
Lenny: … it supports …
David Singleton: Amazing.
Lenny: … Supports my laptop on here, and …
David Singleton: I hope you’ve read it.
Lenny: I’ve had her on the podcast. I’ve read, I’ve skimmed it as much as I can.
David Singleton: Yeah.
Lenny: I’m not building a business right now. She was in the top 10 bestseller list on the Wall Street Journal, I saw.
David Singleton: That’s right, that’s right. It has a ton of very practical advice, so I recommend that one a lot.
Lenny: What’s a ,favorite recent movie or TV show?
David Singleton: Okay, I’m going to cheat here because I’m going to interpret that as what’s the best video content you’ve seen recently?
Lenny: Sure.
David Singleton: I have fallen in love with YouTube for learning about the really fast moving AI space. It has been remarkably valuable, and Andre Carpassi has a bunch of really good seminars, but not just that. Across the whole spectrum, I think there’s just so much gold on YouTube if you want to learn a new skill these days.
Lenny: Is that the channel you recommend, Andre Carpassi’s channel?
David Singleton: His channel is awesome if you want to learn about AI.
Lenny: He’s the ex-Tesla AI?
David Singleton: That’s right. I believe recently, gone to OpenAI, but was doing this kind of on his own for a few months and has produced a bunch of great YouTube content.
Lenny: Great pick. Most people pick White Lotus or something like that and you go with a AI YouTube channel. I love it. What’s a favorite interview question you like to ask?
David Singleton: Okay, well, actually, you will find some recommended interview questions from me in this book. One I really like actually, because it sounds like a softball and then it’s not, is I often ask people, especially for leadership hiring, which leader that they’ve worked with they admire most and why. It sounds like a softball, but it actually tells you a lot about what this person really cares about in leadership.
Sometimes, I’ll follow up and ask, “How does that manifest in your own leadership style?” Then, and this I think is really quite telling, I always ask folks, I’m going to spoil my interview question, I’m revealing it in your podcast, but I always ask folks, “Okay, so imagine you were their manager. Tell me the performance review or the development feedback you’d give them to help them be more effective.” I think everyone always has things that they could improve, certainly myself included.
Folks’ ability to think critically about someone that they kind of admire or lionize, and how they could actually be more effective, I find quite telling.
Lenny: What are some favorite products you’ve recently discovered that you love?
David Singleton: The products that I have recently discovered and definitely love is Mid-Journey, also building the business side of their business on Stripe. For folks who don’t know, Mid-Journey is an AI tool for generating images using stable diffusion, but it’s really pretty awesome. I’ve been using it a lot with my daughter. We’ll come up with stories and we’ll generate beautiful looking images with Mid-Journey, and then she’ll drop them into books and she’ll write the pros. The reason I think it’s pretty cool is I was very surprised and skeptical at its UI to begin with, because its UI is Discord.
They drop you into Discord and you are in a channel where you have to prompt the artificial intelligence. I find it very confusing at the beginning. It’s like, this is not the right interface for this tool, but actually, it’s very smart because you learn from other people on Discord, how they’re prompting the AI in order to get the kind of results that they’re looking for. I find that made it possible for me to get a lot more power and value out of the tool. I definitely subscribe to Mid-Journey and have had a lot of fun playing with it.
Lenny: What’s your favorite image that you’ve created, if there’s one that comes to mind?
David Singleton: We made a cover for a book that my daughter is writing. My daughter is nine years old by the way, so we’re talking here, good children’s stories. She made an image of a wolf wearing a purple velvet cloak, sitting in front of a campfire with a shack in a forest and a nebula behind. It’s beautiful. We actually built that with by combining two images, the wolf and the shack. Actually getting the wolf out of one image and putting it onto the other, we used the new Apple image segmentation copy and paste thing, which worked great. It’s also fun combining these AI tools, but that one has been pretty good.
Lenny: What a world. Two final questions. What’s something relatively minor you’ve changed in your product development process that has had a tremendous impact on your ability to execute as a team?
David Singleton: We talked a bit or about this already, auto deploys and that auto merge feature, but probably the most profound thing is we put a little button in every single developer tool at Stripe. It is an emoji of an octopus that is crying. If you click it, it makes it possible to just type in what’s gone wrong. Then we have our developer productivity team read all of those and use them to prioritize what they’re up to. Just like frictionless problem recording turned out to be really valuable. We call those paper cuts.
Lenny: Crying octopus. I love that.
David Singleton: Yeah.
Lenny: Who else from Stripe or Former Stripe should I have on the podcast is my final lightning round question?
David Singleton: I see how this works.
Lenny: This isn’t how this works.
David Singleton: Two Stripes I think you should have on. Emily Sands is our chief economist and leads our information org. I think includes data science, but also the teams that build all of our, a lot of our internal tools. I think Emily just has great frameworks for thinking about how to translate what’s really going on for users into great sets of metrics that you can then use to get the right action happening. As I described before, that’s super important.
The second person would be Michelle Boo. Michelle joins Stripe as an engineer in the very, very early days, and has been with us for obviously a long time. She’s really our principal product design architect in terms of the actual abstractions that we use to model our users’ businesses on Stripe. I think she has very deep insight into how to think about getting those things right. I think you would enjoy talking.
Lenny: David, I so appreciate you making time for this, especially during this hectic period ahead of sessions. Two final questions. Where can folks find me online if they want to reach out, maybe learn more about what you’re up to you, and then how can listeners be useful to you?
David Singleton: Cool. Okay. Well, I am @DPS on Twitter. That is definitely the best place to get hold of me, but you can also check right my personal blog at blog.singleton.io. Useful, honestly, please send me Stripe feedback. You can do that on Twitter. You can discover my email address on my blog as well. I would love to hear how we could serve you better.
Lenny: David, thank you again for being here.
David Singleton: Thank you. It was a lot of fun, Lenny.
Lenny: Same. Bye, everyone. Thank you so much for listening. If you found this valuable, you can subscribe to the show on Apple Podcast, Spotify, or your favorite podcast app. Also, please consider giving us a rating or leaving a review, as that really helps other listeners find the podcast. You can find all past episodes or learn more about the show at LennysPodcast.com. See you in the next episode.
Glossary
| English | 中文 |
|---|---|
| Ajhja | Ajhja(Stripe 工程师,保留原文) |
| Alpha | Alpha(指 Alpha 测试阶段用户群体,保留原文) |
| Andrej Karpathy | Andrej Karpathy(保留原文) |
| Andy Grove | 安迪·格鲁夫(Intel 前CEO,公认译名) |
| API | API(Application Programming Interface,保留原文) |
| Atlas | Atlas(Stripe 旗下的创业服务产品 Stripe Atlas,保留原文) |
| Atlassian | Atlassian(全球知名 SaaS 公司,保留原文) |
| basis points | 基点(basis points) |
| be meticulous in your craft | 在工艺上精益求精 |
| Build | 《构建》(Build) |
| Charlie Bell | Charlie Bell(前 Amazon 运营高管,保留原文) |
| ChatGPT Plus | ChatGPT Plus(OpenAI 的付费订阅服务,保留原文) |
| Claire Hughes Johnson | Claire Hughes Johnson(前 Stripe 高管) |
| CloudFlare | CloudFlare(全球知名云服务与网络安全公司,保留原文) |
| cohort | 同期群(cohort) |
| Copilot | Copilot(GitHub 的 AI 编程助手,保留原文) |
| David Singleton | David Singleton(Stripe 工程高管,保留原文) |
| Discord | Discord(通讯平台,保留原文) |
| Eeke | Eeke(前 Stripe 员工) |
| embeddings | 嵌入向量(embeddings) |
| Emily Sands | Emily Sands(Stripe 首席经济学家,保留原文) |
| Employer Identification Number | 雇主识别号(Employer Identification Number) |
| engineer occasions | 工程师演讲 |
| engineercation | engineercation(engineer 与 vacation 的混成词,指管理者深入一线团队做工程实践的机制) |
| Figma | Figma(设计工具公司,保留原文) |
| Fortune five / Fortune one | 财富十强/财富榜首(Fortune 排名) |
| friction logging | 摩擦日志 |
| general availability | 正式发布(general availability) |
| global payments and treasury network | 全球支付与资金网络(global payments and treasury network) |
| GPT-4 | GPT-4(OpenAI 的大语言模型,保留原文) |
| High Output Management | 《高产出管理》(High Output Management) |
| IC | 个人贡献者(IC,Individual Contributor) |
| IRS | 国税局(IRS) |
| Jeff Weinstein | Jeff Weinstein(Stripe 产品经理,保留原文) |
| John | John(Stripe 联合创始人 John Collison,保留原文) |
| Lenny | Lenny(播客主持人) |
| Link | Link(Stripe 的一键结账产品,保留原文) |
| Lyft | Lyft(美国网约车平台,保留原文) |
| maker schedule | 创客日程(maker schedule) |
| Michelle Boo | Michelle Boo(Stripe 工程师/首席产品设计架构师,保留原文) |
| Midjourney | Midjourney(AI 图像生成工具,保留原文) |
| Nest | Nest(智能家居公司,保留原文) |
| OpenAI | OpenAI(AI 研究公司,保留原文) |
| operating principles | 运营原则(operating principles) |
| paper cuts | paper cuts(Stripe 内部对开发者工具中小摩擦问题的称呼,保留原文) |
| Patrick | Patrick(Stripe 联合创始人 Patrick Collison,保留原文) |
| payment element | payment element(Stripe 的支付 UI 组件,保留原文) |
| PR | PR(Pull Request,保留原文) |
| presets | 预设(presets) |
| prompt | 提示词(prompt) |
| Radar | Radar(Stripe 的支付欺诈检测产品,保留原文) |
| SaaS | SaaS(Software as a Service 的缩写,保留原文) |
| Sessions | Sessions(Stripe 的大会,保留原文) |
| Shopify | Shopify(全球知名电商平台,保留原文) |
| Shreyas Doshi | Shreyas Doshi(前 Stripe 高管) |
| Sigma | Sigma(Stripe 的数据查询产品,保留原文) |
| Skilling People | 《选对人》(Skilling People) |
| Slack | Slack(企业通讯平台,保留原文) |
| SQL | SQL(结构化查询语言,保留原文) |
| stable diffusion | 稳定扩散(stable diffusion) |
| Stripe | Stripe(知名在线支付平台,保留原文) |
| Stripe Billing | Stripe Billing(Stripe 的订阅和发票产品,保留原文) |
| Stripe Checkout | Stripe Checkout(Stripe 的托管结账服务,保留原文) |
| Stripe Connect | Stripe Connect(Stripe 的平台与市场支付产品,保留原文) |
| Stripes | Stripes(Stripe 内部对员工的称呼,保留原文) |
| Tony Fadell | Tony Fadell(保留原文) |
| Transformers | Transformer(一种深度学习架构,保留原文) |
| walking the store | 走访一线 |
| White Lotus | 《白莲花》(美剧,公认译名) |
Reformatted by reformat_english.py
构建卓越文化 | David Singleton(Stripe CTO)
访谈记录
David Singleton: 我们在 Stripe 思考产品开发的方式,核心是要找到合适的早期用户群体,与他们共同创造产品。最好的例子可能是 Stripe Billing。当我们开始做 Stripe Billing 产品时,我们发现一些现有用户——比如 Figma 和 Slack——已经在用 Stripe 处理支付,但它们采用的是订阅制的商业模式。我们判断未来会有越来越多这类公司出现,而且可以明显看到,它们正在不断突破这一领域的可能性边界。
所以我们决定与他们共同创造产品。我们建立了共享的 Slack 频道,非常频繁地向他们展示产品进展,收集反馈。只有当最初的 Alpha 用户群体对产品非常、非常满意之后,我们才会考虑将其推向更广泛的用户群。这就是我们在 Stripe 构建产品的方式。这也意味着,在 Stripe 构建产品的每位工程师,实际上都具备并会运用你在其他公司通常在产品经理(PM)身上才能看到的许多特质。
嘉宾介绍
Lenny: 欢迎收听 Lenny 的播客,我在这里采访世界级的产品领导和增长专家,从他们打造和增长当今最成功产品的宝贵经验中学习。今天的嘉宾是 David Singleton。David 是 Stripe 的首席技术官,负责领导其工程和设计团队,担任这一角色已超过五年。在加入 Stripe 之前,David 是 Google 的工程副总裁,在那里工作了十余年。在与 David 的交谈中,你会很快感受到他对打造卓越产品和卓越团队这门手艺的热忱。我们深入探讨了 Stripe 独特的招聘方式,他们如何打造了一支极具产品导向的工程团队——这使他们在很多年里都不需要招聘第一位产品经理;他们如何将”在工艺上精益求精”(be meticulous in your craft)这一运营原则落地执行,包括许多引人入胜的内部流程,比如工程师演讲(engineer occasions)、走访一线(walking the store),以及一种叫做摩擦日志(friction logging)的实践。David 还分享了在 Stripe 的可用性和规模要求下运行工程文化所需的一切,以及 AI 已经如何影响他们的工作方式,还有关于领导力、管理和规划方面的经验教训。非常感谢 David 抽出时间来做这期播客,我相信你一定能从中收获有价值的东西。那么,接下来为您带来 David Singleton。
Stripe Sessions 大会
Lenny: David,欢迎来到播客。
David Singleton: 谢谢邀请,Lenny。很高兴来到这里。
Lenny: 我知道 Stripe Sessions 大会马上就要到了,就在下周,我想你这段时间肯定特别忙。所以更加感谢你在百忙之中抽出时间来。
David Singleton: 谢谢。这是我的荣幸,也很有趣。Stripe Sessions 是我们的年度用户大会,我们会邀请许多在 Stripe 上构建业务的企业齐聚一堂,这既是一个分享我们过去一年在做什么的好机会,也能从他们那里学到很多关于他们希望我们做什么。我觉得这非常令人振奋。当然,筹备工作确实很繁重,尤其是今天,我正在花不少时间准备一些演示——我很喜欢搭建演示。所以今天真的很高兴能来参加你的节目。
Stripe 的人才吸引力
Lenny: 在准备这次对话的过程中,我意识到 Stripe 的校友在这个播客上表现非常抢眼——无论是来自 Stripe 的嘉宾数量,还是那些节目的质量和受欢迎程度。比如 Claire Hughes Johnson、Shreyas Doshi 和 Eeke。我的第一个问题本质上就是:你们到底做了什么,才能吸引、招聘、拿下并留住这个级别的人才?我不会接受”我们坚持高标准”或”我们只是花很多时间在招聘上”这样的答案。我好奇的是,你们做了哪些其他公司没有做的事情——也许是 Stripe 在发现和招聘人才方面独特的地方?
Stripe 的核心理念与使命
David Singleton: 好的,我很乐意跟你多聊聊我们如何发现和招聘人才。不过我觉得有必要先退一步讲讲大背景,因为这对后面的话题很重要。想一想 Stripe 在做什么——我们的核心论点是:互联网经济在未来将比今天大得多、重要得多。过去十年的发展确实印证了这一点。所以我们本质上是一家充满了具有产品思维的构建者的公司,致力于让企业在这个大背景下更容易地起步和运营。我们最初从构建信用卡支付 API 起步。在 Stripe 出现之前,在线接受信用卡支付实在太困难了——你得去跟银行谈,可能还得跟 Visa、MasterCard 签合同,然后还得把一大堆非常复杂的基础设施拼接在一起,这又给你的业务施加了各种限制和要求。
从支付痛点到 Stripe 的诞生
David Singleton: John 和 Patrick 在之前的一次创业中,其实讲过一个很有趣的故事:他们在做那家公司的时候——那是一家互联网公司——他们原以为最难的部分会是在数据中心里组装硬件。但因为那时 AWS 之类的服务已经出现了,那部分其实相当简单。然而,当那家公司需要接入在线支付的时候,难度丝毫不亚于他们原本预期组装硬件的程度。他们实际上还得部署一些物理硬件,还得建立一大堆合作关系,而且作为一个初创团队——一群还没有什么声誉的人——要被认真对待、要能接入那个体系,真的非常困难。这就是 Stripe 诞生的灵感来源。所以我们一开始解决的就是一个非常重大而深刻的问题,帮助这些企业起步和扩张,并且在早期就明确采取了以开发者为中心的方式。
以用户为中心的扩张逻辑
我觉得接下来值得了解、也很重要的一点是,随着我们的规模扩大,我们真正找到下一步该做什么的方法,就是非常密切地关注我们的用户——那些在 Stripe 上构建业务的企业。他们从现有产品中获得了什么?在我们已经解决的问题旁边,还有哪些问题让他们不得不投入大量精力,但他们真心觉得不应该自己来解决、希望我们能帮忙?当我们发现这种需求与我们已有工作的相邻性发生交汇的时候,通常就是我们构建下一层经济基础设施的契机。所以我们今天把自己做的事情理解为:为互联网乃至更广阔的范围构建经济基础设施。
使命如何吸引对的人才
回到如何吸引对的人才以及为什么这很重要这个问题——首先,很多人,我想大多数人来到 Stripe,是因为他们看到了一个帮助规模化企业的巨大机会。所以归根结底是参与一项有意义的使命,而且被这样一种理念所驱动:我们花大量时间与用户在一起,与那些真正需要我们帮助的人在一起,并以他们为导向。我认为这种心态吸引了一种特定类型的人——想要承担很大自主权的人,想要深入理解问题并提出自己的解决方案的人。因为我们构建的是基础设施,我们的方式是真心认为最好的工作是在幕后默默完成的。我们不需要出去搞那些声势浩大的发布会,而是希望我们所有的用户能这样做,我们则在幕后安静地工作,让他们的业务随时间推移变得更好、更高效。
我认为这会吸引具有某种心态的人——对挖掘那些可能不那么显而易见、也不那么吸引所有人的困难问题充满兴趣和韧性,然后真正埋头苦干,直到取得巨大进展。所以这会吸引长期主义的思考者,关心构建的人,以及真正希望紧密协作的人。所以当我思考 Stripe 与其他公司的不同之处时,核心就在于这种目标的单一性。我们的使命是提升互联网的 GDP,并构建相应的金融基础设施来实现这个目标,而完成这一切需要大量的团队协作与合作。这会吸引一种特定类型的人。在寻找这些人的时候,我们不会隐瞒这些。你必须在意这些,我认为才能对在 Stripe 工作感到兴奋。
招聘中的耐心与个人化
所以我们在引进人才时非常努力地把这一点表达得非常清楚。为此,我们在招聘时往往非常有耐心。特别是对于关键岗位,尤其是领导层招聘,我们很乐意花时间,去见几十甚至上百个人。有时候我们会遇到一个人,觉得他非常适合某个岗位,但他目前没法加入。那我们就会耐心等待,继续跟他保持个人关系,往往到了某个时间点,他加入就水到渠成了。而要做到这一点,还有一个特点是 Stripe 的招聘是一件非常个人化的事情。你看,很多其他公司的招聘就像一台机器。顺便说一下,我们也有一个很棒的招聘团队,但公司其他部门的人会与招聘团队非常紧密地合作。
所以这不是一台交付新员工的机器,然后你想着”哦,这个人来了,我可以把他安排去做那件事”。我们的管理者会花大量时间去精确识别各个岗位到底需要什么,然后去了解潜在的候选人——世界上能做这些工作的人——并且与他们深入交流,为什么在这里他们可能会觉得:第一,能在这个使命中获得很强的个人成就感;第二,与他们在其他地方能投入时间和精力的事情相比,这里代表着更大的机会。说到这一点,我认为 Stripe 对于很多加入的人确实提供了——我也很在意在文化中保持这一点——那就是巨大的学习机会。
学习机会与文化
今天在 Stripe 的很多人,做的与当初加入时完全不同的工作。要做到这一点,他们往往需要学习大量新东西,向新的领域拓展自己。而且想想我们正在构建的那套金融基础设施——这个领域确实奖赏那些愿意深入学习这些系统运作细节的人,这些系统在更广泛的世界里并不那么广为人知或被充分理解,需要消化大量的上下文知识。而这样做之后,你就能构建出更好的东西。你把这些上下文知识与彼此分享,帮助其他人学习。所以我认为这一切都汇聚成了你提到的那群人。你提到的每一位都是很棒的在 Stripe 或曾经在 Stripe 工作过的人,大家共同服务于我们的用户。
Lenny: 我总是很喜欢听各家公司内部怎么称呼自己的员工。所以叫 Stripes,记下了。
David Singleton: 没错。
Lenny: 所以总结一下你刚才分享的——我一边听一边在记——就是那些帮助 Stripe 打造这支不可思议的团队的关键要素:一个强大的使命,一个能吸引顶尖人才的使命。听到这里的人可能会说”是啊,你说得倒好听”,但根据我的经验——我投资了不少公司,也跟很多创始人合作过——当公司没有一个让人们真正关心的使命时,招聘有多难,与拥有一个真正有意义的使命时相比,差距是巨大的。这种力量确实非常强大,我完全能理解为什么效果这么好。然后你提到的其他要素:耐心,招聘经理与候选人之间的个人联系。我在 Twitter 上也看到了,很多产品经理就是那样做事——基本上就像在 Twitter 上经营一个小创业公司一样,比如 Jeff Weinstein——
David Singleton: 对,所以——
Lenny: Atlas。
David Singleton: Jeff 是我们 Atlas 产品的产品经理,他是一个很好的例子——他非常在乎去弄清楚这个世界到底是怎么运转的。比如说,他和团队最近推动的一件事就是认识到,在美国创办新企业时,最令人沮丧的步骤之一就是必须向国税局(IRS)申请雇主识别号(Employer Identification Number)。这个申请以前积压非常严重,而且非常困难。在拿到这个号码之前,你无法开始经营你的业务。
Jeff 深入研究了细节,团队也深入研究了细节,就是不断地追问:一定要这样吗?一定要这样吗?最终我们与 IRS 合作,使得我们能够以快得多的速度发放这些号码——基本上在你注册的瞬间就能拿到。我认为这恰好是一个绝佳的例子,说明保持好奇心、怀揣为用户解决问题的执着热情,然后持续不断地攻克难题,就能带来出色的成果,而且是在一个你可以从彼此身上学到很多东西的环境中。
Lenny: 我希望他因此获得了大幅晋升,因为他让 IRS 做了他需要的事情。这太不可思议了。我想再就招聘这个话题深入一层,然后再转向另一个话题。
David Singleton: 好的。
Lenny: 面试流程大概是什么样的?我不太清楚你在产品经理招聘流程中参与程度如何,但我很好奇高层面上是什么样的,以及工程师招聘流程,你能分享多少就分享多少。
结构化面试与贴近真实工作的考察方式
David Singleton: Stripe 所有岗位的招聘都有几个非常共同的特点,尤其是工程师和产品经理。其中一点是,我们有结构化的面试流程。我们让每个人都经历一个非常一致的流程——在帮助候选人了解他们为什么可能想来这里时,这非常个性化。但我们评估人才的方式是一致的。我认为这很重要,因为这意味着,作为面试官、作为招聘经理,你才能真正开始理解你可能得到的回答的广泛范围,以及当你问相似的问题时,你能从各个候选人身上了解到什么。这些流程的另一个共同点是,没有任何刁钻的问题。我们努力把人放在一个尽可能接近实际工作的环境中。
比如说,对于工程师,我们有几道不同的编程练习题。他们与面试官共享屏幕。这实际上类似于结对编程——欢迎使用 Google 搜索、Stack Overflow 搜索答案。我们不在乎这些。我们只关注结果。我们很乐意你在过程中向面试官提问。我们设计的这些练习尽可能地接近 Stripe 需要解决的真实问题。产品经理那边也是如此。比如我们让产品经理做的一项是书面练习,我们显然有各种不同的问题,我们发现这对于真正观察一个人如何攻克一个他们在工作中将要解决的真实问题非常有价值,以及他们是否会以一种充满好奇心、深入细节、与面试官协作的方式来完成。这就是核心要点。结构化、一致的流程。然后是尽可能接近真实工作的问题。
Lenny: 产品经理那边的问题,是让他们在家做还是在办公室做?
David Singleton: 各种形式都有。目前 Stripe 很大程度上处于混合办公模式,所以我们的很多面试仍然通过 Zoom 进行,不过我们的办公室里也有大量活跃的活动。书面练习通常是在你自己的时间里完成的。我们建议设定一个时间上限,这样不会对你的日常生活造成不合理的负担。其他练习则是与面试官在 Zoom 上一起完成。
Stripe 的产品型工程师文化
Lenny: 好的。说到 Stripe 的产品经理,Stripe 有一点很有名,或者说有点”臭名昭著”——你们等了很长时间才招聘第一位产品经理。据我了解,大概是在第 200 名员工、大约五年的时候。这在我看来说明你们非常擅长培养具有产品思维的工程师,或者说招聘和建设一种具有产品思维的工程师文化。你们是怎么做到的?你们是如何着手做这件事的?另外我也很好奇,产品经理最终带来了什么,以及他们现在是如何协作的。
David Singleton: 是的,如今的 Stripe 拥有大量的产品经理、大量的工程师,产品经理是一个极其有价值且重要的职能方向。我接下来会更多地谈谈大家现在在做什么。我们最初的团队确实是一个工程团队,不过我们招聘第一位产品经理的时间比你说的要稍微早一点。但他们都极具产品思维。坦率地说,在我密切合作过的、长期了解的所有早期团队成员中,每一个人都同样可以成为、实际上也在扮演着产品经理的角色。如果你回想 Stripe 第一款产品的性质——我们如今为从小型到大型企业解决广泛的金融基础设施问题,但最初的产品是非常面向开发者的,而且我们在许多工作中至今仍以开发者为核心。
面向开发者的产品,最好的产品经理通常是非常技术型的。他们大多是前工程师,或者可能现在还在业余时间鼓捣代码,但同时又为问题带来了大量的用户洞察和战略思考。Stripe 早期团队的每一个成员都必须像这样行事,才能按照我们的方式和我们期望的方式工作。再次提醒,那就是要非常深入地了解我们的用户,然后将这些亲身洞察带入我们的产品开发闭环中。事实上,我们在 Stripe 思考产品开发的方式,就是找到正确的早期用户群体来与他们共同创造产品。也许最好的例子,或者至少一个很好的例子,就是 Stripe Billing——我们的订阅和发票解决方案。
当我们开始做 Stripe Billing 产品时,我们意识到现有用户中有不少这样的公司——比如 Figma 和 Slack。他们已经在用 Stripe 做支付,但有订阅制的商业模式,我们判断未来会有更多这类公司出现,而且我们可以看到他们确实在把这个领域的可能性推向边界。所以我们决定与他们共同创造这个产品。负责 Billing 的早期团队找了一批这样的公司,包括 Slack 和 Figma,但还有更多,去深入了解他们。那些在这些公司中运营这些系统的个人,团队亲自了解了他们的挑战以及对未来的期望和愿景,然后将他们纳入了一种共享的产品开发闭环。
所以我们建立了共享的 Slack 频道,我们非常频繁地向他们展示产品,获取他们的反馈。只有当最初的这个 Alpha 群体对产品超级、超级满意时,我们才会认为它可能准备好面向更广泛的用户了。这就是我们在 Stripe 构建产品的方式。这意味着在 Stripe 构建产品的每一个工程师,实际上都具备、并且会运用你在其他公司通常在产品经理身上才能找到的许多特质。
产品经理的枢纽角色
不过,这并不意味着产品经理在这里没有真正重要的工作要做。关于 Stripe 还有一点值得了解,也算是有些独特的,那就是在 Stripe,构建产品更像是一项跨职能的团队运动。常见的职能大多数公司都有——工程师、工程经理、产品经理、设计师——这些人都会贯穿整个产品开发生命周期全程参与。但此外,如果你想一想我们产品的本质,就会发现我们的很多产品其实是在对整个金融体系的运作进行抽象。
比如,某个国家有某种能力,另一个国家又有不同的能力,我们希望让它们都能一致地运作。这时我们的金融合作伙伴关系就很重要了。所以有时候,我们合作伙伴团队的同事也会参与到产品的早期开发阶段。同样地,当你考虑到产品法律以及风险、合规等许多其他职能时,我们实际上需要他们的创造性思维,才能为用户构建出正确的东西。所以关键是,这是一个比我见过的大多数公司都更加跨职能协作的过程。而产品经理在其中扮演着绝对的枢纽角色。产品经理非常频繁地承担起那种协调各方、凝聚合作的工作。他们也常常负责综合我们从用户那里学到的信息。
并非所有岗位的人都在与用户对话,但产品经理很可能是与用户交流最多的人,也大概是综合提炼做得最好的人。他们通常也带来大量的产品战略——我们今天在做这件事,但它如何与更大的目标衔接,因此我们如何做出正确的选择,确保走在正确的长期路径上。所以这是一个超级重要且有价值的角色。我是说,你刚才在通话中已经提到了几位优秀的产品经理,我认为 Stripe 的产品经理们体现了我在前面谈到的许多文化和运营原则,他们为我们所完成的工作做出了巨大贡献。
在工艺上精益求精
Lenny: 完美的过渡,正好引出我接下来要问的问题——你们的运营原则之一是”在工艺上精益求精”。我知道这是你非常重视的事情。我好奇的是,这听起来当然很好,每个人都希望这能成为自己工作的重点和核心价值观。但总会有一个权衡——我们总得尽快发布产品。我们怎么等到它完美呢?所以我想先问的是,你们是如何将这条原则落地执行的?然后我还有几个后续问题。
David Singleton: 很好的问题。在我谈这条运营原则之前,让我先交代一点背景——
Lenny: 好的。
David Singleton: 我们的运营原则到底是什么。Stripe 有运营原则,它们有点像企业价值观,但又不只是价值观——它们比价值观具体得多,远没有那么抽象。实际上,我们刚才在谈论 Stripe 早期团队。我认为他们做的最好的事情之一——当然他们做了很多了不起的事,找到了早期的产品市场契合——但最有远见的事情之一,就是稍微绕了个弯,思考了一下:我们迄今为止的工作方式中,有哪些我们认为促成了我们的成功,并且在我们继续扩张时依然重要。我们把这些提炼成了一套运营原则,所以——随着规模的扩大,我们把那些从最优秀的 Stripes 身上提炼出来的行为方式形成了一套运营原则。我们非常重视它们。我们在内部经常讨论运营原则。我经常看到 Stripes 在庆祝彼此的工作时,会用哪条运营原则得到了最好的体现来表述。我们的很多反馈流程也围绕运营原则来设计,虽然不全是。顺便说一下,我们的第一条运营原则是”用户至上”。所以在这次通话中,我们已经触及了不少关于如何将用户置于核心、理解我们到底应该做什么的内容。那种与用户建立深厚的个人关系来指导一切的信念,正是源自这条运营原则,也被它所概括。我们的运营原则还分为几个类别:我们如何工作、我们是谁,以及领导者必须执行的若干条。
比如,“我们如何工作”类的另一个例子是”带着紧迫感和专注行动”。我们深信,即使我们构建的是将存在数十年的基础设施,也必须相对快速地解决用户当下的需求,这样才能真正为用户创造价值。总之,运营原则涵盖了很多方面。你问到”在工艺上精益求精”,这也是一条关于我们如何工作的原则,在 Stripe 非常重要。你也提到了一个挑战,Lenny——要做精益求精,但又有那么多事情要做,我该在哪里精益求精呢?因为如果对一切都要精益求精,很多进展可能都会陷入停滞。好吧,首先让我讲几个故事。
摩擦日志
在我加入 Stripe 之前,我花了一些时间体验产品,这也是我决定加入的重要原因之一。有一件事让我非常惊喜——当我开始集成产品时,有些地方卡住了。我在 API 集成上犯了错误,收到了错误信息,但我并没有卡很久,因为 Stripe 团队做了一件事:我们让 API 返回的错误信息直接链接到文档中告诉你如何解决问题的那个部分。
Lenny: 太妙了。
David Singleton: 这就是一个”在工艺上精益求精”的绝佳例子。这在当时是非常少见的,当然现在也很少见——把 API 的错误信息做得这么好,谁会去看呢?但事实证明,开发者在构建过程中遇到问题时,是会去看的。而且这其实是一个高风险时刻,因为这是一个关键时刻。这就是我们在产品中精益求精的一个例子。
而我们如何确定在哪里精益求精、在哪里真正打磨细节、做到超越常规,方法依然是——尽可能做到以用户为先。我们有一个在产品团队中广泛使用的流程,甚至那些为 Stripes 内部构建工具的团队也在用,叫做摩擦日志(friction logging)。它的运作方式是:你需要把自己放在一个特定用户的立场上。你需要非常清楚地知道,我此刻在为谁模拟这个摩擦体验,这一点很重要。
比如,我可能正在集成 Stripe Billing API,我可以把自己放在一位 Atlassian 工程师的立场上——Atlassian 是全球最大的 SaaS 平台之一,目前正积极使用 Stripe Billing 来自动化所有收入流程——我可能会把自己放在那个人的心态中。我可能最近刚见过他,对他做这件事的了解比其他情况下更多一些。
David Singleton: 然后我会实际走一遍使用产品的完整流程——从控制台开始,跳转到文档中我需要参考的具体页面,开始编写代码等等,完成整个集成过程,同时非常仔细、非常认真地记录下整个体验。就是意识流的笔记,但会特别关注那些我遇到了摩擦、且我认为那个特定用户心智模型会觉得困难的地方。然后这些就是我们倾向于投入大量精力去认真思考”如何解决这个问题”的地方,并在打磨细节上倾注大量心血,把它做到位。
顺便说一句,我刚才给你举的那个错误信息的例子——实际上,Stripe API 处理那些边界情况的代码量,比主流程的代码还要多。我觉得这相当了不起。大多数人不会这么做,但事实证明,这不仅是我个人印象深刻的地方——当我与 Stripe 用户交流时,这也是他们最常提到、最让他们感到惊喜的产品体验之一。这是他们能更快采用 Stripe 的原因,也是他们持续采用其他 Stripe 产品的原因,因为他们知道这比做任何其他事情都更容易。所以这真的很重要。关键在于,我们对在哪些地方特别精益求精是有意为之的,一旦确定了这些地方,就会以一种相当系统化的方式去做。这本身也是一门好生意。
结账流程的优化与收入提升
举例来说,实际上就在今天早些时候,我们发布了一篇博客文章,介绍了我们一直在优化两样东西——一个是我们所谓的 payment element,这是一种”自带电池”的即插即用 UI 组件,可以直接在你的网站上嵌入支付集成。你可以对它进行样式定制以匹配页面的其余部分,但它本身已经包含了很多强大的功能。另一个是我们的一套托管服务,叫做 Stripe Checkout。这里的要点是,我们花了多年时间在网上审视了大量的结账流程,找出了所有那些有问题的边界情况,一直在这些产品上努力优化它们。而且我们不会止步于此——我们还一直在反复琢磨:在我们已经构建的流程中,还有哪些事情是可以减少延迟的、减少一次点击的,诸如此类。
我们发现——我们最近测量了这样的差异:一批真实用户从相当标准化的、自建结账流程的集成方式迁移到我们提供的这些界面上——无论是 payment element 还是 Stripe Checkout——结果发现,这使用户的平均收入提升了 10.5%。这个数字非常惊人。要知道在这个行业里,你做的那些小改动,甚至那些你倾注心血和汗水的大改动,通常带来的提升都是用基点来衡量的——也就是百分之一的百分之几。而我们这一系列小变化随着时间不断累积,最终叠加到了 10.5%,这非常了不起。关键是,你之所以能达到这个效果,是因为你知道这件事最终可能很重要,并且在过程中的每一步都精益求精,最终它复合成了一个巨大的影响。所以我认为这一系列体验正是这条运营原则真正发挥作用的领域。
正是对这些流程的思考,促使我们构建了 Link——这是我们的一款一键结账产品。它对我们的用户客户体验以及转化率等方面都产生了巨大的影响。所以这真的很重要。
网站与产品页面的精心打磨
还有一个领域我想提一下。我认为 Stripe 在网站、我们的很多营销页面和产品说明页面上投入了大量心血和关注,这一点大家可能都有所耳闻。对于我们这样一家公司来说,在这些体验的构建上做到极度精益求精,是否立刻就能看出意义所在——这一点并不那么显而易见。但我们确实这么做了,而且我认为这对我们和我们的用户来说都真的很重要。我们之所以进入这种模式,是因为我们意识到自己正在构建大量的基础设施。
我们构建了所谓的全球支付与资金网络(global payments and treasury network)。这实际上就是我们的产品基础设施——负责将资金转入 Stripe、代用户持有余额、将资金转出、处理不同企业之间资金流转的所有自动化流程,以及我们必须处理的所有监管相关事务,都在这个庞大的支付引擎中完成。但作为一个用户,你很难走进来亲自检查这些并判断”它到底好不好?“你也许可以去跟一批其他 Stripe 用户聊聊,但从外部很难了解。所以,如果我们用来解释这些产品价值和能力的体验本身在细节和用心程度上做到极致,这实际上能帮助我们的用户准确理解我们是如何为他们服务的。
我们网站上所有那些精益求精的做法正是由此而来的。我们有很多这样的特色功能——比如页面上有一个旋转的地球,展示你在不同国家可以使用哪些支付方式;再比如我们主页上那种大型动态波浪效果。总的来说,Stripe 在发布产品时常常会创造这些令人惊艳的互联网时刻。我们这么做是因为希望用户能够看到我们所投入的心血和关注。这在某种程度上带来了一个美妙的附带效应——这些体验往往会在 Twitter、LinkedIn 和其他平台上被大量分享,因为它们本身就值得一看——不仅因为它们很美,还因为它们经常推动了 Web 平台的技术边界。而这反过来意味着,那些自己也在推动互联网商业发展的人,就更有可能了解 Stripe、了解我们的能力。
所以在 Stripe,精益求精以各种不同的方式产生着实实在在的影响,我很享受在这么多不同领域以这种方式工作。
摩擦日志的实操流程
Lenny: 沿着这个方向我还有几个后续问题,但在此之前,我想深入聊聊这个摩擦日志的流程。
David Singleton: 好的。
Lenny: 想了解一下你们具体是怎么操作的。大概有两个问题:这是人们日常工作中的常规任务吗,不管是高管还是 PM 们?另外,有没有一个共享的模板——就像你刚才提到的,你是谁、你在什么公司、你想解决什么问题?你们在战术层面是如何将这个流程落地运作的?
David Singleton: 好问题。这个实践在通用场景下非常有价值。在很多地方都可以应用摩擦日志,来真正照亮最有效的投入时间和精力的方向。
我们在 Stripe 的很多不同职能和场景下都使用这个实践,但确实几乎每个产品团队都有一个人——通常是 PM,有时是工程经理——他会以一个定期循环的方式,走一遍产品的端到端流程并撰写一份摩擦日志。多年来,我每个月都会以一个新用户的身份走一遍 Stripe 的注册流程,写一份摩擦日志,然后标记公司里相关的负责人来处理我们观察到的一些问题。
退后一步审视的价值
David Singleton: 这种退后一大步的过程之所以有价值,是因为到了现阶段我们有很多人,有数千名工程师在并行工作。虽然每个人都非常重视在工艺上精益求精、注重细节,但各自的细节打磨可能会导致体验上的分歧。通过以固定的节奏、用摩擦日志的方式把所有内容放在一起审视,确实帮助我们在并行运作的同时保持了整体的协调一致。因此,高层领导、高管——我想说的是我们较大业务领域的负责人——通常也会亲自实践这个方法,以确保他们负责的所有内容都整合得很好。所以它实际上是递归式地在不同层级上发生的。
摩擦日志的模板
关于你问的有没有模板——其实流程相对简单。是的,有模板,事实上 Stripe 有一篇开发者文章,也许我们可以放到节目备注里,里面就有这个模板。但它的内容说白了就是:说清楚你想做什么,非常明确地界定你试图建立心智模型的那个用户是谁,因为这样能帮助你在走流程的过程中做出正确的判断。然后就是保持一个非常清晰的意识流日志,记录你在构建过程中发现的一切。
另外,还有一点非常重要——也要表扬做得好的东西。我经常把这些文档发送给公司里很多人。这是一个认可出色工作的绝佳机会。比如我碰到那个链接到文档的错误提示,我就会说,这个做得太棒了,干得好。
给团队留出改进体验的空间
Lenny: 作为一个曾收到过公司 CEO 发来他们在尝试预订时遇到的各种问题邮件的 PM,当时的感受往往是:天哪,我有那么多目标要达成,有这个时间线,有这些正在推进的事情,根本顾不上。你们的文化是怎样的?你是如何给团队空间去做那些”就是为了让体验更好”的事情的?你实际上是怎么操作的,才能让 PM 们收到这些问题时不至于压力山大?
David Singleton: 这要从我们的运营原则说起。因为我们的运营原则是用户优先和在工艺上精益求精,所以我们所有的规划方式实际上都很好地围绕这个理念构建——我们会预留足够的时间来真正把体验做好。也许最突出的例子甚至不是摩擦日志中发现的问题——稍后我们也许可以聊聊我们在可靠性方面的投入——但总会有出问题的时候。
有一点对我来说非常重要,那就是我们必须是一个学习型组织。我们需要理解为什么会出问题,然后采取行动防止同样的问题再次发生。这意味着我们会识别即时修复项——我们就是这么称呼的——并且仔细地对它们进行优先排序。其中大多数重要的修复项,实际上会优先于路线图上的其他工作被安排。也就是说,作为一个 PM,在构建路线图和计划时,你确实需要考虑:我大概需要在这个领域预留多少带宽,来处理摩擦日志中可能出现的问题,以及应对那些运营层面的事情?
这因团队而异,也因产品阶段而异。Stripe 并没有一个”预留 50% 时间做这些事”的统一规定,那样也没道理。但我们确实鼓励并要求每个团队认真思考:他们应该为这类活动预留多少时间。这样说合理吗?
Lenny: 完全合理。我本来想问你有没有一个固定比例,结果基本上就是你们信任团队自己去分配合适的时间。
David Singleton: 没错。
UX 评审实践
Lenny: 好的。沿着这个方向,我实际上问了 Shreyas Doshi 我应该问你什么问题。
David Singleton: 哦,有意思。
Lenny: 你肯定不知道我会这么做。他说我应该问问你加入 Stripe 后不久是如何做上线前 UX 评审的,而且他说你在这方面非常擅长。具体是什么样的?别人可以从你的经验中学到什么?
David Singleton: 我在 Stripe 早期做 UX 评审的方式,以及 Stripe 各个团队至今做这类评审的方式,其实运用了我们刚才讨论过的一些方法。摩擦日志这个实践,很多时候是异步进行的——有人会坐下来留出一个下午,走一遍产品并做详细的记录,这非常有用。
但我们同样觉得一起走一遍这个流程非常有价值。所以我们会把构建该产品的团队召集起来,同时也会请很多跨职能的合作伙伴参加。比如负责处理用户相关问题的支持人员,以及该团队所属组织中的高管,一起来做这些走查——我们采用的是与摩擦日志完全相同的方法:想象我们是某个特定的用户,一起去体验产品。然后非常开放地讨论。我们现在的做法是:我们有一个要讨论的问题清单,任何人都可以在 PM 通常边走查流程边演示时往里面输入内容。最后我们会聚在一起,逐一讨论每个问题——这个需要解决吗?我们到底怎么看?这就是我早期采用的方式,也是我们如今大规模推广的方式。
一起看产品的价值
一起做这件事有很多好处。有人曾经这样跟我描述:如果你是厨师,你会去尝那碗汤,然后和你的厨房团队讨论汤里放了什么、哪些地方好、哪些地方不好。如果你经营一家电影公司,你会坐下来和大家一起看很多电影。所以,一起看产品,我觉得这件事非常有活力,而且在传达我们对工艺的标准、以及我们希望产品在大规模、跨公司的层面为用户如何协同运作的价值观方面,也非常有价值。
在此基础上,我们偶尔还会做一件事——我在 Stripe 偶尔也做过——叫做”走访一线”,我们会和全公司一起看产品。我们有一个每周例会叫 Friday Fireside,不是必须参加,但公司大多数人都会参加。我们做过几个系列,会一起走一些非常关键的产品流程,讨论这些流程如何体现我们的各种优先事项和试图推动的转变,但核心始终围绕用户体验和特定用户。事实证明,这在帮助所有人建立共同语言、对齐认知方面有着巨大的价值。
这些大概就是 Shreyas 想到的一些方法。
Lenny: 令人惊叹的是,你们从这么多不同的角度来追求高质量的最终产品——走访一线、摩擦日志、全公司一起看产品的会议、UX 评审。这就是为什么你们能构建出如此高质量的产品。光有一个”我们要做伟大的东西”的价值观是不够的,你必须从那么多不同的维度去推进才行。
价值观需要实践落地
David Singleton: 是的,这是一个很有意思的观察。我认为几乎你谈到的任何东西都可以被称为一种价值观。我是说,拥有价值观很重要,但你需要有相应的实践支撑,才能让这个价值观对每个人都变得真实可感。所以我们非常频繁地发现,对于任何产品开发团队,只要他们确定了能够真正代表他们想为用户交付的体验的正确指标,然后定期、可预测地聚在一起看团队在这些指标上的表现,其他一切就会自然而然地发生。因为你清楚自己要推动什么,你在自己的时间优先级中做出的每一个微决策,以及你实际在做的每一项工作,都会向上对齐到那个目标。所以我为什么这么说呢——你必须有一个可预测的、定期的机制,向上对齐到你想要交付的价值,才能真正让它落地。
如何准备 UX 评审
Lenny: 回到 UX 评审的话题,有一个问题想问。向 CTO 做这样的评审汇报通常压力很大。你会给产品经理、设计师和团队负责人什么建议,来准备这样的会议?无论是在 Stripe 还是其他公司?
David Singleton: 我个人尽量让自己尽可能友善、不那么令人紧张,但我知道不管我怎么做,这类会议的压力感是无法完全消除的。在 Stripe——我认为大多数公司大概也是如此——但至少在 Stripe,核心要诀是换上用户的视角。如果你充分理解你的用户,理解他们希望从体验中获得什么,然后在被问到任何问题或感到不安时——比如”这个问题猝不及防”——把它拉回到”记住我们正在为用户做什么”,通常就能让任何这样的会议进展得非常顺利。这是我最主要的建议。
在任何公司中,随着你管理的团队越来越大,都会存在一个风险——个人贡献者(IC)总体上与你直接交流的时间非常有限。所以总有一种风险:你可能做了一个相当无关紧要的评论,但它被脱离上下文解读成了非常重要的指示。因此我个人也非常努力地将自己的反馈锚定在”我们想要交付的用户体验是什么?这件事真的重要吗?“——承认这个风险的存在。是的,这确实需要持续不断地练习。
构建更好产品的建议
Lenny: 你已经涉及了其中一些,但如果有人想提升自己构建产品的能力——不管是产品经理、设计师还是工程师——你通常会给出什么样的建议来帮助人们构建更好的产品?
David Singleton: 几乎总是回到我们这里已经谈过的那些东西。还记得最开始我谈到的与用户紧密迭代吗?如果你有一个倾听用户的机制,能很快把东西交到他们手上,然后获取他们的反馈,形成反馈循环,你就不太可能走偏。尤其是当你花了很多心思确保这些是正确的用户——他们的需求与你的战略对齐——那么这个反馈循环如果运转良好,实际上很难出错。
如果你没有这样的反馈循环——实际上,当我和行业内各家公司的人交流时,令人惊讶的是,在产品开发周期中这种反馈循环不存在的情况非常普遍。如果你还没有,那就去想办法建立它;如果你已经有了,但从你产生”这可能很重要”的想法到获得用户反馈之间,无法非常快速地把东西放到用户手中,那就想办法加快这个过程。在 Stripe,我们在所有开发者工具和基础设施上投入大量精力,使得变更能够持续交付到生产环境,这样我们就能非常迅速地将它们呈现在用户面前——这非常重要。
(赞助商广告段落已跳过)
深入一线与 Engineercation
Lenny: 我听说过关于你的一点是,你会深入到非常细节的层面,作为 Stripe 这种规模公司的 CTO 真的会钻到很深。我接触到一个词叫”engineercation”,我想它和这一点是相关的。你能谈谈这个吗?你怎么看待深入一线这件事?
David Singleton: 首先,关于深入细节有多重要这件事。在 Stripe,我们发现这对工程经理尤为重要,但实际上对所有管理者来说都很重要——他们需要对团队是否走在正确的轨道上、在哪里遇到了阻碍有一个非常详细的了解,以确保我们能在单位时间内为用户取得最大的进展。我们发现,同样地,我们所解决问题的性质非常奖赏领域专业知识的积累,即对事物的深入理解。我们要求所有管理者成为团队计划的主编。而我认为做到这一点的唯一方法就是为自己建立正确的信息循环,去真正了解一线实际在发生什么。
当然,如果我每天都在做 IC 工程师级别的工作,那会非常有害——那不是一个能够帮助引导团队的人该做的事。所以重要的是要有选择地、在合适的节奏下去做。我认为这非常有价值。
Engineercation 是我个人会做的事。它显然是 engineer 和 vacation 的混成词,但它绝不是假期。至少我对这个名字的理解是——你在 engineercation 上做的事情是:我会连续腾出几天时间,实际上是三到四天,加入一个团队,领一个小任务——希望是一个我们能从头到尾完成并上线生产环境的小功能——按照团队完全一样的体验来做这件事。这样你就能了解开发者工具、构建基础设施、代码如何被审查、文档质量如何、我需要等多久才能看到自己的东西上线,才能启动我之前谈到的那个与用户的反馈循环。你实际上是去加入一个团队,做真正的工作。
摩擦日志的价值
David Singleton: 在做这件事的过程中,保持记录摩擦日志是非常有价值的,因为你要把这段体验写下来,一方面作为自己的备忘——它帮助你在接下来一整年里参与的各种权衡决策和优先级讨论中有所参照,这些上下文确实很有帮助。所以我实际上会定期重读这些报告。同时,把这份工作成果分享给团队也非常有价值——这表明你理解一线实际是什么体验,以及我们打算如何把这些信息融入优先级排序中。这就是你做的事。不过说回来,做这件事最难的往往是腾出连续几天的时间。之所以我把它类比成假期,当然人们都去度假。
顺便说一句,我每年都很努力把所有年假用完。我认为休息一下、重新充电创造力是很有价值的。关键在于,你度假的时候,世界照常运转,一切都没问题。所以我也用同样的方式——我会推掉所有会议来清空日程,切换到创客日程(maker schedule)来做这件事。我在 Stripe 做过很多次。我建议 Stripe 的工程经理们在入职后的头三到六个月内做一次 engineercation。这能让你获得大量关于团队实际体验的上下文,然后对于持续每年做一次的人来说,它持续提供大量的上下文。
如何跟上技术变化
Lenny: 这太不可思议了。我从来没听过这样的流程。你怎么保持对基础设施和代码的知识和了解?毕竟你要亲自写代码,而一切变化得那么快。
David Singleton: 这个流程恰恰就是为了帮你做到这一点的。我刚才解释时可能遗漏了一点——我们通常会在团队里指定一个伙伴来带你完成整个过程。值得一提的是,在 Stripe 我们大量使用 Ruby 编写代码,同时也写很多 Java、TypeScript 之类的语言。但我们的核心基础设施,也就是核心产品基础设施,大部分是用 Ruby 实现的。我刚加入时从未写过一行 Ruby,而我知道自己想做这件事——实际上在加入之前也做过类似的事情——所以我很害怕:如果我去了却写不出一行 Ruby,会失去多少公信力。但我的第一个伙伴是一个叫 Ajhja 的人,他现在还在 Stripe 做得很出色。在那三天里他帮我学了 Ruby,他们(有些听不清)了我一下,但最终大家都非常感激我做了这件事。
Lenny: 想象一下那个不得不审查你 PR 的工程师。
David Singleton: 我告诉他们,这是流程中很重要的一部分。请不要对我有任何区别对待。当然,要让这件事运作良好,你必须先设定期望——如果有些东西不是你想要的样子,不要对我采取什么行动。这是一种纵向的、以建立共识为目标的过程。
意想不到的发现
Lenny: 在这个过程中,有没有什么让你感到特别意外或有趣的发现?过去几年里让你印象深刻的?
David Singleton: 我遇到的最有趣的事情之一是:随着规模扩大,我们都知道在自动化上投资是很有意义的。但在我们的开发流程中有很多地方,虽然我们做了自动化,但大家仍然在努力互相帮忙——比如说,如果你想用某个东西,请去找那个团队谈。而如果你和另一个人在不同的时区工作,往往更好的做法是把它好好文档化、自动化,然后也许把咨询渠道开放出来就行。所以碰到这类摩擦点,然后围绕它展开好的讨论,确实很有帮助。但 Stripe 的一个好处是,这类改进并不依赖于我去做什么。
开发者生产力投资
我们真的很重视让 Stripe 成为工程师们能做出职业生涯中最好工作成果的地方。这意味着要为他们配备好的工具和良好的开发者生产力。所以我们在开发者生产力上投入很大。我们有一个专门负责开发者工具的团队,他们运行的正是我刚才描述的那套产品开发流程——只不过服务对象是内部用户。也就是:深入了解你的用户,频繁地与他们交流。比如,我们每月做一次调查问卷。我们的规模足够大,每月可以抽样足够多的人,从而获得具有统计显著性的全组织样本,而不需要每个人都回复。每个人每六个月只需回复一次。我们非常直接地问:你的体验如何?然后我们用这些结果来确定开发者生产力团队的工作路线图优先级。我们也会度量一切——我们知道人们在哪里卡住了。当我们把自由文本回复和数据结合起来看,就能帮助我们投资在最能让所有人更高效的地方。
Lenny: 好,这正是我接下来想聊的方向。让我铺垫一下这个问题。我最近看到你的一条推文——我这里有些笔记,我直接念一下:你们平均每天向核心 API 部署 16.4 次变更,正常运行时间达到了 99.999%,而此时此刻,全球每十个人中就有一个曾与 Stripe 驱动的企业进行过交易。所以我的问题是,要实现这样的成果需要什么?尤其是在工具、文化以及你刚才谈到的那些方面?
可靠性与持续变革并行
David Singleton: 我认为值得先说一点:在 Stripe,我们正在做的事情我认为是相对独特的。我们为在 Stripe 上构建业务的企业——也就是我们的用户——提供的服务,对他们来说是真正关乎业务存亡的。我们说的可是流入你企业的真金白银,帮助你维持运营、甚至让你的运营成为可能,也许还包括给你的员工发工资等等。以及我们围绕账单订阅做的所有收入自动化,我们的财务自动化产品,帮你完成月末结账——这些东西容不得差错。同时,Stripe 如今的资金流动规模,已经相当于 Stripe 刚创立时整个电子商务的总和。所以我们在极其关键的规模上运营。面对这种既关乎业务命脉又涉及巨大规模的局面,我们对用户有着巨大的责任——要把事情做对,为他们提供极致的可靠性和可用性。
所以我们确实对此深思熟虑。当然,要做到非常可靠有一种方法,那就是尽量少改动。永远不改动任何东西,出故障的机会就少得多。但我们没有采用那种方法。用户的需求在快速演进,我们服务他们的方式和能够服务他们的方式也在快速演进,因此我们能否在一个持续变化的环境中运作就至关重要。希望我已经解释了为什么这很重要——比如之前说的那种反馈循环,因为只有当你能把东西真正交到用户手中,反馈循环才成为可能。所以我们选择设计我们的工作方式,同时做到这两点。这确实需要大量的心血和关注,也需要大量的系统支撑。也许我来逐步展开说一下。
开发流程与自动化测试
David Singleton: 首先,我们的开发流程以及将变更推入产品的方式中,有很多设计使得这一切成为可能。其中一点是我们非常重视拥有高质量的测试套件。所以我们坚信自动化测试。我们没有手工测试人员,因为手工测试人员不可能覆盖我们提供的海量 API 端点和配置组合,但自动化测试可以。因此我们努力构建大量的自动化测试覆盖,然后每一位工程师提交的每一项变更,在甚至有可能进入生产环境之前,都要先经过这套测试的全面检验。然后我们在变更最终进入生产环境的过程中,会将其置于越来越接近真实、覆盖面越来越广的环境中。所以我们有多个预发布(staging)环境,在那里运行一组更真实的端到端测试。最后当某个变更真正上线时,它会从极小比例的流量开始,逐步扩展到全部流量。
这样我们就能在问题变得严重之前发现它们。为了实现这一切,我们需要做很多事情。比如说,Stripe 工程师提交的每一项变更——通过测试之后——实际上会在大约 45 分钟内自动进入生产环境。我认为没有多少金融服务公司是这样运作的,至少在最近几年之前没有。这需要一种思维上的转变。你必须默认变更会自动上线,并为此建立正确的系统和流程。另一件重要的事情是,我们必须专注于系统性地提升应对各种故障的能力。我之前提到过,成为持续学习的组织对我来说非常重要。
故障应对与事件响应
当然,还有一点也很重要——事情总会出错。有时候是某个下游合作伙伴出了故障,有时候是我们控制范围之外的网络中断,诸如此类。所以问题在所难免。因此我们必须建立正确的系统,将任何单个故障造成的损害降到最低。我们在这方面下了很大功夫。我们在很多地方部署了冗余系统,我们仔细考虑如何确保一个用户的故障不会波及其他用户,而且当问题发生时,我们会非常积极地去修复。这在大多数公司包括 Stripe 都叫做事件响应(incident response)。我认为 Stripe 在事件响应方面做得非常、非常好。我们有很好的工具,既能快速声明事件,又能迅速召集合适的人员来解决问题。
但我们不止步于此。我们非常认真地复盘每一次事件,不仅找出”怎样才能阻止这一次事故发生”,更要找出”怎样才能在未来预防这一整类问题”。正如我之前所说,我们把处理这些问题的优先级排在路线图上其他一切事项之上——记住我们正在做的事情有多么重要,如果我们做不好这一点,就无法为用户快速推进。这就是我们的做法。
持续改进与混沌测试
顺便说一句,我不想给人一种我们已经把一切都搞明白了的印象。当然,所有这些都始终在不断演进之中。我们总是在努力思考如何做得更好。比如近年来我们意识到,从所谓的混沌测试(chaos testing)中可以获得很大的收益——也就是主动注入错误,确保系统在出现故障时不会对用户造成影响。所以我们一直在不断演进,也非常乐于向其他公司学习,向我们的用户学习。这是我们非常重视、并且以极其严谨和系统化的方式去思考的事情。
Lenny: 你是说从推送代码到进入生产环境只需要 45 分钟?
David Singleton: 通常是的。我刚才描述的那套测试,会在每一个变更上运行,而且它和你提交给另一位人工审查的过程是并行进行的。所以它会先跑一次,通常需要大约 15 分钟。然后一旦变更被合并到我们的代码库中,我们会再运行一次同样的测试套件,又是一个 15 分钟。之后通常需要大约 30 分钟让系统自动部署到生产环境。这就是我们的运作方式,也是我们思考如何与用户建立紧密反馈循环的方式——这意味着你可以在早上收到用户反馈,当天就能想出解决方案,并且在当天结束之前就把改进交到用户手中。我认为这个在 24 小时内完成的循环是非常重要的。
Lenny: 这太厉害了。我记得在 Airbnb 的时候,测试跑完要好几个小时,因为数量太多,他们后来慢慢优化了。但我习惯的量级更接近那种。
David Singleton: 保持这个数字需要持续不断的努力。顺便说一下,这些数字很重要,对于我们这种规模的公司来说,这个量级大约是合适的。当然,随着你增加更多的功能,你就会增加更多的测试。所以我们不得不发明一些机制来让测试更多地并行运行。我们现在有一种叫做选择性测试执行(selective test execution)的机制——对于那些在进入生产环境之前必须跑的完整测试套件,我们会在更多的机器上并行运行所有测试。但对于针对单个变更运行的测试,我们实际上有系统能够判断:哪些测试对这个特定变更是真正相关的?这已经成为一个真正的创新来源。事实上,Stripe 的分布式变更与测试环境是我们实际运行的最大分布式系统。运行它所需的精力、努力、严谨和工艺,与运行其他一切系统是一样的。
开发者生产力的提升
Lenny: 你们做过的哪些事情对开发者生产力的提升影响最大?
David Singleton: 我们之前已经提到过几个了。那个自动部署机制确实产生了非常大的单独影响。在我们引入它之前——大概是在过去五年内的某个时候——每次部署到生产环境都需要一位工程师实际盯着它,看着它上线,确保所有监控图表看起来正常。这有点像轮盘赌,因为你总希望自己的变更能跟别人的变更捆绑在一起,这样别人就会替你盯着。所以能够做到——你的变更上线的同时你的手指已经在键盘上写别的东西了,而且变更会被自动监控——这对我们的生产力是一个巨大的提升。还有一些非常小的改变也起了作用。这就像优化结账流程一样,非常小的改进也能累积产生巨大的效果。比如大约八个月前,我们做了一个改进——我们使用的代码审查工具是 GitHub Enterprise,这在业界很流行,但我们在它之上构建了很多自己的体验和控制功能。我们在 PR 上加了一个小复选框,叫做自动合并(auto merge),意思是:一旦审查者说这个变更没问题了,我不需要再回来看它,系统就会自动接管。这仅仅砍掉了一个让人分心的人工步骤,但它叠加起来对生产力产生了很大的变化。所以如果你刻意去做,这些非常小的改进能够逐步累积成巨大的影响。
AI 对产品构建的影响
Lenny: 我现在想换个方向聊聊。AI 现在非常火。AI 是否已经影响了你们构建产品的方式?如果还没有,你认为未来几年它会从哪里开始切入?
David Singleton: 我们对 AI 非常兴奋。先退一步说,Stripe 从很早期开始就在产品核心使用了机器学习和高级机器学习技术。Radar 是我们的支付欺诈解决方案,它是我们产品线的核心,从推出之初就使用了机器学习。另外,考虑到 Stripe 的业务性质,我们需要在系统中做大量工作来识别不良行为者——欺诈分子或欺诈性商家。因此我们多年来一直在这些领域大量运用机器学习技术,没有它们公司根本无法运营。所以 ML 和 AI 之间的区别在于——当我们今天谈论 AI 时,主要是在说大语言模型的应用,而这些模型实际上基于一项叫做 Transformer 的新技术。这源于 Google 几年前发表的一篇论文,大约四五年前。我们在一年多前将 Transformer 技术融入了那些系统,事实证明它对我们为用户解决这些问题的能力产生了非常深远的影响,这非常好。
但我们同样对大语言模型的应用感到兴奋。这实际上有两个维度。第一,我们感到荣幸能够帮助和服务大量在这个领域创业的企业。AI 初创公司和其他公司之间一个很大的不同在于,运营一家 AI 初创公司在计算资源方面其实相当昂贵——在这些 GPU 机器上运行这些模型的成本很高。因此这类公司通常需要从第一天起就有变现模式。我很高兴地说,大多数 AI 公司都在使用 Stripe,我们也在非常努力地确保满足它们所有的需求。比如 OpenAI 使用我们来变现 ChatGPT Plus 和他们的所有其他产品。而且不止于此,我们实际上还在帮助它们支撑所有的订阅、收入追踪以及围绕业务的财务运营。这里的关键在于,我们多年来一直在这些东西上投入了非常大的工程团队,这意味着任何想要自己构建对账产品和订阅商业模式的人,都需要投入大量工程团队。但如果你能用 Stripe,你就可以把那些非常宝贵的工程资源集中在这个领域日新月异的创新上。所以我们对这一点感到兴奋,同时我们也对将这些 AI 技术应用于自身、更好地服务用户的能力感到兴奋。比如在 Sessions 大会上,我们会展示其中几个案例。
我们在 OpenAI 还处于 beta 阶段——年初时 GPT-4 的私密 beta——就开始与它们合作了。我们首先想到的是,Stripe 有大量的文档,我们在让文档做好这件事上倾注了大量心血。但如果你想在 Stripe 集成中实现某个目标,通常需要花相当多的时间阅读文档并作为终端用户去综合理解它们。我们意识到可以让 GPT-4 阅读我们所有的文档,将它们存储为嵌入向量(embeddings),然后为开发者回答问题。所以现在我们的文档中已经有一个早期版本的发布,事实证明相当有价值。我们还能够将这些技术应用到产品的其他领域。我们在 Sessions 上会展示一个早期版本——在我们的收入和财务自动化套件中,有一个非常强大的产品叫做 Sigma。它允许你对所有 Stripe 数据编写 SQL 查询,这样你就可以精细地检视你的 Stripe 数据来理解你的业务。哪个国家的销售增长最快,哪个国家的哪个细分市场有什么特征——非常强大的产品。但对于非开发者来说,采纳它可能有一定挑战。你确实需要知道如何编写 SQL 查询,除非你只用菜单里预设的那些,否则无法获得这个产品的全部价值。而事实证明,借助大语言模型,我们可以应用这项技术让你用自然语言提问,我们的引擎会实际为你编写 SQL 查询。我们做了大量工作来调优它,确保它可靠且可理解,进展非常顺利。我们也在将这些技术应用于提升内部效率、更快回答用户的问题、更快地互相帮助方面看到了很好的前景,这些我们也在做。
有一件具体的事情让我很兴奋——在 ChatGPT 发布后不久,我们意识到如果能将它应用到 Stripe 内部的许多场景中会非常棒。但正如你可以想象的,我们日常处理的很多数据对业务和用户来说都非常敏感,我们对此非常重视,围绕这些数据有大量的治理机制。但我们想让这项技术变得可用,我们不能直接说”嘿,Stripes,去用 ChatGPT 吧”。所以我们搭建了一个与 GPT-4 的集成,以及一个内部 UI 来使用类似的模型。但我想向所有观众分享的一点是——我们在这个工具中内置了预设(presets)。在使用大语言模型时,你需要编写一个提示词(prompt),帮助模型进入一个能够解决当前特定问题的状态。我们发现编写提示词这件事对许多不同岗位的人来说都是可以上手的,不仅仅是工程师。我们市场团队的同事、用户支持团队的同事也都能使用。而且你可以在提示词上投入大量心血,让它效果非常好。我们让它可以在全公司范围内共享。所以我可以抓取一个帮我以正确语调撰写博客文章的预设,我发现它对我和公司里许多其他人来说都非常有价值。所以我认为,目前在企业服务用户和运营方式上有大量的创新可能,我们正在代表我们的用户努力运用所有这些创新。
Copilot 与工程师生产力
Lenny: 那作为工程师呢?你们对 Copilot 持什么态度,有没有类似方向的东西你们觉得有用或有所顾虑的?你怎么看待这个问题?
David Singleton: 我们对 Copilot 感到兴奋。我们已经把 Copilot 提供给内部工程师使用了。我们进行了相当严格的试验,确保我们对它在实际提升代码编写能力方面的效果、以及它生成的代码质量感到满意,结果发现它对我们非常有效。不仅在生产力方面,也在帮助工程师感觉他们可以将精力投向更大的问题——这些东西应该如何组合在一起——而不是那些微观问题上。因为我们收到了非常好的反馈,所以我们在内部非常广泛地开放了它,我们也非常期待看到这个领域未来的发展。
Lenny: 你对生产力提升有没有一个感觉?比如说你有很多 10 倍工程师,一个顶尖工程师从 Copilot 中获得的收益,和一个较新的工程师相比如何?
Copilot 的实际效果
David Singleton: 说实话现在下结论还为时过早,因为我们最近才大规模开放使用。我们通常看到它加速的是这样一类任务——记得我提到过我们在构建全面测试套件上投入了多少精力。实际上,用 Copilot 来生成测试用例,效果极其出色。编写好的测试需要大量重复的模板代码和相似的概念,但你也必须非常仔细地思考:这到底是不是在测试我想要的东西?Copilot 帮你省去了大量模板代码的生成工作,让你真正去思考那些至关重要的问题。我认为这也会对我们所写代码的质量产生深远的影响。但现在说这些还为时过早,因为我们刚刚推出不久,还很难衡量它的实际影响。
Lenny: 我跟一位工程师聊过,他就说,我喜欢亲手写代码,现在这东西替我写了,让我有点难过。所以他就把它关掉了。我觉得随着时间推移,人们会想:“嗯,说得也是,那部分我本来也没怎么享受过。”
David Singleton: 对,说说我的个人体验吧。我热爱写代码,真的非常热爱写代码,这基本上就是我的娱乐方式。但我也很喜欢用 Copilot 写代码,因为就像我说的,它意味着我可以把注意力集中在那些真正重要的部分。我觉得这在 Stripe 内部是一个相当一致的体验。
管理大规模团队的心得
Lenny: 太好了。你管理着一个庞大的工程团队。我不知道你有没有公开过工程师的具体人数,但我知道人很多。这是一个很宽泛的问题——关于管理人员或者说管理工程师,你有哪些经验教训?方向随你选。
David Singleton: 哇,大问题。可以谈的方向太多了。我分享几个观察吧,它们不一定有一个统一的主题。随着我负责的团队越来越大,我反复学到的一件事就是:我个人实际上不会参与到任何真正重要的决策中去。一个组织每天都在做出成千上万的决策,每一位工程师或 PM 每天都在做上百个小决策和一些大决策,这些决策影响着整体的走向。
最重要的事情是真正把重心放在招聘上——雇佣正确的人,这意味着雇佣那些你能够赋予极大自主权的人。如果我试图介入大量决策,一切都会陷入停滞。怎么做到这一点?显然,严格把关很重要,我们前面已经描述过我们的招聘流程了。我非常注重在招聘过程中非常深入地了解候选人。顺便说一件我之前没提到但我觉得很重要的事——在 Stripe,我们在招聘过程中非常重视推荐信和背景调查。
这通常在流程的后期进行。但如果你让一个人经历了整个面试流程,你总共大概跟他相处了八个小时吧?而如果你跟他以前共事过的人交谈,你实际上是在利用数千小时的直接经验。我们对此非常认真,我们会努力提出巧妙的问题,从中获取真实的信号。我确实发现,当涉及到那些后来产生了变革性影响的人选时,推荐信往往是让你对是否录用产生最强信念的时刻。
招到正确的人,然后你就要信任他们。不过,信任这件事很有意思。信任一个刚招进来的人其实相当困难,对吧?毕竟你对这个人还没有什么依托。我的经验是,你确实需要在开始时慷慨地给予信任,默认先选择信任。然后你需要让人们承担足够的责任,让他们证明自己能够驾驭这份信任。有时候,这意味着把一个你认为很可能最终能胜任重要角色的人,先放到一个较小的岗位上。其他时候,你就是有一个需要填补的大角色,那你就要非常自觉地去信任和委托,同时给予大量支持。
我一直在努力委托——有时甚至超出了我感到舒适的程度——因为这是在相当规模下运营的唯一方式。我想说的另一点……抱歉,这真的是一盘大杂烩,各种各样都有。
Lenny: 很好。
David Singleton: 随着我所负责的组织不断壮大,我意识到的另一件事是,你必须极其自觉地管理自己的时间。有几百甚至几千人,完全有正当理由想占用你的一些时间。如果你任由收件箱里涌入的东西或日历上排好的事情来决定你把时间和精力花在哪里,那结果将是随机的。很有可能这些事情并不会累积成最大的影响力。我个人大概十年来一直在运行一个循环——每周日晚上,其实通常从周日下午就开始了,我会阅读上周发生的很多事情。
然后在周日晚上,我会给自己写一个清单——你在这个播客里问了我一个问题,就是从我的角度来看,什么算是这期播客的巨大成功?
我每周日晚都会为自己的那一周做同样的思考。我列一个清单:如果我们这周完成了这些事情,那就是一个好星期。当然,我们需要保持灵活,一周中总会有意外情况出现。但说真的,这个清单很大程度上决定了我决定把时间花在哪里。我尝试鼓励组织中的每个人都这样思考,我认为这确实能随时间累积成更大的影响力。我想说的最后一件事是——我提到过运营原则(operating principles)对文化有多么重要。我认为对于任何管理者和领导者来说,也包括个人贡献者(IC)PM,你如何出现、如何表现,真的会塑造你身边的文化。
我非常努力地每天都保持一致的呈现方式,即使经常会有各种出问题的事情、糟糕的事情、困难的事情。保持前后一致其实非常重要。当然,要与我们所持有的所有价值观和我们想要建立的文化保持一致,从而在规模上真正树立榜样。不同的日子,这有容易有困难。最后一件事是,我认为管理好自己的精力也非常重要。
有些任务可能不是最重要的,但我知道我能从中获得很多快乐和能量,然后这种能量会延续到其他需要完成的事情上。
关于规划与优先级排序
Lenny: 在进入非常精彩的快问快答环节之前,我还有两个问题。第一个是——我感觉 Stripe 在规划、组织和优先级排序方面做得极其出色。我知道每家公司内部都没有外部看起来那么光鲜,但你觉得你和 Stripe 在规划和优先级排序方面学到了什么,是其他公司可能缺失的?
David Singleton: 是的,你这么说很有意思。我会说 Stripe 内部的规划并没有你想象中那么高的净推荐值。但我确实认为它实际上非常有效。顺便说一下,我认为 Stripe 的规划方式之所以在内部口碑不是最好的,原因在于我们增长非常迅速。这意味着几乎每次我们重新进入规划周期时——这也是 Stripe 的一个主题——我们都会从第一性原理出发重新思考许多内部工作方式。
我们通常不会默认直接拿来其他公司运行过的、或者我们之前用过的现成体系。我们会认真思考,结合我们正在为用户做的事情,这件事应该怎么做?即便是从第一性原理出发思考时,我们也经常会走出去和许多其他公司交流,从他们的经验中学习。这其实是我在 Stripe 非常欣赏和享受的一点。我在这里学到的东西,很大一部分不仅来自公司内部的人,还来自许多我们有幸密切合作的伙伴——因为他们的业务构建在 Stripe 之上,或者他们与我们处于相似的规模阶段。
一个很好的例子是 Amazon。Amazon 是 Stripe 的用户。因为与他们的合作关系,我加入 Stripe 的前几周就见到了 Charlie Bell,他当时负责 Amazon 的运营。我们现在在 Stripe 做的很多事情,都是从那段经历中学来的。这并不是说”哦,因为 Amazon 这么做过,我们就照搬”。我们会和他交流,也会向许多其他公司学习。关键是我们重视从他人那里学习,然后加以应用。
规划的核心方法
回到规划这个话题——因为我们倾向于从第一性原理出发深入思考,而且一直在快速增长,所以对我们公司来说正确的规划流程实际上在这些年里发生了非常显著的变化。我们每年会以较深的方式做一次规划,然后在年中以较轻的方式再做一次。你可以想象,如果每年做一次,而且你在快速增长,你就会想要重新审视具体怎么做。我觉得对于有条件反复运行同一套规划流程的人来说,你可以不断迭代和调优。而我们不得不随着推进做出更加刻意、更加大刀阔斧的变革。我们做法的核心有几件事。第一,非常重要的是要明确你在任何产品领域中所服务的用户是谁?在计划中把他们的需求放在首要位置非常重要。另外,Stripe 有一件事,它不算反常规,但在业界也不是最常见的做法——我们非常努力地服务于从极小到极大的各类企业。从那些通过 Stripe Atlas 刚刚起步的人,一直到跨国公司、财富十强、甚至财富榜首的公司。
这些企业之间的用户需求差异非常大。因此在任何领域,每个团队都需要明确自己服务的是谁。然后我们运行一种类似倒 W 形的流程。通常先由各个团队提出他们认为最重要的事项。然后一组产品负责人会聚在一起,尝试将其最重要的部分综合成一份公司整体战略草案,再把它带回各个团队,让他们思考:“如果那是我们的大方向,我的计划是否需要调整?”
我们再把它收上来做综合,然后再分发下去,让每个人都能带着充分的上下文在各自的团队中传达。我们发现以我们目前的规模,这种方式非常有效。
Lenny: 我还没提过这个,但实际上我的 newsletter 也在用 Stripe,我一天要查看好多次 Stripe 的应用,所以我大概属于”财富第一百万强”之类的级别。
David Singleton: 你有什么反馈吗?说真的,我很想听听你对 Stripe 的反馈。
Lenny: 挺好的。应用告诉我我……
David Singleton: 不不不,别告诉我们”挺好的”。有什么让你烦的?
Lenny: 关于流失率、按同期群(cohort)留存率这些,我非常在意,用于 newsletter 分析时,我其实用的是另一个工具,它给我的感觉是能更好地呈现一张按同期群显示多少人还在的表格。Stripe 在同期群留存指标方面还有提升空间。
David Singleton: 好。也许我们可以邮件聊聊这个。在 Stripe,我们确实非常重视——每次和 Stripe 用户交谈,我们都在寻找反馈,任何场合都是如此。我们经常把用户请到周五炉边谈话的开场环节——我之前提到过——我们总是会向他们征求反馈,而且我们真的、真的希望据此采取行动。
展望 Stripe Sessions
Lenny: 我希望我能有更多反馈,它真的很好用。最后一个问题,Stripe Sessions 马上要开了,在这期节目播出之前就会举行。大家应该关注什么?Stripe 的下一步是什么?
David Singleton: 我们在这次通话中已经谈到一些将在 Stripe Sessions 上首次公开发布的内容。按照我们的开发流程,这些功能已经在一些 Stripe 用户手中使用了相当长的时间,我们和他们一起精心打磨。我对下周将要分享的许多内容感到非常兴奋。其中一个是我之前提到的收入与财务自动化套件。
我们已经花了不少时间精心打造其中的功能。这也是一个非常好的例子,说明与用户紧密合作确实有助于大规模构建产品。我们有一系列功能是与 Atlassian 和 CloudFlare 这样的公司合作开发的,帮助他们在 Stripe Billing 上运行业务。他们的模型相对复杂。比如,你可能签了一份第一年有折扣的合同,第二年又有一个新产品在使用,第三年又会出现其他情况。现在你可以在 Stripe Billing 中对所有这些进行建模,我们将在下周的 Stripe Sessions 上展示如何在控制台中实现。
这将面向所有 Stripe 用户正式发布(general availability)。它让我们的所有用户——从极小到极大——都拥有世界上最优秀的 SaaS 平台才具备的能力。对此我很兴奋。另外还有一件事我们在这通电话中没有谈到:Stripe Connect 是我们面向平台和市场(marketplace)的产品。请允许我花一点时间说说,这是一个非常好的例子,说明在一个领域聚焦用户需求如何把我们带入了一个对许多其他领域用户来说非常有价值的空间。
Stripe Connect 背后的想法源自与 Lyft 和 Shopify 等公司的合作。在早期,他们使用 Stripe 处理收款(pay-ins),但我们意识到:“这些公司在运营多边市场平台,要让这一切运转良好,有大量繁重的工作要做。“我们需要获得一系列监管牌照,而且还需要做很多事情才能真正让资金流动起来,并以正确的方式进行记账。Connect 就是我们面向平台和市场推出的产品。
Connect 的可嵌入组件与工程杠杆
David Singleton: 过去一年左右,我们做了一件事:把我们在 Stripe 控制台中构建的许多功能——比如帮助用户从他们的用户那里收集正确的文件、处理退款等等——做成了可嵌入的 UI 组件,而且完全可以定制。这些平台可以把它们放到自己的控制台里,这样就能向客户呈现 Stripe 所赋能的大量能力,而无需自己做大量工程工作。
为我们的客户创造工程杠杆,往往是我们能帮到他们业务的最重要的事。下周我们会展示一系列这样的东西,我很期待。最后,我们之前已经提到了,但能展示一下我们在 AI 和大语言模型方面的一些创新会很好。我认为,这些在未来几年将产生重大影响。
闪电问答环节
Lenny: 那么,我们进入非常令人兴奋的闪电问答环节。第一个问题:你向别人推荐最多的两三本书是什么?
David Singleton: “最多”意味着你要对曲线下面积做积分,所以我会说 Andy Grove 的《高产出管理》(High Output Management)绝对是我推荐最多的书。这本书在整个职业生涯中真正让我大开眼界,教会了我如何让团队发挥最大效能。如果你还没读过,一定要去看看。我们之前谈到在工艺上精益求精。我很喜欢 Tony Fadell 的《构建》(Build)。Tony 参与了 iPod 的开发,然后是 iPhone,之后创办了 Nest。他在用户方面倾注了大量思考,致力于打造真正精良的体验。我有幸在 Google 与他短暂共事过,我认为这本书在提供实用指导方面非常出色。然后,如果我不提 Claire Hughes Johnson 的书《选对人》(Skilling People),那就太失职了。虽然这本书才刚出版,但我已经推荐了很多次。书里其实有一些我分享的我们在 Stripe 使用的方法,所以你可能会喜欢。另外如果可以的话,我想再分享一本……
Lenny: 我这里有一本。
David Singleton: 你也有了。
Lenny: ……它可以当支架……
David Singleton: 太棒了。
Lenny: ……撑着我的笔记本电脑,然后……
David Singleton: 希望你读过。
Lenny: 我请她上过播客。我读了,能翻多少翻了多少。
David Singleton: 嗯。
Lenny: 我现在没有在创业。我看到她上了《华尔街日报》十大畅销书榜单。
David Singleton: 没错,没错。书里有大量非常实用的建议,所以我经常推荐这本书。
Lenny: 最近最喜欢的电影或电视节目是什么?
David Singleton: 好吧,我要在这里耍个花招,因为我打算把这个问题理解为:你最近看过的最好的视频内容是什么?
Lenny: 当然可以。
David Singleton: 我爱上了用 YouTube 来了解飞速发展的 AI 领域。这非常有价值。Andrej Karpathy 有一系列非常好的讲座,但不仅于此。在整个频谱上,如果你想如今学习一项新技能,YouTube 上有太多宝贵的内容。
Lenny: 你推荐的频道就是 Andrej Karpathy 的频道吗?
David Singleton: 如果你想了解 AI,他的频道非常棒。
Lenny: 他是前 Tesla 的 AI 负责人?
David Singleton: 没错。我相信他最近去了 OpenAI,但在此之前自己做了几个月,产出了大量优秀的 YouTube 内容。
Lenny: 好选择。大多数人都选《白莲花》之类的,你选了一个 AI YouTube 频道。我很喜欢。你最喜欢问的面试问题是什么?
最喜欢的面试问题
David Singleton: 好的,其实你会发现这本书里有我推荐的一些面试问题。有一个我真的很喜欢,因为听起来像是一个简单的问题,但其实不然。我经常问人们——尤其是在招聘管理层时——他们共事过的领导者中最欣赏谁,为什么。听起来像个简单的问题,但实际上能告诉你很多关于这个人真正在乎什么样的领导力。
有时候,我会追问:“这如何体现在你自己的领导风格中?“然后,我认为这一步非常能说明问题——我总是问候选人,我要剧透我的面试题了,我要在你的播客上公开了——我总是问候选人:“好的,假设你是那个人的经理。请告诉我你会给他们写什么样的绩效评估或发展反馈,来帮助他们更有效率。“我认为每个人总有可以改进的地方,当然也包括我自己。一个人能否对某个他们相当崇拜甚至神化的人进行批判性思考,以及思考这个人如何才能真正更有效率,我觉得这一点非常能说明问题。
Lenny: 最近发现的喜欢的产品有哪些?
喜欢的产品
David Singleton: 我最近发现并肯定喜欢的产品是 Midjourney,他们的业务端也搭建在 Stripe 上。不了解的人可能不知道,Midjourney 是一个用稳定扩散(stable diffusion)生成图像的 AI 工具,但确实相当出色。我经常和我女儿一起用它。我们会构思故事,用 Midjourney 生成漂亮的图像,然后她把图片放进书里,自己写文字。我觉得它很酷的原因是,一开始我对它的 UI 非常惊讶和怀疑,因为它的 UI 就是 Discord。他们把你放进 Discord,你进入一个频道,必须在那里给 AI 写提示词。一开始我觉得很困惑。心想:这不是这个工具该有的界面。但实际上,这非常聪明,因为你可以从 Discord 上其他人那里学到他们如何给 AI 写提示词来获得自己想要的效果。我发现这让我能从这个工具中获得更多的能力和价值。我肯定订阅了 Midjourney,用得很开心。
Lenny: 你创建的图像中,最喜欢的是哪一幅?如果有一幅浮现在脑海中的话。
David Singleton: 我们给我女儿正在写的书做了一个封面。顺便说一下,我女儿九岁,所以我们这里说的是优秀的儿童故事。她做了一张图:一只穿着紫色天鹅绒斗篷的狼,坐在篝火前,身后是森林里的一间小屋和一片星云。非常漂亮。我们实际上是结合了两张图像做出来的——狼和小屋。把狼从一张图中抠出来放到另一张上,我们用了 Apple 新的图像分割复制粘贴功能,效果很好。把这些 AI 工具组合起来也很有趣,但那一张算是比较满意的。
Lenny: 真是个奇妙的世界。最后两个问题。你在产品开发流程中做了什么相对较小的改变,却对团队执行力产生了巨大影响?
David Singleton: 我们之前聊过一些这个话题——自动部署和自动合并功能。但可能影响最深远的做法是,我们在 Stripe 的每一个开发者工具中都放了一个小按钮,是一个哭泣的章鱼 emoji。点击它之后,你就可以直接输入哪里出了问题。然后我们的开发者生产力团队会阅读所有这些反馈,并据此排列工作优先级。这种毫无摩擦的问题记录方式,结果证明非常有价值。我们称之为 paper cuts(纸割伤)。
Lenny: 哭泣的章鱼,我喜欢这个。
David Singleton: 是的。
Lenny: 最后一个闪电问答:还有哪些来自 Stripe 或前 Stripe 的人应该请到播客上来?
David Singleton: 我知道你的套路了。
Lenny: 这不是套路。
David Singleton: 我觉得你应该请两位 Stripes。第一位是 Emily Sands,她是我们的首席经济学家,负责我们的信息组织。我觉得这个组织包括数据科学团队,也包括构建我们很多内部工具的团队。我认为 Emily 有一套很好的思维框架,能把用户的真实体验转化为一套出色的指标体系,然后驱动正确的行动。正如我之前所说的,这非常重要。
第二位是 Michelle Boo。Michelle 在非常非常早期的阶段就以工程师身份加入了 Stripe,和我们在一起显然已经很长时间了。在 Stripe 用来建模用户业务的核心抽象层面,她可以说是我们的首席产品设计架构师。我认为她对如何把这些东西做对有非常深刻的洞察。我觉得你会很享受和她的对话。
Lenny: David,非常感谢你抽时间来参加这次对话,尤其是在 Sessions 前这么忙碌的时期。最后两个问题:如果大家想联系你,了解更多你正在做的事情,在哪里可以找到你?还有,听众怎样才能帮到你?
David Singleton: 好的。我在 Twitter 上是 @DPS,这绝对是联系我的最佳方式。你也可以看看我的个人博客 blog.singleton.io。说实话,最有用的事情是请给我发 Stripe 的反馈。你可以在 Twitter 上发给我,我的博客上也有我的邮箱地址。我非常希望能听到我们怎样才能更好地为你服务。
Lenny: David,再次感谢你来做客。
David Singleton: 谢谢你,Lenny。这很有趣。
Lenny: 我也是。大家再见。非常感谢你的收听。如果你觉得这期节目有价值,可以在 Apple Podcast、Spotify 或你最喜欢的播客应用上订阅本节目。也请考虑给我们评分或留下评论,因为这真的能帮助其他听众发现这个播客。你可以在 LennysPodcast.com 找到往期所有节目或了解更多关于节目的信息。下期再见。
术语表
| 原文 | 中文 |
|---|---|
| Ajhja | Ajhja(Stripe 工程师,保留原文) |
| Alpha | Alpha(指 Alpha 测试阶段用户群体,保留原文) |
| Andrej Karpathy | Andrej Karpathy(保留原文) |
| Andy Grove | 安迪·格鲁夫(Intel 前CEO,公认译名) |
| API | API(Application Programming Interface,保留原文) |
| Atlas | Atlas(Stripe 旗下的创业服务产品 Stripe Atlas,保留原文) |
| Atlassian | Atlassian(全球知名 SaaS 公司,保留原文) |
| basis points | 基点(basis points) |
| be meticulous in your craft | 在工艺上精益求精 |
| Build | 《构建》(Build) |
| Charlie Bell | Charlie Bell(前 Amazon 运营高管,保留原文) |
| ChatGPT Plus | ChatGPT Plus(OpenAI 的付费订阅服务,保留原文) |
| Claire Hughes Johnson | Claire Hughes Johnson(前 Stripe 高管) |
| CloudFlare | CloudFlare(全球知名云服务与网络安全公司,保留原文) |
| cohort | 同期群(cohort) |
| Copilot | Copilot(GitHub 的 AI 编程助手,保留原文) |
| David Singleton | David Singleton(Stripe 工程高管,保留原文) |
| Discord | Discord(通讯平台,保留原文) |
| Eeke | Eeke(前 Stripe 员工) |
| embeddings | 嵌入向量(embeddings) |
| Emily Sands | Emily Sands(Stripe 首席经济学家,保留原文) |
| Employer Identification Number | 雇主识别号(Employer Identification Number) |
| engineer occasions | 工程师演讲 |
| engineercation | engineercation(engineer 与 vacation 的混成词,指管理者深入一线团队做工程实践的机制) |
| Figma | Figma(设计工具公司,保留原文) |
| Fortune five / Fortune one | 财富十强/财富榜首(Fortune 排名) |
| friction logging | 摩擦日志 |
| general availability | 正式发布(general availability) |
| global payments and treasury network | 全球支付与资金网络(global payments and treasury network) |
| GPT-4 | GPT-4(OpenAI 的大语言模型,保留原文) |
| High Output Management | 《高产出管理》(High Output Management) |
| IC | 个人贡献者(IC,Individual Contributor) |
| IRS | 国税局(IRS) |
| Jeff Weinstein | Jeff Weinstein(Stripe 产品经理,保留原文) |
| John | John(Stripe 联合创始人 John Collison,保留原文) |
| Lenny | Lenny(播客主持人) |
| Link | Link(Stripe 的一键结账产品,保留原文) |
| Lyft | Lyft(美国网约车平台,保留原文) |
| maker schedule | 创客日程(maker schedule) |
| Michelle Boo | Michelle Boo(Stripe 工程师/首席产品设计架构师,保留原文) |
| Midjourney | Midjourney(AI 图像生成工具,保留原文) |
| Nest | Nest(智能家居公司,保留原文) |
| OpenAI | OpenAI(AI 研究公司,保留原文) |
| operating principles | 运营原则(operating principles) |
| paper cuts | paper cuts(Stripe 内部对开发者工具中小摩擦问题的称呼,保留原文) |
| Patrick | Patrick(Stripe 联合创始人 Patrick Collison,保留原文) |
| payment element | payment element(Stripe 的支付 UI 组件,保留原文) |
| PR | PR(Pull Request,保留原文) |
| presets | 预设(presets) |
| prompt | 提示词(prompt) |
| Radar | Radar(Stripe 的支付欺诈检测产品,保留原文) |
| SaaS | SaaS(Software as a Service 的缩写,保留原文) |
| Sessions | Sessions(Stripe 的大会,保留原文) |
| Shopify | Shopify(全球知名电商平台,保留原文) |
| Shreyas Doshi | Shreyas Doshi(前 Stripe 高管) |
| Sigma | Sigma(Stripe 的数据查询产品,保留原文) |
| Skilling People | 《选对人》(Skilling People) |
| Slack | Slack(企业通讯平台,保留原文) |
| SQL | SQL(结构化查询语言,保留原文) |
| stable diffusion | 稳定扩散(stable diffusion) |
| Stripe | Stripe(知名在线支付平台,保留原文) |
| Stripe Billing | Stripe Billing(Stripe 的订阅和发票产品,保留原文) |
| Stripe Checkout | Stripe Checkout(Stripe 的托管结账服务,保留原文) |
| Stripe Connect | Stripe Connect(Stripe 的平台与市场支付产品,保留原文) |
| Stripes | Stripes(Stripe 内部对员工的称呼,保留原文) |
| Tony Fadell | Tony Fadell(保留原文) |
| Transformers | Transformer(一种深度学习架构,保留原文) |
| walking the store | 走访一线 |
| White Lotus | 《白莲花》(美剧,公认译名) |
此文档由 AI 分片翻译(translate_long_document)