Podcasts about stephanie for

  • 9PODCASTS
  • 23EPISODES
  • 35mAVG DURATION
  • 1MONTHLY NEW EPISODE
  • Apr 24, 2024LATEST

POPULARITY

20172018201920202021202220232024


Best podcasts about stephanie for

Latest podcast episodes about stephanie for

Teach the Geek Podcast
EP. 304 - Stephanie Nowak: Life, Leadership, and Vegan Cookies

Teach the Geek Podcast

Play Episode Listen Later Apr 24, 2024 28:43


The Bike Shed
423: Cognitive Strategies for Coders

The Bike Shed

Play Episode Listen Later Apr 16, 2024 39:52


Stephanie is back with a book recommendation: "Thinking in Systems" by Donella Meadows. This book has helped to bolster her understanding of complex systems in environmental, organizational, and software contexts, particularly through user interactions and system changes. Joël describes his transformative experience watching last week's total solar eclipse. Together, they explore how systems thinking influences software development and team dynamics by delving into practical applications in writing and reading code, suggesting that understanding complex systems can aid developers in navigating and optimizing codebases and team interactions. Transcript:  JOËL: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Joël Quenneville. STEPHANIE: And I'm Stephanie Minn, and together, we're here to share a bit of what we've learned along the way. JOËL: So, Stephanie, what's new in your world? STEPHANIE: I have a book recommendation today [laughs]. JOËL: Oh, I love book recommendations. STEPHANIE: It's been a little while, so I wanted to share what I've been reading that I think might be interesting to this audience. I'm reading Thinking in Systems by Donella Meadows. Joël, are you familiar with systems thinking theory at all? JOËL: Very superficially. Hearing people talk about it on, I guess, X, now Twitter. STEPHANIE: Yeah. Well, what I like about this book is the subtitle is A Primer on Thinking in Systems [chuckles], which is perfect for me as someone who also just kind of understood it very loosely, as just like, oh, like, I dunno, you look at things holistically and look at the stuff, not just its parts but from a higher perspective. JOËL: Yeah. Is that accurate sort of your pre-book reading overview? Or do you think there's a bigger thing, a bigger idea there that the book unpacks? STEPHANIE: Yeah. I think I'm only, like, a third of the way through so far. But what I have enjoyed about it is that, you know, in some ways, like, intuitively, that makes a lot of sense about, like, oh yeah, you want to make sure that you see the forest for the trees, right? But one thing I've been surprised by is how it's also teaching me more technical language to talk about complex systems. And, in this case, she is talking about, essentially, living systems or systems that change over time where things are happening. I think that can be a little bit confusing when we also are, you know, talking about computer systems, but, in this case, you know, systems like environments, or communities, or even, you know, companies or organizations, which is actually where I'm finding a lot of the content really valuable. But some of the language that I've learned that I am now trying to integrate a little bit more into how I view a lot of just, like, daily problems or experiences involve things like feedback loops that might be reinforcing or balancing and different, like, inputs and output flows and what is driving those things. So, I've appreciated just having more precise language for things that I think I kind of intuited but didn't exactly know how to, like, wrap up in a way to communicate to someone. JOËL: Do you think the idea of thinking in terms of things like self-balancing versus sort of diverging input loops is something that's useful when actually writing code? Or do you think of it a little bit more in terms of, like, teams and how they organize general problem-solving approaches, things like that? STEPHANIE: I think the answer is both. I actually gave this quite a bit of thought because I was trying to wrap my head around her definition of a system and how we talk about systems sometimes, like, a codebase, for example. And the conclusion I came to is that, really, it's not just the code static by itself that we care about. It's how it gets exercised, how users use it, how developers change it, how we interact with it when we, like, run tests, for example. So, that was really helpful in kind of thinking about some of the problems we see in engineering organizations as a result of software being a thing that is used and written by humans, as opposed to it just existing in memories [chuckles] or, like, it's in a storage system somewhere. Like, that means it's kind of lifeless, and it's not changing anymore. But the point of kind of this framework is trying to understand it as it changes. JOËL: So, kind of that blurry line between humans and computers and where those two overlap is where a lot of that systems thinking almost, like, mental model or vocabulary has been most helpful for you. STEPHANIE: Yeah, I would say so. So, Joël, what's new in your world? JOËL: So, I did the thing. I traveled to see the total solar eclipse this past weekend. It was mind-blowing. It was incredibly cool. I really loved it. For any of our listeners who have never seen a solar eclipse, in the coming years, have an opportunity to see one. I'd say it's worth traveling to see because it is really impressive. STEPHANIE: Cool. What did it look like when it happened, when it was 100% eclipsed? JOËL: So, what really impressed me was the fact that, like, most of the cool stuff happens in that, like, last half a percent. So, like, 95% eclipsed, still not that impressive. If that's all I'd seen, I would be disappointed. And then, in that last little bit, all of a sudden, everything goes dark. It's sort of, like, that twilight past sunset. You've got a glow on the horizon. The stars are out. STEPHANIE: Wow. JOËL: The animals are behaving like it's past sunset. They're getting ready to go to sleep. STEPHANIE: Whoa. JOËL: The sun itself is just a black dot with this, like, big fiery ring around it. Like all those pictures, icons, photos you see online, or drawings that look over the top, those things are real. That's what it looks like. STEPHANIE: Wow, that's really neat. Could you see it without looking through the eclipse viewers? JOËL: So, when you hit totality, you can look at it with a naked eye, and it is, yeah, magnificent. STEPHANIE: Oh, that's so cool. How long did it last? JOËL: So, it depends where you are in the path of totality. I was pretty much dead center. And it lasts, I think, three and a half minutes is what we had. STEPHANIE: That's so cool. So, for me, here in Chicago, we did not have complete totality. It was about, like, 95%. So, I was watching it, just from that perspective. And I would say, yeah, it was not nearly as cool as what you described. It kind of just was like, oh, it got dark. It almost looked like I was viewing the world through sunglasses. I did have one of those viewers that I used to, like, look at the sun and see how much of it had been covered. But yeah, it was cool. But what you said, I think now I feel like, wow, I really should have [laughter] traveled. I could have traveled just a few hours, you know, to, like, Indianapolis or something to have been on the path. That would have been really neat. And I don't think the next one will be until 2044 or something like that. JOËL: Yeah. And that's the thing, right? I think if you're within a few hours of the path of a total eclipse, it is absolutely worth traveling to totality. The downside of that is that everybody else has the same idea. And so, you will be fighting traffic and a lot of things, especially if it goes through some, like, populated areas, like it did this time. STEPHANIE: Yeah. Well, that's really neat that you got to see that. That's, I don't know, it sounds like not exactly once in a lifetime, but definitely very rare. JOËL: For sure. I think with this experience now; I would definitely consider traveling again if there's one, like, anywhere near where I live, or, you know, maybe even, like, planning a vacation around going somewhere else to see one because it's short. You know, you're there for three minutes, and you see something cool. But that was really impressive. So, something that really struck me when you were talking earlier about systems thinking is that you mentioned that it gave you a sort of a new vocabulary to talk about things. It almost gave you a sort of different way of thinking or some other mental models that you could use to apply when you are interacting in that sort of fussy boundary between people and code. And I think that this idea of having language and having mental models is something that is incredibly valuable for us as programmers in a few different areas. And I'd be curious to see particularly for when we're reading other code, reading code that someone else has written or, you know, yourself from six months ago, do you have any sort of mental models that you like to reach for or techniques that you like to use to sort of give yourself that almost vocabulary to understand what somebody else is trying to do with their code? STEPHANIE: Yeah, I would say so. You know, as you were talking about, like, how do you read code? I was thinking about how I read code is different from how I would read a book [laughs]. I almost rarely just read everything line by line and, like, file by file, you know, in some order that has been presented to me. I am usually a lot more involved. It's almost, like, more like a choose your own adventure kind of book [chuckles], where it's like, oh, go to this page to check if you want to check out what happened down this code path [chuckles]. JOËL: Right, right. Oh, if you're reading a novel, are you the kind of person that will read the ending first? STEPHANIE: Absolutely not. [laughter] JOËL: You have strong opinions here. STEPHANIE: Even when I, like, really want to... okay, sometimes I will, like, maybe just kind of flip to the back and just see, like, oh, how many more pages or chapters do I have [laughs] left? If I am itching to know what might happen. But I definitely don't start a book by reading the end. I think there are people who do that, and maybe that works for them, but I don't understand it. [laughter] JOËL: But maybe that's the thing that you do with your code. STEPHANIE: Yeah. When I read code, it's almost always with some kind of intention to understand a particular behavior, usually kind of kicked off by some action, like, done by the user or something automated. And I want to understand that process from start to finish. So, I'm less likely to read a whole class file [chuckles], as opposed to just following method and the messages that are sent along the way in a process. JOËL: That makes sense. Do you tend to sort of go from kind of the origin point and then follow it down, or sort of the opposite, find some, like, terminal node and then work your way back? STEPHANIE: Oh. JOËL: And I could imagine this in a more concrete sense in a Rails app. You find, like, the route that you're going to hit because you know it's a URL, and then you find the controller, and then you read through the action. And then, you maybe follow a service and something like that or look into the view. Or maybe the opposite: there's a particular page that gets rendered. You look at a method, a helper method that gets called in a view, and then you sort of, like, follow a backtrace from there. STEPHANIE: Yeah, I think both. It depends on what information I have available to me, I think. I can think of, recently, I was trying to figure out the process for which, like, a user in this application I'm working on can downgrade the tier of their account, and I didn't know what to grep for. And so, I asked, like, "Hey, like, what are the entry points for a user being able to do this?" And someone gave me a couple of routes, and that was great because then I got to see, oh, that this is possible in multiple ways. Like, the user can do it themselves, or the admin can do it, and that was really helpful. Other times, I think I have been able to find a keyword on a page and start from, like, a view or a component, or something like that, and then work upwards. JOËL: I love that question that you asked, "What are the entry points for this thing?" I feel like that's a fantastic question to sort of ask yourself when you're feeling stuck, but it's also a great question to ask other people that might know. Do you find that you read code differently when you're just trying to, like, maybe understand a broader subsystem? Maybe you're sort of new to this area and you have to add a feature, as opposed to maybe you're debugging something and trying to understand why things went wrong. Are those two different kinds of reading? STEPHANIE: Yeah, that's also a great point because I do think there's another time when I've just scanned the file structure of an app and looked at the model's directory and just kind of been like, okay, like, maybe some things are namespaced. And that helps me just know what the main concepts that I have to be dealing with or that I will be dealing with are. But I find that sometimes less fruitful because of kind of what I mentioned earlier about thinking in systems, where I'm not sure how important those things will be yet because I don't know how they're used. They could not be used at all [laughs]. And then, I think I'm potentially, like, storing information that is not actually relevant in my brain. JOËL: That's tough, right? Because systems are so big, we can't hold them entirely in our brain. So, sometimes, selectively deciding what will not be loaded in there is just as important as what will. STEPHANIE: Yes. And I think that is actually advice that I would give to devs who are trying to get better at reading code. And this one's hard because when I am working with more early-career developers, it's hard to figure out, like, what are they seeing? How are they interpreting the code on the page? Because oftentimes, I see that they are getting stuck on the details, whereas I would like to encourage them to just be like, you don't really need to know what's going on in that method right now. Does the method name kind of communicate enough to you, like, what this thing is doing without having to understand all of the details? But my advice would be to start figuring out what to ignore [laughs] because, like you said, it's impossible to, like, hold all of that information at one time. What do you think about that advice and, like, how do you teach that to someone? JOËL: I think you're sort of hinting at two different ways of reducing the amount you have to load in your mind. The way I think about it, I think of it sort of spatially, so you can reduce the breadth of things you have to load into your head, so, realize, wait, there's all of these methods, and I don't need to know all of the methods in the file. There's only this one entry point I care about and everything downstream of that, and you just sort of prune everything off to the side, ignore it. That's not relevant right now. But there's also sort of a depth. How deep of implementation do you really need to have? Maybe you only need to know about the high-level concepts. And then, you sort of, like, do this pruning where you say, "I'm not going to go deeper than this level," because the implementation is not really relevant to what I'm trying to understand right now. I mostly need to know what are these classes and how do they interact with each other? Or something along those lines. And, ideally, you're may be doing a little bit of both. You probably don't need to go all the way to the deep implementation of every method, but you also don't necessarily need to know all of the high-level concepts and all of the objects in the system that interact. So, being able to prune in sort of both dimensions, breadth and depth, helps you to, I think, narrow the window of what you need to learn. STEPHANIE: Yeah, that's a really great point. I have a couple more strategies that I just thought about as you were talking about that. One is kind of on the journey to let go of some things that I can't understand in the moment. If they seem important, I will write them down and, like, put them somewhere in a list to come back to later and be like, "This is a thing I don't fully understand yet," and just be okay with that. I think, for me, there is some anxiety of like, oh, like, what if I'll need to know about it later? And at least putting it down somewhere as like, okay, like, I've done something with that anxious [laughs] energy of, like, recognizing that I don't understand this right now, and that's okay. But I can revisit it later. And then, another one is almost the opposite, where it's like, what are my landmarks as I'm navigating through a codebase? Like, what are the files that I'm consistently opening? Because so many of the roads lead to this object. Even when I'm kind of going through different paths, it's like, I can hook into, like, the behavior that I'm looking for from these landmark objects or models because they are really important in this domain. So, it's like, I don't necessarily need to remember every step of the way, but if I can recall some of the more important methods, then I can kind of find my way back. JOËL: Do you just try to, like, memorize those, or do you write them down? Like, how do you make a method or an object a landmark for you? STEPHANIE: That has felt a little more, like, it becomes more, like, muscle memory, I think, because I'm revisiting them pretty frequently. I don't know, it's somehow the act of repeating, like, going through those files just gets encoded somewhere in my brain [laughs], and I don't have to worry as much about forgetting them. JOËL: Strengthening that neural pathway. STEPHANIE: Yeah, exactly. JOËL: Or whatever is happening in the brain there. STEPHANIE: [laughs] JOËL: I like what you were saying earlier, though, about taking notes and sort of almost, like, a breadcrumbs approach. We did an episode almost two years ago where we talked about note-taking for various purposes and note-taking as an exploration exercise, and then note-taking when debugging, where we went deeper into that topic. And I think that would be really relevant to any of our listeners. We'll link that in the show notes. STEPHANIE: Yeah. Leaving breadcrumbs. That's a great metaphor or just a way to describe it. Because I have a little shorthand for if I am leaving myself notes in a codebase as I'm trying to understand what's happening, and it's just, like, putting my initials in a comment and, like, including some observation or commentary about what I'm seeing or a question. JOËL: Also, just a kind of meta observation here, but in the last, you know, 10-15 minutes we've been talking about this, we're already creating our own set of metaphors, and language, and mental models around understanding code. We're talking about breadcrumbs, and landmarks, and looking at code through a broad versus deep lens. That's exactly what we're talking about. STEPHANIE: Joël, do you have any mental models that you use that we haven't really gotten into yet? JOËL: I don't know if they're mental models per se, but I lean very heavily into diagramming as a form of understanding code. And maybe that's a way of sort of reducing the number of concepts because instead of now sort of thinking in terms of, like, lines of code, I'm thinking in terms of maybe some boxes and arrows, and that's a much higher-level way of looking at a system and can give me some really interesting insights. And there are a ton of different diagrams you can use for different things, and I guess all of them are based on a different maybe mental model of what a system is. So, for example, I might actually write out the method call graph starting from some endpoint and just sort of saying, "Hey, when I call this method, what are all of the methods downstream that get called? And is there anything interesting at any of those steps?" Variation on that if you're looking at, let's say, some kind of performance thing would be, like, a flame graph where you have sort of that but then it also shows you the amount of time spent in each of the methods. And that can give you a sense of where your bottlenecks are. Another one that I really like is thinking in terms of a finite state machine. So, sort of following data, how does it change in response to different events that can come into the system? And I'm not talking about, oh, you're using one of the, like, state machine gems out there for your Rails app. This is more of a way of thinking about programs and how they act. You can have just a plain, old Rails app, and you're thinking about, okay, well, how does a cart turn into an order, turn into a fulfillment request at the warehouse, turns into a tracking number for shipping? Modeling that as a state machine. And also, you know, can it move back along that path, or is it only linear move forward? Any kind of multi-state form a wizard often has paths where you move back. It's not linear. That very easily can be drawn out as a state machine. So, that is something that I really like to pull out when I'm trying to understand a, like, complex workflow. STEPHANIE: Yeah, I think we've talked about this before a little bit, or maybe not even a little bit, a lot [laughs]. But I know that you're a big fan of Mermaid.js for creating diagrams in markdown that can be embedded in a pull request description or even in a commit message. When I was hearing you talk about state machines and just all the different paths that can lead to different states, I was like, I bet that's something that you would create using a diagram and stick for yourself and others when sharing code. JOËL: Yes, Mermaid does support state machines as a graph type, which is really cool. Another thing that you can do is embed those in tools like Obsidian, which is my current note-taking tool. So, if I'm doing some sort of notes as a sort of exploratory tool, I will often start writing a Mermaid graph directly in line, and it will render and everything. That's really nice. If I'm not in Obsidian and I just need some sort of one-off graph, I'll often lean on Mermaid.live, which just gives you an editor where you can write up some Mermaid code. It will render it, and then you can copy the PNG into somewhere else and share that with other people. So, if I just need a one-off thing to share in Slack or something like that, I like to lean on that. Another type of diagram that I use pretty frequently is an entity-relationship diagram, so sort of what database tables are related to what others. On larger apps, there's just so many tables, and maybe a bunch of JOINS and things like that, and it's sometimes difficult to get the picture of what is happening, so I'll often draw out a graph of those. Now, it's not worth doing the entire database because that will be huge and overwhelming. So, I'll find, like, five or six tables that are relevant to me and then try to answer the question: How are they related to each other? STEPHANIE: Yeah, I like that. I was going to ask if you do it manually or if you use a tool because I've worked in various apps that have used the Rails ERD gem that will generate an entity-relationship diagram for you every time the schema changes. But there's something very compelling, to me, about the idea of trying to just figure out if you know the relationships, if you could draw them out, as opposed to having a tool do it for you. JOËL: Exactly. STEPHANIE: And I think, like, also, you do have information that might not be encoded in the system. Like, you actually know, oh, these two tables are related, even if no one has defined an association on them. I think that is important in understanding actually how the system is working in real life, I guess. JOËL: Agreed. So, we've been talking a lot about how we can use different tools, different mental models to take code that somebody else has written and kind of, like, almost read it from disk and load it into our brains. But what about the opposite? We're faced with a business problem, and we want to sort of write it to disk, turn it into code that somebody else will then read or that a machine will execute. I hear that happens occasionally. Are there sort of mental models or ways of approaching tackling a more, like, amorphous problem in the real world and turning that into code? Like, are they just the inverse of what we do when we read code, or are they, like, totally different set of skills? STEPHANIE: For me personally, I don't follow this framework very strictly, but I think more intuitively how I like to go about it is more behavior-driven where...because that is the language of maybe our cross-functional partners. They're saying like, "Hey, like, when this happens, I want to be able to do this," and I kind of start there. Maybe I'll pick up some of the keywords that they're repeating pretty frequently as like, oh, like, this is a concept. Actually, lately, the past couple of weeks, I've been test-driving almost all of my code as I work on a totally, like, greenfield feature. And that has been working really well for me, I think, because we did explore more granular, both, like, granular and abstract concepts when we were spiking this feature. And so, we had come up with some domain models. I had kind of thought about, like, how they might interact with each other. But when you then have to actually, like, code that, there are so many little nuances and things to keep track of that I found test driving things from, like, behavior and user stories. Those are really helpful in keeping me, like, on track to making sure that I didn't just have all these little pieces of domain concepts that then didn't really interact in a meaningful way. JOËL: Yeah, the sort of very, like, user or customer-centric approach to thinking about what is this app doing? Is a great way to think about it. And I guess the sort of translation of that, that first step of translation into code is some sort of, like, system spec. STEPHANIE: Yeah, exactly. JOËL: I like that because, you know, we have all these other abstractions that we use as developers. But at the end of the day, our customers and even, you know, our product people aren't thinking in terms of, like, objects and classes and all these other fun abstractions that we have. They're thinking in terms of behaviors and, you know, maybe subsystems, workflows, things like that. And then it's up to us to translate that into whatever paradigm of our language that we're using. STEPHANIE: Do you do things differently from me? JOËL: I don't think that I do it necessarily differently. I think it's one of several tools I have in my tool belt. Something that is similar but from a slightly different angle is inspiring myself with a lot of the ideas from domain-driven design. You know, we've been talking a lot about this idea of, like, mental models and having a vocabulary, things like that, about sort of the way that we work, but that exists at the product level as well. And what if we could encode a lot of that into our application itself? So, is there a distinction between a subscriber and a payer in our system? Is there specialized vocabulary around different other concepts in the app? Maybe instead of just having those be things that product people talk about, what if we made them actual named entities in the system and have maybe our object graph, at least in some way, reflect the sort of idealized model of what our business actually does? That often means that you're thinking of things at a higher level because you're thinking of things at the level that our product people are thinking about them. You might be thinking of things in terms of user journeys, or product workflows, or things like that, because you say, "Oh, well, a new payer has been added to this group account. And that has started a subscription, which then means that a user has access to these corporate features that they didn't have when they were in a solo account." Like, I've just thrown ten different sort of product terms out there that, you know, if there are concepts in our code can help us think about less of the implementation. What does the app do, or how does the app do it? And more in terms of, like, product terms, what does the app do? How do people experience the behavior, or maybe how does data change over the life cycle of the app? So, those perspectives, I think, have helped me distill down sort of more vague product ideas into things that I can then start turning into code. STEPHANIE: Absolutely. I think one way that this framework ends up falling short, at least for me a little bit sometimes, is making connections between behaviors that are similar but not exactly the same. Or when you think about them in more isolated ways, like, it's easy to miss that, like, they are the same idea and that there is, like, something a bit higher level that you can connect them, that you can create a more abstract class for, even though that's not actually how people talk about the things. One example I can think of is things like concerns that are both related to domain language but then also, like, kind of specific to how things work in the code as a system because you might not necessarily call something a subscribable from a product perspective. Do you have any thoughts about identifying those pieces? JOËL: So, what's interesting is I think there's a little bit of, like, layers above and below, the sort of domain layer where you're talking in terms of, like, what the product team would use. When you're doing a lot of the implementation, there will be things that are just, like, that's how we implemented them. They're in the nitty gritty, and they're not terms that the product team would necessarily use. Things like array and string they're low-level details. We have to use them. That's not really relevant to the world of payers, and subscribers, and things like that. So, they're sort of lower layer. And I think that's totally fine to have things where we sort of have things that are sort of programmer only, as long as they're sort of contained within this higher-level layer because that allows people new to the app to sort of see what are the different things in the application to think about things in a higher level. It also allows for smoother communication with the product team. So, ideally, you don't have a concept in the app that is the same as something that the product team, but you just both gave it different names, and then that's really annoying. Or maybe the dev team created something that's, like, almost exactly the same as what the product team talks about, but with some, like, slight variations. Now, you're just going to be talking past each other in every planning meeting, and that will be incredibly annoying. STEPHANIE: Yeah. At one point, when I was trying to communicate, like, async about how a feature works, and there was like the product word for it and then the dev word for it, I would have to type out both [chuckles] because I wanted to make sure that no one was confused about what we were talking about, which was the same thing that just had two names. And yeah, I don't know how many seconds of my life I'll never get back as a result [chuckles]. JOËL: Were these concepts that were identical and had just different names, or was this like, oh, well, our internal subscribed user is almost the same as when product talks about and, I don't know, employee, but our subscribed user has a couple of other extra behaviors that employees don't have, and now there's, like, this weird, like, overlap? STEPHANIE: Yeah, both situations I have found myself in, but I think this one they were virtually identical. Like, they could be used interchangeably to mean the same thing by people who understand both of those definitions, but the problem was that we still had two words [laughs]. JOËL: Yeah, yeah. I'm a big fan of, where possible, converging on the product team's definition. Although because code forces you to be more precise, sometimes that can then force some conversations with the product team about, like, "Hey, so we've been hand waving around this concept of a subscriber. Turns out we think there's actually two different kinds of concepts at work here: the person who's consuming the content and the person who's paying for it. And are they really the same thing, or should we sort of think about these as two different entities? And, in that case, what should the name be?" And that can force a really, I think, healthy conversation between development and product. STEPHANIE: Yeah, I like that. You mentioned there was, like, a higher level and a lower level, but I don't think we've gotten to the higher one yet. JOËL: Yeah. Sometimes, you want to build abstraction sort of over. You're talking about the idea of, like, subscribable things. I think that's where I'm a lot fuzzier. It's much more case-by-case. Where possible, I'd like to introduce some of those things as domain vocabulary so that we'd say, "Well, look, we have a, like, family of products, and they're all subscribable." And maybe, like, the adjective doesn't matter quite as much to our product people, but, you know, because we're using a module in Ruby, we want to lean into the adjective form, and that's fine. But I would at least want some loose connection there. STEPHANIE: Yeah, that makes sense because I think that ultimately makes for a better product. If we're thinking about, like, how to present a hierarchy of information to a user, like a navigation menu, we would want to group those things that are under that family together, ideally, so that they know how to interact with it. JOËL: Another thing that I think falls maybe under, like, this higher-level umbrella are things like design patterns. So, maybe because we want to be able to sort of, like, swap things in and out, we're using some form of strategy pattern. That feels like maybe it's a little bit higher level. It interacts with a lot of the domain concepts, but our product team doesn't really need to think in terms of, like, oh, strategies, and swappable things, and, like, flex points in your architecture. So, those would not necessarily be domain vocabulary. Although I could see, like, maybe there's a way where they do get a domain name, and that's great. STEPHANIE: Oh, I think maybe this is where I disagree with you a little bit. Well, actually, I agreed with what you said at the end [laughs] in terms of how maybe they should be part of the domain vocabulary because I think...I've seen product not fully understand the complexity of the application as it grows over time. And that can lead to sometimes, like, not as great product experience or experience for the user, like, interacting with this product. And maybe that is something we want to, as developers, if we're starting to see and feel and have maybe even introduced a pattern for...I can't claim to have done this too much, but it's definitely a skill I want to hone in on. But, like, how do I communicate to product folks so that we understand, oh, like, where is it possible for these different types of a subscriber to diverge? Because that is important, I think, in determining the future of a product and, like, where we want to invest in it and where we should focus, like, new features. JOËL: And oftentimes, when there is that kind of divergence, there probably will be some sort of product-level thinking that needs to happen there. Are we saying, "Hey, we have one of three types of subscribers, and we want to think about that"? Or maybe we want to say, "We have three different ways of processing an application." Maybe it's derived automatically. Maybe it's a dropdown that you have to pick. But let's say it's a dropdown. What do we name that dropdown with the, like, kind of processing that we want to do to an application? The thing that we want to name that dropdown that's probably a good name for that, like, group of strategies, assuming we implement with a strategy pattern. Maybe we're doing it differently. STEPHANIE: Yeah. The more you talk about that, the more I'm convinced that that's, like, the way I want to be working at least, because you have to know what's there in order to, like, name it. You know, you have to face it, essentially [laughs]. Whereas I think a lot of applications I've worked on fall into the trap of all of those things are obscured way down in the depths of the user flow, where it's like, oh, suddenly, for some reason, you can, like, have a dropdown here that totally changes the behavior, even though you've gotten this far in either the stack trace or even just, like the user journey, as I know you like to branch early in your code. JOËL: [laughs]. STEPHANIE: But you should also branch early from a user's experience [laughs]. JOËL: In general, I'm just a big fan of having a communication loop between development and product, not only sort of receiving a lot of useful information from the product team about what we want to build. But then because we're encountering this more, like, technical spec that we're writing, have those conversations bubble back to product and say, "Hey, so we talked about a dropdown where there are sort of three different ways of processing an application. Let's talk a little bit more about what it means to have three different ways of processing. And what do we want to name that? Is that accessible to everyone, or are they sort of one-to-one tied with a type of user?" And all of a sudden, that has just generated probably a lot of questions that product never even thought to ask because they're working on an infinite canvas of possibilities. And it's really helped you as a developer to have better names to write your code and sort of better sketch out the boundaries of the problem you're trying to solve. So, I think it's a really healthy loop to have. I strongly encourage it. So, we've spent a lot of time talking about thinking about behavior and things like the domain-driven design movement. But a few other things I want to shout out as being really helpful, one is an exercise where you take a problem statement and just underline all of the nouns. That is a great way to get a sense of, like, what is going on here. More generally, I think a lot of what we're talking about falls under the umbrella of what you might call analysis. And so, digging into different analytic techniques can be a great way to better understand the problem that you're working through. One such tool would be decision tables. So, you have a problem, and you say, "Well, given these inputs, what should the outputs be?" STEPHANIE: Cool. If there were any techniques or tools that we missed in terms of how you load code in your brain or generate code from your brain [laughs], we would love to know. You can write in to us at hosts@bikeshed.fm. JOËL: On that note, shall we wrap up? STEPHANIE: Let's wrap up. STEPHANIE: Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeeee!!!!!!! AD: Did you know thoughtbot has a referral program? If you introduce us to someone looking for a design or development partner, we will compensate you if they decide to work with us. More info on our website at: tbot.io/referral. Or you can email us at: referrals@thoughtbot.com with any questions.

The Bike Shed
422: Listener Topics Grab Bag

The Bike Shed

Play Episode Listen Later Apr 9, 2024 35:23


Joël conducted a thoughtbot mini-workshop on query plans, which Stephanie found highly effective due to its interactive format. They then discuss the broader value of interactive workshops over traditional talks for deeper learning. Addressing listener questions, Stephanie and Joël explore the strategic use of if and else in programming for clearer code, the importance of thorough documentation in identifying bugs, and the use of Postgres' EXPLAIN ANALYZE, highlighting the need for environment-specific considerations in query optimization. Episode mentioning query plans (https://bikeshed.thoughtbot.com/418) Query plan visualizer (https://explain.dalibo.com/) RailsConf 2024 (https://railsconf.org/) Episode 349: Unpopular Opinions (https://bikeshed.thoughtbot.com/349) Squint test (https://www.youtube.com/watch?v=8bZh5LMaSmE) Episode 405: Retro on Sandi Metz rules (https://bikeshed.thoughtbot.com/405) Structuring conditionals in a wizard (https://thoughtbot.com/blog/structuring-conditionals-in-a-wizard) Episode 417: Module docs (https://bikeshed.thoughtbot.com/417) Episode 416: Multidimensional numbers (https://bikeshed.thoughtbot.com/416) ruby-units gem (https://github.com/olbrich/ruby-units) Solargraph (https://marketplace.visualstudio.com/items?itemName=castwide.solargraph) parity (https://github.com/thoughtbot/parity) Transcript: STEPHANIE:  Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. JOËL: And I'm Joël Quenneville, and together, we're here to share a bit of what we've learned along the way. STEPHANIE: So, Joël, what's new in your world? JOËL: Just recently, I ran a sort of mini workshop for some colleagues here at thoughtbot to dig into the idea of query plans and, how to read them, how to use them. And, initially, this was going to be more of a kind of presentation style. And a colleague and I who were sharing this decided to go for a more interactive format where, you know, this is a, like, 45-minute slot. And so, we set it up so that we did a sort of intro to query plans in about 10 minutes then 15 minutes of breakout rooms, where people got a chance to have a query plan. And they had some sort of comprehension questions to answer about it. And then, 15 minutes together to have each group share a little bit about what they had discovered in their query plan back with the rest of the group, so trying to balance some understanding, some application, some group discussion, trying to keep it engaging. It was a pretty fun approach to sharing information like that. STEPHANIE: Yeah. I wholeheartedly agree. I got to attend that workshop, and it was really great. Now that I'm hearing you kind of talk about the three different components and what you wanted people attending to get out of it, I am impressed because [laughs] there is, like, a lot more thought, I think, that went into just participant engagement that reflecting on it now I'm like, oh yeah, like, I think that was really effective as opposed to just a presentation. Because you had, you know, sent us out into breakout rooms, and each group had a different query that they were analyzing. You had kind of set up links that had the query set up in the query analyzer. I forget what the tool was called that you used. JOËL: I forget the name of it, but we will link it in the show notes. STEPHANIE: Yeah. It was helpful for me, though, because, you know, I think if I were just to have learned about it in a presentation or even just looked at, you know, screenshots of it on a slide, that's different still from interacting with it and feeling more confident to use it next time I find myself in a situation where it might be helpful. JOËL: It's really interesting because that was sort of the goal of it was to make it a bit more interactive and then, hopefully, helping people to retain more information than just a straight up, like, presentation would be. I don't know how you feel, I find that often when I go to a place like, let's say, RailsConf, I tend to stay away from more of the workshop-y style events and focus more on the talks. Is that something that you do as well? STEPHANIE: Yeah. I have to confess that I've never attended a workshop [laughs] at a conference. I think it's partly my learning style and also partly just honestly, like, my energy level when I'm at the conference. I kind of just want to sit back. It's on my to-do list. Like, I definitely want to attend one just to see what it's like. And maybe that might even inspire me to want to create my own workshop. But it's like, once I'm in it, and, you know, like, everyone else is also participating, I'm very easily peer pressured [laughs]. So, in a group setting, I will find myself enjoying it a lot more. And I felt that kind of same way with the workshop you ran for our team. Though, I will say a funny thing that happened was that when I went out into my breakout group with another co-worker, and we were trying to grok this query that you gave us, we found out that we got the hardest one, the most complicated one [laughs] because there were so many things going on. There was, like, multiple, like, you know, unions, some that were, like, nested, and then just, like, a lot of duplication as well, like, some conditions that were redundant because of a different condition happening inside of, like, an inner statement. And yeah, we were definitely scratching our heads for a bit and were very grateful that we got to come back together as a group and be like, "Can someone please help? [laughs] Let's figure out what's going on here." JOËL: Sort of close that loop and like, "Hey, here's what we saw. What does everybody else see?" STEPHANIE: Yeah, and I appreciated that you took queries from actual client projects that you were working on. JOËL: Yeah, that was the really fun part of it was that these were not sort of made-up queries to illustrate a point. These were actual queries that I had spent some time trying to optimize and where I had had to spend a lot of time digging into the query plans to understand what was going on. And it sounds like, for you, workshops are something that is...they're generally more engaging, and you get more value out of them. But there's higher activation energy to get started. Does that sound right? STEPHANIE: Yeah, that sounds right. I think, like, I've watched so many talks now, both in person and on YouTube, that a lot of them are easily forgettable [laughs], whereas I think a workshop would be a lot more memorable because of that interactivity and, you know, you get out of it what you put in a little bit. JOËL: Yeah, that's true. Have you looked at the schedule for RailsConf 2024 yet? And are there any workshops on there that you're maybe considering or that maybe have piqued your interest? STEPHANIE: I have, in fact, and maybe I will check off attending a workshop [laughs] off my bucket list this year. There are two that I'm excited about. Unfortunately, they're both at the same time slot, so I -- JOËL: Oh no. You're going to have to choose. STEPHANIE: I know. I imagine I'll have to choose. But I'm interested in the Let's Extend Rails With A Gem by Noel Rappin and Vision For Inclusion Workshop run by Todd Sedano. The Rails gem one I'm excited about because it's just something that I haven't had to do really in my dev career so far, and I think I would really appreciate having that guidance. And also, I think that would be motivation to just get that, like, hands-on experience with it. Otherwise, you know, this is something that I could say that I would want to do and then never get [chuckles] around to it. JOËL: Right, right. And building a gem is the sort of thing that I think probably fits better in a workshop format than in a talk format. STEPHANIE: Yeah. And I've really appreciated all of Noel's content out there. I've found it always really practical, so I imagine that the workshop would be the same. JOËL: So, other than poring over the RailsConf schedule and planning your time there, what has been new for you this week? STEPHANIE: I have a really silly one [laughs]. JOËL: Okay. STEPHANIE: Which is, yesterday I went out to eat dinner to celebrate my partner's birthday, and I experienced, for the first time, robots [laughter] at this restaurant. So, we went out to Hot Pot, and I guess they just have these, like, robot, you know, little, small dish delivery things. They were, like, as tall as me, almost, at least, like, four feet. They were cat-themed. JOËL: [laughs] STEPHANIE: So, they had, like...shaped like cat...they had cat ears, and then there was a screen, and on the screen, there was, like, a little face, and the face would, like, wink at you and smile. JOËL: Aww. STEPHANIE: And I guess how this works is we ordered our food on an iPad, and if you ordered some, like, side dishes and stuff, it would come out to you on this robot cat with wheels. JOËL: Very fun. STEPHANIE: This robot tower cat. I'm doing a poor job describing it because I'm still apparently bewildered [laughs]. But yeah, I was just so surprised, and I was not as...I think I was more, like, shocked than delighted. I imagine other people would find this, like, very fun. But I was a little bit bewildered [laughs]. The other thing that was very funny about this experience is that these robots were kind of going down the aisle between tables, and the aisles were not quite big enough for, like, two-way traffic. And so, there were times where I would be, you know, walking up to go use the restroom, and I would turn the corner and find myself, like, face to face with one of these cat robot things, and, like, it's starting to go at me. I don't know if it will stop [laughs], and I'm the kind of person who doesn't want to find out. JOËL: [laughs] STEPHANIE: So, to avoid colliding with this, you know, food delivery robot, I just, like, ran away from it [laughs]. JOËL: You don't know if they're, like, programmed to yield or something like that. STEPHANIE: Listen, it did not seem like it was going to stop. JOËL: [laughs] STEPHANIE: It got, like, I was, you know, kind of standing there frozen in paralysis [laughs] for a little while. And then, once it got, I don't know, maybe two or three feet away from me, I was like, okay, like, this is too close for comfort [laughs]. So, that was my, I don't know, my experience at this robot restaurant. Definitely starting to feel like I'm in the, I don't know, is this the future? Someone, please let me know [laughs]. JOËL: Is this a future that you're excited or happy about, or does this future seem a little bit dystopian to you? STEPHANIE: I was definitely alarmed [laughter]. But I'm not, like, a super early adopter of new technology. These kinds of innovations, if you will, always surprise me, and I'm like, oh, I guess this is happening now [laughs]. And I will say that the one thing I did not enjoy about it is that there was not enough room to go around this robot. It definitely created just pedestrian traffic issues. So, perhaps this could be very cool and revolutionary, but also, maybe design robots for humans first. JOËL: Or design your dining room to accommodate your vision for the robots. I'm sure that flying cars and robots will solve all of this, for sure. STEPHANIE: Oh yeah [laughter]. Then I'll just have to worry about things colliding above my head. JOËL: And for the listeners who cannot see my face right now, that was absolutely sarcasm [laughs]. Speaking of our listeners, today we're going to look at a group of different listener questions. And if you didn't know that, you could send in a question to have Stephanie and I discuss, you can do that. Just send us an email at hosts@bikeshed.fm. And sometimes, we put it into a regular episode. Sometimes, we combine a few and sort of make a listener question episode, which is what we're doing today. STEPHANIE: Yeah. It's a little bit of a grab bag. JOËL: Our first question comes from Yuri, and Yuri actually has a few different questions. But the first one is asking about Episode 349, which is pretty far back. It was my first episode when I was coming on with Chris and Steph, and they were sort of handing the baton to me as a host of the show. And we talked about a variety of hot takes or unpopular opinions. Yuri mentions, you know, a few that stood out to him: one about SPAs being not so great, one about how you shouldn't need to have a side project to progress in your career as a developer, one about developer title inflation, one about DRY and how it can be dangerous for a mid-level dev, avoiding let in RSpec specs, the idea that every if should come with an else, and the idea that developers shouldn't be included in design and planning. And Yuri's question is specifically the question about if statements, that every if should come with an else. Is that still an opinion that we still have, and why do we feel that way? STEPHANIE: Yeah, I'm excited to get into this because I was not a part of that episode. I was a listener back then when it was still Steph and Chris. So, I am hopefully coming in with a different, like, additional perspective to add as well while we kind of do a little bit of a throwback. So, the one about every if should come with an else, that was an unpopular opinion of yours. Do you mind kind of explaining what that means for you? JOËL: Yeah. So, in general, Ruby is an expression-oriented language. So, if you have an if that does not include an else, it will implicitly return nil, which can burn you. There may be some super expert programmers out there that have never run into undefined method for nil nil class, but I'm still the kind of programmer who runs into that every now and then. And so, implicit nils popping up in my code is not something I generally like. I also generally like having explicit else for control flow purposes, making it a little bit clearer where flow of control goes and what are the actual paths through a particular method. And then, finally, doing ifs and elses instead of doing them sort of inline or as trailing conditionals or things like that, by having them sort of all on each lines and balancing out. The indentation itself helps to scan the code a little bit more. So, deeper indentation tells you, okay, we're, like, nesting multiple conditions, or something like that. And so, it makes it a little bit easier to spot complexity in the code. You can apply, and I want to say this is from Sandi Metz, the squint test. STEPHANIE: Yeah, it is. JOËL: Where you just kind of, like, squint at your code so you're not looking at the actual characters, and more of the structure, and the indentation is actually a friend there rather than something to fight. So, that was sort of the original, I think, idea behind that. I'm curious, in your experience, if you would like to balance your conditionals, ifs with something else, or if you would like to do sort of hanging ifs. STEPHANIE: Hanging ifs, I like that phrase that you just coined there. I agree with your opinion, and I think it's especially true if you're returning values, right? I mean, in Ruby, you kind of always are. But if you are caring about return values, like you said, to avoid that implicit nil situation, I find, especially if you're writing tests for that code, it's really easy, you know, if you spot that condition, you're like, okay, great. Like, this is a path I need to test. But then, oftentimes, you don't test that implicit path, and if you don't enter the condition, then what happens, right? So, I think that's kind of what you're referring to when you talk about both. It's, like, easier to spot in terms of control flow, like, all the different paths of execution, as well as, yeah, like, saving you the headaches of some bugs down the line. One thing that I thought about when I was kind of revisiting that opinion of yours is the idea of like, what are you trying to communicate is different or special about this condition when you are writing an if statement? And, in my head, I kind of came up with a few different situations you might find yourself in, which is, one, where you truly just have, like, a special case, and you're treating that completely differently. Another when you have more of a, like, binary situation, where it's you want to kind of highlight either...more of a dichotomy, right? It's not necessarily that there is a default but that these are two opposite things. And then, a third situation in which you have multiple conditions, but you only happen to have two right now. JOËL: Interesting. And do you think that, like, breaking down those situations would lead you to pick different structures for writing your conditionals? STEPHANIE: I think so. JOËL: Which of those scenarios do you think you might be more likely to reach for an if that doesn't have an else that goes with it? STEPHANIE: I think that first one, the special case one. And in Yuri's email, he actually asked, as a follow-up, "Do we avoid guard clauses as a result of this kind of heuristic or rule?" And I think that special case situation is where a guard clause would shine because you are highlighting it by putting it at the top of a method, and then saying like, you know, "Bail out of this" or, like, "Return this particular thing, and then don't even bother about the rest of this code." JOËL: I like that. And I think guard clauses they're not the first thing I reach for, but they're not something I absolutely avoid. I think they need to be used with care. Like you said, they have to be in the top of your method. If you're adding returns and things that break out of your method, deep inside a conditional somewhere, 20 lines into your method, you don't get to call that a guard clause anymore. That's something else entirely. I think, ideally, guard clauses are also things that will break out of the method, so they're maybe raising exception. Maybe they're returning a value. But they are things that very quickly check edge cases and bail so that the body of the method can focus on expecting data in the correct shape. STEPHANIE: I have a couple more thoughts about this; one is I'm reminded of back when we did that episode on kind of retroing Sandi Metz's Rules For Developers. I think one of the rules was: methods should only be five lines of code. And I recall we'd realized, at least I had realized for the first time, that if you write an if-else condition in Ruby, that's exactly five lines [laughs]. And so, now that I'm thinking about this topic, it's cool to see that a couple of these rules converge a little bit, where there's a bit of explicitness in saying, like, you know, if you're starting to have more conditions that can't just be captured in a five-line if-else statement, then maybe you need something else there, right? Something perhaps like polymorphic or just some way to have branched earlier. JOËL: That's true. And so, even, like, you were talking about the exceptional edge cases where you might want to bail. That could be a sign that your method is doing too much, trying to like, validate inputs and also run some sort of algorithm. Maybe this needs to be some sort of, like, two-step thing, where there's almost, like, a parsing phase that's handled by a different object or a different method that will attempt to standardize your inputs and raise the appropriate errors and everything. And then, your method that has the actual algorithm or code that you're trying to run can just assume that its inputs are in the correct shape, kind of that pushing the uncertainty to the edges. And, you know, if you've only got one edge case to check, maybe it's not worth to, like, build this in layers, or separate out the responsibilities, or whatever. But if you're having a lot, then maybe it does make sense to say, "Let's break those two responsibilities out into two places." STEPHANIE: Yeah. And then, the one last kind of situation I've observed, and I think you all talked about this in the Unpopular Opinions episode, but I'm kind of curious how you would handle it, is side effects that only need to be applied under a certain condition. Because I think that's when, if we're focusing less on return values and more just on behavior, that's when I will usually see, like, an if something, then do this that doesn't need to happen for the other path. JOËL: Yes. I guess if you're doing some sort of side effect, like, I don't know, making a request to an API or writing to a file or something, having, like, else return nil or some other sentinel value feels a little bit weird because now you're caring about side effects rather than return values, something that you need to keep thinking of. And that's something where I think my thing has evolved since that episode is, once you start having multiple of these, how do they compose together? So, if you've got if condition, write to a file, no else, keep going. New if condition, make a request to an API endpoint, no else, continue. What I've started calling independent conditions now, you have to think about all the different ways that they can combine, and what you end up having is a bit of a combinatorial explosion. So, here we've got two potential actions: writing to a file, making a request to an API. And we could have one or the other, or both, or neither could happen, depending on the inputs to your method, and maybe you actually want that, and that's cool. Oftentimes, you didn't necessarily want all of those, especially once you start going to three, four, five. And now you've got that, you know, explosion, like, two to the five. That's a lot of paths through your method. And you probably didn't really need that many. And so, that can get really messy. And so, sometimes the way that an if and an else work where those two paths are mutually exclusive actually cuts down on the total number of paths through your method. STEPHANIE: Hmm, I like that. That makes a lot of sense to me. I have definitely seen a lot of, like, procedural code, where it becomes really hard to tell how to even start relating some of these concepts together. So, if you happen to need to run a side effect, like writing to a file or, I don't know, one common one I can think of is notifying something or someone in a particular case, and maybe you put that in a condition. But then there's a different branching path that you also need to kind of notify someone for a similar reason, maybe even the same reason. It starts to become hard to connect, like, those two reasons. It's not something that, like, you can really scan for or, like, necessarily make that connection because, at that point, you're going down different paths, right? And there might be other signals that are kind of confusing things along the way. And it makes it a lot harder, I think, to find a shared abstraction, which could ultimately make those really complicated nested conditions a little more manageable or just, like, easier to understand at a certain complexity. I definitely think there is a threshold. JOËL: Right. And now you're talking about nested versus non-nested because when conditions are sort of siblings of each other, an if-else behaves differently from two ifs without an else. I think a classic situation where this pops up is when you're structuring code for a wizard, a multi-step form. And, oftentimes, people will have a bunch of checks. They're like, oh, if this field is present, do these things. If this field is present, do these things. And then, it becomes very tricky to know what the flow of control is, what you can expect at what moment, and especially which actions might get shared across multiple steps. Is it safe to refactor in one place if you don't want to break step three? And so, learning to think about the different paths through your code and how different conditional structures will impact that, I think, was a big breakthrough for me in terms of taking the next logical step in terms of thinking, when do I want to balance my ifs and when do I not want to? I wrote a whole article on the topic. We'll link it in the show notes. So, Yuri, thanks for a great question, bringing us back into a classic developer discussion. Yuri also asks or gives us a bit of a suggestion: What about revisiting this topic and doing an episode on hot takes or unpopular topics? Is that something that you'd be interested in, Stephanie? STEPHANIE: Oh yeah, definitely, because I didn't get to, you know, share my hot topics the last episode [laughs]. [inaudible 24:23] JOËL: You just got them queued up and ready to go. STEPHANIE: Yeah, exactly. So, yeah, I will definitely be brainstorming some spicy takes for the show. JOËL: So, Yuri, thanks for the questions and for the episode suggestion. STEPHANIE: So, another listener, Kevin, wrote in to us following up from our episode on Module Docs and about a different episode about Multi-dimensional Numbers. And he mentioned a gem that he maintains. It's called Ruby Units. And it basically handles the nitty gritty of unit conversions for you, which I thought was really neat. He mentioned that it has a numeric class, and it knows how to do math [laughs], which I would find really convenient because that is something that I have been grateful not to have to really do since college [laughs], at least those unit conversions and all the things that I'd probably learned in math and physics courses [laughs]. So, I thought that was really cool, definitely is one to check out if you frequently work with units. It seemed like it would be something that would make sense for a domain that is more science or deals in that kind of domain. JOËL: I'm always a huge fan of anything that tags raw numbers that you're working with with a quantity rather than just floating raw numbers around. It's so easy to make a mistake to either treat a number as a quantity you didn't think of, or make some sort of invalid operation on it, or even to think you have a value in a different size than you do. You think you're dealing with...you know you have a time value, but you think it's in seconds. It's actually in milliseconds. And then, you get off by some big factor. These are all mistakes that I have personally made in my career, so leaning on a library to help avoid those mistakes, have better information hiding for the things that really aren't relevant to the work that I'm trying to do, and also, kind of reify these ideas so that they have sort of a name, and they're, like, their own object, their own thing that we can interact with in the app rather than just numbers floating around, those are all big wins from my perspective. STEPHANIE: I also just thought of a really silly use case for this that is, I don't know, maybe I'll have to experiment with this. But every now and then, I find the need to have to convert a unit, and I just pop into Google, and I'm like, please give me, you know, I'll search for 10 kilometers in miles or something [laughs]. But then I have to...sometimes Google will figure it out for me, and sometimes it will just list me with a bunch of weird conversion websites that all have really old-school UI [laughs]. Do you know what I'm talking about here? Anyway, I would be curious to see if I could use this gem as a command-line interface [laughs] for me without having to go to my browser and roll the dice with freecalculator.com or something like that [laughs]. JOËL: One thing that's really cool with this library that I saw is the ability to define your own units, and that's a thing that you'll often encounter having to deal with values that are maybe not one of the most commonly used units that are out there, dealing with numbers that might mean a thing that's very particular to your domain. So, that's great that the library supports that. I couldn't see if it supports multi-dimensional units. That was the episode that inspired the comment. But either way, this is a really cool library. And thank you, Kevin, for sharing this with us. STEPHANIE: Kevin also mentions that he really enjoys using YARD docs. And we had done that whole episode on Module Docs and your experience writing them. So, you know, your people are out there [laughs]. JOËL: Yay. STEPHANIE: And we talked about this a little bit; I think that writing the docs, you know, on one hand, is great for future readers, but, also, I think has the benefit of forcing the author to really think about their inputs and outputs, as Kevin mentions. He's found bugs by simply just going through that process in designing his code, and also recommends Solargraph and Solargraph's VSCode extension, which I suspect really kind of makes it easy to navigate a complex codebase and kind of highlight just what you need to know when working with different APIs for your classes. So, I recently kind of switched to the Ruby LSP, build with Shopify, but I'm currently regretting it because nothing is working for me right now. So, that might be the push that I need [laughs] to go back to using Solargraph. JOËL: It's interesting that Kevin mentions finding bugs while writing docs because that has absolutely been my experience. And even in this most recent round, I was documenting some code that was just sort of there. It wasn't new code that I was writing. And so, I had given myself the rule that this would be documentation-only PRs, no code changes. And I found some weird code, and I found some code that I'm 98% sure is broken. And I had to have the discipline to just put a notice in the documentation to be like, "By the way, this is how the method should work. I'm pretty sure it's broken," and then, maybe come back to it later to fix it. But it's amazing how trying to document code, especially code that you didn't write yourself, really forces you to read it in a different way, interact with it in a different way, and really, like, understand it in a deep way that surprised me a little bit the first time I did it. STEPHANIE: That's cool. I imagine it probably didn't feel good to be like, "Hey, I know that this is broken, and I can't fix it right now," but I'm glad you did. That takes a lot of, I don't know, I think, courage, in my opinion [laughs], to be like, "Yeah, I found this, and I'm going to, you know, like, raise my hand acknowledging that this is how it is," as supposed to just hiding behind a broken functionality that no one [laughs] has paid attention to. JOËL: And it's a thing where if somebody else uses this method and it breaks in a way, and they're like, "Well, the docs say it should behave like this," that would be really frustrating. If the docs say, "Hey, it should behave like this, but it looks like it's broken," then, you know, I don't know, I would feel a little bit vindicated as a person who's annoyed at the code right now. STEPHANIE: For sure. JOËL: Finally, we have a message from Tim about using Postgres' EXPLAIN ANALYZE. Tim says, "Hey, Joël, in the last episode, you talked a bit about PG EXPLAIN ANALYZE. As you stated, it's a great tool to help figure out what's going on with your queries, but there is a caveat you need to keep in mind. The query planner uses statistics gathered on the database when making decisions about how to fetch records. If there's a big difference between your dev or staging database and production, the query may make different decisions. For example, if a table has a low number of records in it, then the query planner may just do a table scan, but in production, it might use an index. Also, keep in mind that after a schema changes, it may not know about new indexes or whatever unless an explicit ANALYZE is done on the table." So, this is really interesting because, as Tim mentions, EXPLAIN ANALYZE doesn't behave exactly the same in production versus in your local development environment. STEPHANIE: When you were trying to optimize some slow queries, where were you running the ANALYZE command? JOËL: I used a combination. I mostly worked off of production data. I did a little bit on a staging database that had not the same amount of records and things. That was pretty significant. And so, I had to switch to production to get realistic results. So, yes, I encountered this kind of firsthand. STEPHANIE: Nice. For some reason, this comment also made me think of..., and I wanted to plug a thoughtbot shell command that we have called Parity, which lets you basically download your production database into your local dev database if you use Heroku. And that has come in handy for me, obviously, in regular development, but would be really great in this use case. JOËL: With all of the regular caveats around security, and PII, and all this stuff that come with dealing with production data. But if you're running real productions on production, you should be cleared and, like, trained for access to all of that. I also want to note that the queries that you all worked with on Friday are also from the production database. STEPHANIE: Really? JOËL: So, you got to see what it actually does, what the actual timings were. STEPHANIE: I'm surprised by that because we were using, like, a web-based tool to visualize the query plans. Like, what were you kind of plugging into the tool for it to know? JOËL: So, the tool accepts a query plan, which is a text output from running a SQL query. STEPHANIE: Okay. So, it's just visualizing it. JOËL: Correct. Yeah. So, you've got this query plan, which comes back as this very intimidating block of, like, text, and arrows, and things like that. And you plug it into this web UI, and now you've got something that is kind of interactive, and visual, and you can expand or collapse nodes. And it gives you tooltips on different types of information and where you're spending the most time. So, yeah, it's just a nicer way to visualize that data that comes from the query plan. STEPHANIE: Gotcha. That makes sense. JOËL: So, that's a very important caveat. I don't think that's something that we mentioned on the episode. So, thank you, Tim, for highlighting that. And for all of our listeners who were intrigued by leaning into EXPLAIN ANALYZE and query plan viewers to debug your slow queries, make sure you try it out in production because you might get different results otherwise. STEPHANIE: So, yeah, that about wraps up our listener topics in recent months. On that note, Joël, shall we wrap up? JOËL: Let's wrap up. STEPHANIE: Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeeeee!!!!!!! AD: Did you know thoughtbot has a referral program? If you introduce us to someone looking for a design or development partner, we will compensate you if they decide to work with us. More info on our website at: tbot.io/referral. Or you can email us at: referrals@thoughtbot.com with any questions.

Today's TLC: Life After Therapy
89: A Radiant You

Today's TLC: Life After Therapy

Play Episode Listen Later Dec 28, 2023 6:31


Are you worn out because the people and circumstances in your life make it hard to feel happy, healthy, and fulfilled? Check out this episode to learn the secret to releasing life's burdens so you can confidently create your life, genuinely trust God, authentically build relationships, and sustainably find fulfillment in your everyday life. New Podcast Theme: Welcome to Radiant You—a podcast empowering Christian women to feel lighter and shine brighter. Because life doesn't have to feel dark or heavy. Together, we find hope, inspiration, and practical tools that will help you unlock your self-confidence and build a simpler life: one bite-sized episode at a time. Truly, your life can be more fulfilling and feel lighter than you ever thought possible. The radiant you is within reach. Let's find her together. Episode Summary: In this episode, Stephanie shares a personal story about experiencing "The Great Texas Freeze" in 2021, highlighting how this billion-dollar weather disaster offed an unexpected life lesson about finding strength from within even in difficult times. Key Takeaways: When facing struggles, tap into the inner source of light and strength to confidently navigate any situation, feel lighter, and shine brighter. Embracing your inner source will help you genuinely trust God, authentically build relationships, and sustainably find fulfillment in your everyday life. Resources: Check out this article to learn more about The Great Texas Freeze. Connect with Stephanie: For the latest updates, behind-the-scenes content, and announcements, be sure to follow Stephanie on Instagram and Facebook. Subscribe to the TLC Tuesday newsletter for weekly tips to help you become a more Radiant You. A Personal Invitation: You don't have to do this alone. If you're ready to live lighter and shine brighter, visit www.thelightcoach.com and book a free session to discover what's possible. The radiant you is within your reach—let's find her together.

The Bike Shed
403: Productivity Tricks

The Bike Shed

Play Episode Listen Later Sep 26, 2023 37:49


Stephanie is engrossed in Kent Beck's Substack newsletter, which she appreciates for its "working thoughts" format. Unlike traditional media that undergo rigorous editing, Kent's content is more of a work-in-progress, focusing on thought processes and evolving ideas. Joël has been putting a lot of thought into various tools and techniques and realized that they all fall under one umbrella term: analysis. From there, Stephanie and Joël discuss all the productivity tricks they like to use in their daily workflows. Do you have some keyboard shortcuts you like? Are you an Alfred wizard? What are some tools or mindsets around productivity that make YOUR life better? Kent Beck's Substack Tidy First? (https://tidyfirst.substack.com/) Debugging: Listing Your Assumptions (https://thoughtbot.com/blog/debugging-listing-your-assumptions) Dash (https://kapeli.com/dash) Alfred (https://www.alfredapp.com/) Rectangle (https://rectangleapp.com/) Meeter (https://apps.apple.com/us/app/meeter-for-zoom-teams-co/id1510445899) Vim plugins (https://github.com/thoughtbot/dotfiles/blob/main/vimrc.bundles#L32-L50) from thoughtbot's dotfiles, including vim-projectionist () for alternate files Go To Spec VS Code plugin (https://marketplace.visualstudio.com/items?itemName=Lourenci.go-to-spec) Feedbin (https://feedbin.com/) Energy Makes Time by Mandy Brown (https://everythingchanges.us/blog/energy-makes-time/) Transcript: AD: Ruby developers, The Rocky Mountain Ruby Conference returns to Boulder, Colorado, on October 5th and 6th. Join us for two days of insightful talks from experienced Ruby developers and plenty of opportunities to connect with your Ruby community. But that's not all. Nestled on the edge of the breathtaking Rocky Mountains, Boulder is a haven for outdoor lovers of all stripes. Take a break from coding. Come learn and enjoy at the conference and explore the charm of Downtown Boulder: eclectic shops, first-class restaurants and bars, and incredible street art everywhere. Immerse yourself in the vibrant culture and the many microbrew pubs that Boulder has to offer. Grab your tickets now at rockymtnruby.dev and be a part of the 2023 Rocky Mountain Ruby Conference. That's rockymtnruby.dev, October 5th and 6th in Boulder. See you there. JOËL: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Joël Quenneville. STEPHANIE: And I'm Stephanie Minn. And together, we're here to share a bit of what we've learned along the way. JOËL: So, Stephanie, what's new in your world? STEPHANIE: So, I have a new piece of content that I'm consuming lately. That is Kent Beck's Substack [chuckles], Kent Beck of Agile Manifesto and Extreme Programming notoriety. I have been really enjoying this trend of independent content creation in the newsletter format lately, and I subscribe to a lot of newsletters for things outside of work as well. I've been using an RSS feed to like, keep track of all of the dispatches I'm following in that way so that it also kind of keeps out of my inbox. And it's purely just for when I'm in an internet-reading kind of mood. But I subscribed to Kent's Substack. Most of his content is behind a subscription. And I've been really enjoying it because he treats it as a place for a lot of his working thoughts, kind of a space that he uses to explore topics that could be whole books. But he is still in the phase of kind of, like, thinking them through and, like, integrating, you know, different things he's learning, and acknowledging that, like, yeah, like, not all of these ideas are fully fleshed, but they are still worth publishing for people who might be interested in kind of his thought process or where his head is at. And I think that is really cool and very different from just, like, other types of content I consume, where there has been, like, a lot of, especially more traditional media, where there has been, like, more editing involved and a lot of time and effort to reach a final product. And I'm curious about this, like I mentioned, trend towards a little less polished and people just publishing things as they're working through them and acknowledging that the way they're thinking about things can change over time. JOËL: It sounds like this is kind of halfway between a book which has gone through a lot of editing and, you know, a tweet thread, which is pure stream of consciousness. STEPHANIE: Yeah, that's a really great insight, actually. And I think that might be my sweet spot in terms of things I enjoy consuming or reading because I like that room for change and that there is a bit of a, you know, community aspect to Substack where you can comment on posts. But, at least in my experience, has seemed, like, relatively healthy because it is, you know, you're kind of with a community of people who are at least invested or willing to pay [chuckles] for the content. So, there is some amount of good faith involved. His newsletter title itself it's called "Tidy First?" And so, that almost implies that it's, like, something he's still exploring or experimenting with, which I think is really cool. It's not like a I have discovered, like, the perfect way to do things, and, you know, you must always tidy first before you do your software development. He's kind of in the position of, this is what I think works, and this is my space for continuing to refine this idea. JOËL: I'm curious: are there any sort of articles that you've read or just thoughts in general that you've seen from Kent that are particularly impactful or memorable to you? STEPHANIE: Yeah. One I read today during my investment time is called Accountability in Software Development. And it was a very interesting take on the idea of accountability, not necessarily, like, when it's forced by others or external forces like a manager or, you know, your organization, but when it comes from yourself. And he describes it as a way to feel comfortable and confident in the work that he's doing and also building trust in himself and in his work but also in his teams. By being transparent and literally accounting for the things that he's doing and sharing them, communicating them publicly, that almost ends up diminishing any kind of, like, distrust, or shame, or any of those weird kind of squishy things that can happen when you hide those things or, like, hide what you're doing. It becomes a way to foster the good parts of working with other people but not in a necessarily like, resentful way or in a hierarchical way. I was really interested in the idea of accountability, ultimately, like, for yourself, and then that ends up just propagating to the team. JOËL: That's a really interesting topic because I think it sort of sits at the intersection of the personal and the technical. STEPHANIE: Yeah, absolutely. He mentions more technical strategies or tasks that kind of do the same thing. You know, he mentions test-driven development, as well as, like, a way of holding yourself accountable to writing software that, you know, doesn't have bugs in it. So, I think that it can be applied to, you know, exactly both of those, like, interpersonal stuff and also technical aspects too, anyway, that's what's new in my world. Joël, what about you? JOËL: So, this year, I've been putting a lot of thought into a variety of tools and processes. And I think I've come to the realization that they all really fall under one kind of umbrella term, and that would be analysis. It's a common step in some definitions of the traditional software development lifecycle. And it's where you try to after you've kind of gathered the requirements, try to break them down and understand what exactly that means from a technical perspective, what needs to happen. And so, a lot of the things that have been really fascinating to me this year have been different techniques that I can use to become better at that sort of phase. STEPHANIE: Wow. That's very powerful, I think. And honestly, the first thing that comes to mind is, how do you make time for it? JOËL: I think we all do it to a certain extent. You know, you pick up a ticket, and there is a prose description of some work to be done, hopefully not telling you directly, like, just go make a change to this class, but here's a business problem to be solved. And then you have to sort of figure out how to break it down. So, this can be as simple as, oh, what objects, what classes do I need to introduce for this change? But it might be more subtle in terms of thinking, okay, well, what are the edge cases I need to think about? Where are things that could fail, and how am I going to handle failure? So, there's a variety of techniques that you can use to get better at all of these. You can use them kind of at the micro level when thinking about just a ticket. You can use them when working on a larger epic, a larger initiative, a whole project because I think analysis fits into kind of all of these levels. And so, I think those are the techniques that have been most exciting to me this year and that have really connected. STEPHANIE: That is very exciting. It's triggering a lot of thoughts for me about how I incorporate analysis into my work and how that has actually evolved; where I think before, earlier in my career, I assumed that the analysis had been done by someone else who knew better than me or who knew more than me. And that by the time that you know, a piece of work kind of landed in my lap, I was like, okay, well, I just want to know what to do, right? Like, I want someone else to tell me what to do [laughs]. But now I think I have taken it upon myself to do more of that and, like, have realized that it's part of my role. And sometimes it will now be kind of a flag or, like, a signal to me when that hasn't been done. And I can tell when I receive a ticket, and it's, like, maybe missing the business problem or doesn't have enough information. And determining whether that is information that I need to go and find out, or if there's someone else who I can work together with to do that analysis with, or having a better understanding of, like, what is within my realm of analysis to do, and what I need to encourage other people to do analysis for before the work is ready for me. JOËL: I think there is an interesting distinction between more traditional requirements gathering and analysis, where traditional requirements gathering is getting all that business problem information from product people, from customers, things like that. The analysis step is often a little bit more about breaking down a business problem into, like, what are the technical ramifications of that? But there can be a little of a synergy there where sometimes, once you start exploring the technical side of it, it might bring up a lot of edge cases that have impacts on the product side, on the business side. And then you have to go back to the businesspeople and say, "Hey, we only talked about sort of the happy path. What happens if payment is declined? What do we want to do there?" And now we're back in sort of that requirements gathering phase a little bit more rather than purely analysis. But it can come out of an analysis phase where you've done maybe some state machine diagramming to try to better understand how things flow from one phase to another. Or maybe you were building out a truth table for some complex logic and realized, wait a minute, there's an edge case I didn't handle. It's not a strictly linear process. The two kind of feed into each other and, honestly, into the implementation side as well. STEPHANIE: Yeah, I'm with you there. I'm thinking about a piece of work that I've been working on, where we were thinking of doing a database migration and adding some new columns to a table. But the more I dug into it, the more I realized that that was the first idea or the immediate idea that came from a need that I had limited information about. And what was nice was I was able to sit on it for a little bit, get some input from others. And I realized that there were all of these things that I couldn't answer yet. And someone, I think literally asked in a code review if you've already done this analysis, between knowing that these columns will be the kind of extent of what you need versus, you know, will the data end up needing more columns? And should the data model be a little more flexible to that potential change? And they said, "If you had already done this analysis, then, like, otherwise, it looks good to me." And I was like, "Oh, I didn't." [laughs] And that encouraged me to go back to some cross-functional members of the team and ask more questions. And that has taken more time. That was another challenge that I had to encounter was saying like, "Yeah, we started this, and we made some progress. But actually, we need to revisit a few things, like a few parts of the premise, before continuing on." JOËL: Are there any techniques or approaches that you particularly enjoy when it comes to doing an analysis or that maybe are go-to's for you? STEPHANIE: Reminding myself to revisit my assumptions [laughs], or at least even starting by being really clear about what I'm assuming, right? Because I think that has to happen first before you can even revisit them is having an awareness of what assumptions you're making. And I actually think this is where collaboration has been really helpful, where I've been working on this task with another developer on my team. And when we've been talking about it, I found myself saying, "Oh, I'm assuming this," right? Or, like, I'm assuming that the stakeholder knows what they need [laughs]. And that's why we're going to do it this way, where we were kind of given the pieces of data that we should be persisting. And the more that we had that conversation, the more I realized, like, actually, like, I'm not convinced that they have that full picture of, like, what they need in the future. And because we're making this decision now, like, we are turning, you know, literally from, like, the abstract into, like, a concrete change [chuckles] in the database, now seems like...now that we're faced with that decision, it seems like a good time to revisit the assumption that I was making. And that has proved helpful in making ultimately, like, a more informed decision about, like, which way to go technically. But I personally have found a lot of value in verbally processing it with someone else. It's a lot harder for me to identify them, I think, when I'm in my own head. JOËL: That's really interesting that you keyed in on the idea of assumptions. I typically think of assumptions being, like, so important mostly in debugging rather than analysis. In fact, I wrote a whole blog post about why listing your assumptions is so important as part of your debugging process. Now, like, my mind is spinning a little bit. I'm like, oh, I wonder if I could use some of those, like, debugging techniques as part of more of my analysis step. And could that make me better? So, I think you've put me on a whole, like, thought track of, like, oh, how many of these debugging techniques can I use to make my analysis better? So, that's really cool. STEPHANIE: Yeah, and vice versa. So, a few minutes ago, I'd asked you how you make time for that analysis. Because I was thinking that, you know, in my day-to-day work, I'm juggling so many things. I often find myself running out of time and not able to do all of it. And that, I think, leads us really well into our topic for this episode, which is productivity tricks and ways that we make the most use out of our limited time. JOËL: I think I may have a maybe a bit of a controversial opinion on productivity tricks. I feel like a lot of productivity tricks don't actually make me that much faster. Like, maybe I save a couple of minutes a day, maybe 5 or 10 a day with productivity tricks. And, sure, that adds up over the course of a year. But there are other things I could do in terms of, like, maybe better habits, better managing of my schedule that probably have a much more significant impact. Where I think they are incredibly valuable, though, is not directly making me better with my time management but managing my focus, allowing me to kind of keep in the flow and get things done without getting sidetracked. Or just kind of giving me the things that I need in the moment that I need them so that I'm not getting on to a subtask that I don't really need to be doing. STEPHANIE: Yeah. I really like that reframing of what helps you focus because as I was brainstorming ways that I stay on track for my work, I think I ended up discovering a similar theme where it wasn't so much, like, little snippets and tools for me, as opposed to how I structure all of the noise, I guess, in my day-to-day work and being able to see what it is that I need to care about the most right now. JOËL: I think one of the things that I've tried to do for myself is to make it easy to have access to the information and the tools that I need. Probably one of the most useful bits of that is a combination of the documentation viewer Dash and the...I'm not sure what it would be called– launcher, productivity manager tool for Mac. Alfred, with a CMD + Space, it brings up this bar I can type into. And then you can trigger all sorts of things from there. And so I can type the name of a language or some kind of keyword that I have set up and the name of a method. And then, all of a sudden, it'll show me everything like, you know, top five results. And I can hit Enter, and it will bring up the documentation for that. So, if I want to say, oh yeah, what is the order of the arguments for Enumerable's inject method (which I constantly forget)? You know, it's a few keyboard shortcuts, you know, CMD + Space Ruby Enumerable inject. It's fuzzy finding, so I probably don't even need to type all of that. Hit Enter, and I have the documentation right in front of me. So, that makes it so that I can get access to that with very little amount of context shifting. STEPHANIE: Yeah. I like what you said about how the tools are really helping you, like, narrow down, like, the views of, like, what is most important for you in that moment, and it's doing a little bit of that work for you. I think the couple of tools and apps that I actually did want to share are kind of similar. One MacOS app I really like is called Rectangle for windows management, which is really crucial for me because I don't enjoy like, swiping and tabbing between applications. I would much prefer just seeing, usually, just two things. I try to keep my screen limited to two different windows at once because once it gets more than that, I'm already just, like, overwhelmed [laughs]. And as I'm trying to focus a little bit more on just having, like, one thing be the focus of my attention at a time, Rectangle has been really nice in just really quickly being able to do my windows resizing. So, I usually have, like, either things split between my screen half and half. Like, right now, I have your face on my screen as we record this podcast, and then my notes editing software for taking notes about what we talk about. During my development workflow, it's usually, you know, just my editor, my terminal, and then maybe my browser ends up being, like, the thing that I tab into. But I'm able to just, like, set that all up, and as I need those windows to change depending on what my focus has been shifted to, to kind of make more space for whatever I'm reading, or looking at, or processing visually. The keyboard shortcuts that Rectangle...that I have now, you know, ingrained into my fingers [laughs] has been really helpful. It's like, I'm not fussing with just, like, too many things open. JOËL: I have yet to, like, dive into a window manager. I'm still in the clunky world of CMD tabbing. But maybe I should give that a try. STEPHANIE: For me, it has helped even just, like, identify the things that I need to give more space to on my screen and aggressively, like, cut everything else [laughs]. So, that's a really great MacOS app. And then, the other one is actually kind of a similar vein. It's called Meeter, M-E-E-T-E-R. And it has been really helpful for managing my meetings, especially my video call meetings where the video call software that's being used for the meeting may be variable. And also, when I have multiple email addresses that meetings are being sent to, you're able to sign into all of your calendar accounts. And it provides a really nice view of all of your meetings. It has a really, like, minimal, I guess, design in your toolbar, where it shows you how many minutes until your next meeting. And from that toolbar button, you can click to go to the video conferencing software directly for whatever meeting is up next. And you don't have to, you know, scramble to open Google Meet, or Zoom, or Webex, or whatever it is. And that's [chuckles] been nice, again, just kind of, like, cutting down on the amount of stuff that I need to remember and shift through to get to my destination. JOËL: I think I'm hearing kind of two themes emerge out of some of the things that we've shared. And I'd like to maybe explore them a little bit; one is the power of keyboard shortcuts. And I think that's maybe what a lot of us think of when we think of productivity apps, at least developers, right? We love keyboard shortcuts. And then, secondly, I think I'm hearing automation, right? So, you don't have to go through and, like, find that email or calendar link to find the Zoom link or whatever. It shows up in your toolbar. So, maybe we can dig into a little bit of the idea of keyboard shortcuts. Are you a person who like customizes a lot of keyboard shortcuts? And is that a part of your kind of productivity setup? STEPHANIE: Well, a while ago, we had talked about not keyboard shortcuts in the context of productivity, but I think I had mentioned that I was trying to use my mouse less [chuckles] because I was getting a little bit of wrist pain. And I think that actually has rolled into a little bit of, you know, just, like, more efficient navigation on my computer. I think my keyboard shortcut usage is mostly around window management, like I mentioned. I do feel like I have, like, a medium amount of efficiency in my editor. Sometimes, when I'm pairing with other people who use Vim, I'm, like, shook by how fast they're moving. And I have figured out what works for me in VS Code, and I don't think I need to get any faster. You know, I've just accepted that [laughs]. In fact, it's almost, like, the amount of speed and friction that I have, in my experience, is actually a little more beneficial for the speed that my mind works [laughs]. It kind of helps me slow down when I need to think about what I'm doing as opposed to just, like, being able to, like, do anything at my fingertips, and kind of my brain is just not able to think that fast. And then navigating Slack, which is where I also spend a lot of my time on my computer. Now, using Slack with my keyboard shortcuts has been really helpful because, again, I'm not, like, mindlessly browsing or clicking around. I'm just looking at my unread messages. One non-keyboard shortcut I really like with Slack is Command + K, which is the jump-to feature. And so, I'm using that to go to a specific channel that I know I'm looking for or my own personal DMs, where I keep a lot of notes as well. And, honestly, I think that's, like, the extent of my keyboard shortcut usage. I'm curious what your setup is in regards to that, though. JOËL: I think I'm similar to you in that I have not kind of maxed out the productivity around keyboard shortcuts. You'd mentioned the jump to in Slack. Several pieces of software have something kind of like that. It might be some sort of omnibar, or a command palette, or something like that, where you really just need to know...CMD + K, or CMD + P, CTRL + P are common ones. Then you can sort of, like, type a few characters to just describe the thing you want to do, or a search you want to make, or something like that. Just knowing that one keyboard shortcut for your one piece of software gets you, I don't know, 80% of the productivity that you want. It's kind of amazing. I love the idea of an omnibar. STEPHANIE: Yeah, I hadn't heard of omnibar as a phrase before, but that feels very accurate. I like that a lot, too, where it's, like, oftentimes, I don't do whatever particular thing enough necessarily for it to justify a keyboard shortcut, for me at least. I'm still able to be fast enough to get to, like I said, that final destination or the action that I want to take with a more universal shortcut like that. JOËL: In my editor...so I use Vim, and I got used to Vim's keyboard-based navigation. And that is something that I deeply appreciate, maybe not so much for speed but being able to almost kind of feel one with the machine. And the cursor moves around, and I don't have to, like, think about moving it. It's really a magical sort of feeling. And it's become so much muscle memory now that I can just sort of...the cursor jumps around, things change out. And I'm not, like, constantly thinking about it to the point where now, if I'm in any other editor, I really want to get those shortcuts or, I guess, maybe not shortcuts but a Vim-style navigation, keyboard-based navigation. STEPHANIE: Yeah, it sounds like it's not so much the time savings but the power that you have or the control that you have over your tools. JOËL: Yes. And I think, again, the idea of focus. Navigation has stopped becoming a thing where I have to actively think about it. And I feel like I really do just sort of think my fingers are on the keyboard. I'm not having to, like, do a physical motion where I switch my hands. Like, I'm typing, and I'm writing code, then I have to switch my hand away to a mouse to shift around or, like, move my hand off the home row to, like, find the arrow keys and, like, move around. I just kind of think, and the cursor jumps up. It's great. Maybe I'd be the same if I'd put a lot of time into getting really good at, you know, maybe arrow-based navigation. I still think the mouse you have to move your hand off. It breaks just in the tiniest little way the flow. So, for me, I really appreciate being fully keyboard-based when I'm writing code. STEPHANIE: Right. Being one with the keyboard. As you were talking about that, I very viscerally felt, you know, when you encounter a new piece of technology, and you're trying to navigate it for the first time, and you're like, wow, like, that takes so much mental overhead that it's, you know, just completely disruptive to the goal that you're trying to achieve with the software itself. JOËL: Yeah, it is a steep learning curve. So, we've talked about custom keyboard shortcuts in the editor. But it's common for people to augment their editor with plugins, maybe even some kind of, like, snippet manager to maybe expand snippets or to paste common pieces in. Is that something that you've done in your editor setup? I think you said you use VS Code as your sort of daily editor. STEPHANIE: Yeah, that's right. I actually think I almost forgot about some of my little bits of automation because they are just so spelled for me [laughs] that I don't have to think about them. But you prompting me just now reminded me that there are a few that I'd like to shut out. Snippets-wise, I mostly use them for when I'm writing tests and just having the it blocks or the context blocks expand out for me so I don't have to do any of that typing of the setup there. And since I do use a terminal outside of my editor...I know that some people really like kind of having that integrated and being able to run tests even faster without having to switch to a different application, but I like having them separate. There is a really great plugin called Go to Spec where you can be in any, you know, application code file, and it will pull up the spec file for you. I've been really enjoying that, and that is what helps my test writing be a little more automated, even though I'm having it in separate applications. JOËL: That is really useful. So, as a Vim user, I also have a plugin that does something similar, where I can switch to what's considered the alternate for a particular file, which is typically the spec, or if I'm in the spec, it'll switch to the source file that the spec is testing. STEPHANIE: And then, I do have one really silly one, which is that I got so sick and tired of not remembering how to, you know, type the symbols for string interpolation in Ruby that has also become a snippet where the hash key and the [inaudible 28:48] brackets can [laughs] populate it for me. JOËL: I love it. So, Stephanie, I'd like to go back to something you were talking about earlier in the show. When you were sharing about what was new in your world and, you mentioned that you subscribe to the Substack and that you subscribe to, actually, a lot of newsletters, and you said something that really caught my attention. You were saying that you don't want these all cluttering up your email inbox. And instead, you send all of these to an RSS reader application. What kind of application do you like to use? STEPHANIE: I use Feedbin for this. And I actually think that this was recommended by Chris Toomey back in the day on a previous Bike Shed episode before you and I hosted the show. But that has been really awesome. It has a just, like, randomly generated email address you can use when you sign up for newsletters. You use that instead. And I really like having that distinction because I honestly treat my email inbox as a bit of a to-do list, where I am archiving or deleting a lot of stuff. And then the things that remain in my inbox are things that I need to either respond to, or do, or get back to in some way. And then yeah, when I've completed it, then that's when I archive or delete. But now that we do have all this great content back in email form, I needed a separate space for that, where I similarly kind of treat it as, like, a to-read list. And yeah, like, I look at my unreads in the newsletter RSS reader that I'm using and go through that when I'm in a blog-reading kind of mood. JOËL: I really like that separation because I'm kind of like you. I treat my inbox as a to-do list. And it's hard to have newsletters come in and, like, I'm not ready to read them. But I don't want them in my to-do, or, like, they'll just kind of sit there and get mixed in and maybe, like, filtered down to the bottom. So, having that explicit separation to say, hey, here's the place I go to when I am in a reading mood, then I can read things. I think there's also I've sort of trained myself to only check my email during certain times. So, for example, I will not check my work email outside of working hours. But if I'm on the subway going somewhere and I've got some time where I could do some reading, it would probably be a good thing to be going through some kind of newsletter or something like that. So, I either have to remember to go back to it, or what I tend to do is just scroll Twitter and hope that someone has shared that link, and then I read it there, which is not a particularly effective way of doing things. So, I might try the RSS feed reader tool. What was it called? STEPHANIE: Feedbin. JOËL: Feedbin. All right, I might try to get into that. STEPHANIE: Yeah, I look forward to hearing if that ends up working for you because I agree, having the two separate spaces has been really helpful because I don't want to get distracted by my email/to-do list inbox if I'm just wanting to do a bit of reading, enjoy some content. So, one more theme around productivity that I don't think we've quite mentioned yet, but maybe we've talked a little bit around, is the idea that it's, at least for me, it's a product of time and energy. So, even if you have all the time in the world, you know, you can just stare into space or, like, stare at a line of code and not get [laughs] anything done. JOËL: I know the feeling. STEPHANIE: Right? I am kind of curious how or if you have any techniques for managing that aspect. When your focus is low like, how can you kind of get that back so that you can get back to doing your tasks or getting what you need to do done? JOËL: If I have the time, taking a break is a really powerful thing, particularly taking a break and doing something physical. So, if I can go outside and take a walk around the block, that's really helpful. And if I need a shorter thing that can be done in, like, five minutes or something, I have a pull-up bar set up in my place. So, I'll just go up and do a few sets there and get a little bit of the heart rate slightly up, do a little bit of blood pumping. And that sometimes can help reset a little bit. STEPHANIE: Nice. Yes, I'm all for doing something else [chuckles]. Even when you know that this is a priority or is kind of urgent or whatever, but you just can't get yourself to do it, I've found that asking myself the question, "What would make this task easier for me right now?" has been helpful during those moments. And, for me, that might be grabbing a friend, like, maybe I'm blocked because I'm really just unmotivated. But having someone along can kind of inject some of that energy for me. And then, there's a really great blog post by a woman named Mandy Brown. It's called Energy Makes Time. And she talks about how doing the things that fill our cup, actually, you know, even though it seems like how could we possibly have time to be creative, or, like you said, maybe do something physical, those seem, like, lower on the priority list. But when you kind of get to the point where you just feel so overwhelmed and can't do anything else, and you just go do those things that you know feel good for you, you kind of come back with a renewed perspective on your to-do list. And you can see, like, what things actually aren't that critical and can be taken off. Or you just find that you have the capacity or the energy to get the things that you are really dreading out of the way. So, that has been really helpful when I just am feeling blocked. Instead of, like, feeling bad about how unproductive [chuckles] I'm being, I take that as a sign of an opportunity to do something else that might set me up for success later. JOËL: Yeah. I think oftentimes, it's easy to think of productivity in terms of, like, how can I maybe eliminate some tasks that are not high value through clever automation, or keyboard shortcuts, or things like that? But oftentimes, it can be more about just sort of managing your focus, managing your energy. And by doing that, you might have a much higher impact on both how productive you feel—because that's an important thing as well, in terms of motivation—and, you know, how productive you actually are at getting things done. STEPHANIE: Right. At least for me, like, not all TDM is bad and needs to be automated away, but, like, my ability to, like, handle it in the moment. Whereas yeah, sometimes maybe I've just run the same few lines that should be just a script [chuckles], that should just be, you know, one command, enough times that I'm like, oh, like, I can't even do this anymore because of just, like, other things going on. But other times, like, it's really not a big deal for me to just, you know, run a few extra commands. And, like, that is perfectly fine. JOËL: I love writing a good Vim macro. Yeah. So, it's important to think beyond just the fun tools and the code that we can write. Kind of think a little bit more at that energy and that mental level. That said, there are a ton of great tools out there. We've named-dropped a bunch of them in this episode. For our listeners who are wondering or who weren't, like, necessarily taking notes, we've linked all of them in the show notes: bikeshed.fm. You can find them there. STEPHANIE: On that note, shall we wrap up? JOËL: Let's wrap up. STEPHANIE: Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeee!!!! ANNOUNCER: This podcast is brought to you by thoughtbot, your expert strategy, design, development, and product management partner. We bring digital products from idea to success and teach you how because we care. Learn more at thoughtbot.com.

The Bike Shed
396: Build vs. Buy

The Bike Shed

Play Episode Listen Later Aug 8, 2023 33:57


Joël has been fighting a frustrating bug where he's integrating with a third-party database, and some queries just crash. Stephanie shares her own debugging story about a leaky stub that caused flaky tests. Additionally, they discuss the build vs. buy decision when integrating with third-party systems. They consider the time and cost implications of building their own integration versus using off-the-shelf components and conclude that the decision often depends on the specific needs and priorities of the project, including how quickly a solution is needed and whether the integration is core to the business's value proposition. Ruby class instance variables (https://www.codegram.com/blog/understanding-class-instance-variables-in-ruby/) Build vs Buy by Josh Clayton (https://thoughtbot.com/blog/build-vs-buy-considerations-for-new-products) Sustainable Rails (https://sustainable-rails.com/) Transcript: STEPHANIE: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. JOËL: And I'm Joël Quenneville. And together, we're here to share a bit of what we've learned along the way. STEPHANIE: So, Joël, what's new in your world? JOËL: My world has been kind of frustrating recently. I've been fighting a really frustrating bug where I'm integrating with a third-party database. And there are queries that just straight-up crash. Any query that instantiates an instance of an ActiveRecord object will just straight-up fail. And that's because before, we make the actual query, almost like a preflight query that fetches the schema of the database, particularly the list of tables that the database has, and there's something in this schema that the code doesn't like, and everything just crashes. Specifically, I'm using an ODBC connection. I forget exactly what the acronym stands for, Open Database connection, maybe? Which is a standard put up by Microsoft. The way I'm integrating it via Ruby is there's a gem that's a C extension. And somewhere deep in the C extension, this whole thing is crashing. So, I've had to sort of dust off some C a little bit to look through. And it's not super clear exactly why things are crashing. So, I've spent several days trying to figure out what's going on there. And it's been really cryptic. STEPHANIE: Yeah, that does sound frustrating. And it seems like maybe you are a little bit out of your depth in terms of your usual tools for figuring out a bug are not so helpful here. JOËL: Yeah, yeah. It's a lot harder to just go through and put in a print or a debug statement because now I have to recompile some C. And, you know, you can mess around with some things by passing different flags. But it is a lot more difficult than just doing, like, a bundle open and binding to RB in the code. My ultimate solution was asking for help. So, I got another thoughtboter to help me, and we paired on it. We got to a solution that worked. And then, right before I went to deploy this change, because this was breaking on the staging website, I refreshed the website just to make sure that everything was breaking before I pushed the fix to see that everything is working. This is a habit I've picked up from test-driven development. You always want to see your test break before you see it succeed. And this is a situation where this habit paid off because the website was just working. My changes were not deployed. It just started working again. Now it's gotten me just completely questioning whether my solution fixes anything. The difficulty is because I am integrating [inaudible 03:20] third-party database; it's non-deterministic. The schema on there is changing rather frequently. I think the reason things are crashing is because there's some kind of bad data or data that the ODBC adapter doesn't like in this third-party system. But it just got introduced one day; everything started breaking, and then somehow it got removed, and everything is working again without any input or code changes on my end. So, now I don't trust my fix. STEPHANIE: Oh no. Yeah, I would struggle with that because your reality has come crashing down, [laughs] or how you understood reality. That's tough. Where do you think you'll go from here? If it's no longer really an issue in this current state of the schema, is it worth pursuing further at this time? JOËL: So, that's interesting because it turns into a prioritization problem. And for this particular project, with the deadlines that we have, we've decided it's not worth it. I've opened up a PR with my fix, with some pretty in-depth documentation for why I thought that was the fix and what I think the underlying problem is. If this shows up again in the next few days, I'll have that PR that I can pull in and see if it fixes things, and if it doesn't, I'll probably just close that PR, but it'll be available for us if we ever run into this again. I've also looked at a few potential mitigating situations. Part of the problem is that this is a, like, massive system. The Rails app that I'm using really doesn't need to deal with this massive database. I think there's, you know, almost 1,000 tables, and I really only care about a subset of tables in, like, one underlying schema. And so, I think by reducing the permissions of my database user to only those tables that I care about, there's a lower chance of me triggering something like this. STEPHANIE: Interesting. What you mentioned about, you know, having that PR continue to exist will be really helpful for future folks who might come across the same problem, right? Because then they can see, like, all of the research and investigation you've already done. And you may have already done this, but if you do think it's a schema issue, I'm curious about whether the snapshot of the schema could be captured from when it was failing to when it has magically gotten fixed. And I wonder if there may be some clues there for some future investigator. JOËL: Yeah. I'm not sure what our backup situation is because this is a third-party system, so I'd have to figure out what things are like in the admin interface there. But yeah, if there is some kind of auditing, or snapshots, or backups, or something there, and I have rough, you know, if I know it's within a 24-hour period, maybe there's something there that would tell me what's happening. My best guess is that there's some string that is longer than expected or maybe being marked as a CHAR when it should be a VARCHAR, or maybe something that's not a non-UTF-8 encoded character, or something weird like that. So, I never know exactly what was wrong in the schema. There's some weird string thing happening that's causing the Ruby adapter to blow up. STEPHANIE: That also feels so unsatisfying [laughs] for you. I could imagine. JOËL: Yeah, there's no, like, clean resolution, right? It's a, well, the bug is gone for now. We're trying to make it less likely for it to pop up again in the future. I'm trying to leave some documentation for the next person who's going to come along, and I'm moving forward, fingers crossed. Is that something you've ever had to do on one of your projects? STEPHANIE: Given up? Yes. [laughter] I think I have definitely had to learn how to timebox debugging and have some action items for when I just can't figure it out. And, you know, like we mentioned, leaving some documentation for the next person to pick up, adding some additional logging so that maybe we can get more clues next time. But, you know, realizing that I do have to move on and that's the best that I can do is really challenging. JOËL: So, you used two words here to describe the situation: one was giving up, and the other one was timebox. I think I really like the idea of describing this as timeboxing. Giving up feels kind of like, defeatist. You know, there's so many things that we can do with our time, and we really have to be strategic with how we prioritize. So, I like the idea of describing this as a timeboxing situation. STEPHANIE: Yeah, I agree. Maybe I should celebrate every time that I successfully timebox something [laughs] according to how I planned to. [laughs] JOËL: There's always room to extend the timebox, right? STEPHANIE: [laughs] It's funny you bring up a debugging mystery because I have one of my own to share today. And I do have to say that it ended up being resolved, [chuckles] so it was a win in my book. But I will call this the case of the leaky stub. JOËL: That sounds slightly scary. STEPHANIE: It really was. The premise of what we were trying to figure out here was that we were having some flaky tests that were failing with a runtime error, so that was already kind of interesting. But it was quickly determined it was flaky because of the tests running in a certain order, so-- JOËL: Classic. STEPHANIE: Right. So, I knew something was happening, and any tests that came after it were running into this error. And I was taking a look, and I figured out how to recreate it. And we even isolated to the test itself that was running before everything else, that would then cause some problems. And so, looking into this test, I saw that it was stubbing the find method on an ActiveRecord model. JOËL: Interesting. STEPHANIE: Yeah. And the stubbed value that we were choosing to return ended up being referenced in the tests that followed. So, that was really strange to me because it went against everything I understood about how RSpec cleans up stubs between tests, right? JOËL: Yeah, that is really strange. STEPHANIE: Yeah, and I knew that it was referencing the stub value because we had set a really custom, like, ID value to it. So, when I was seeing this exact ID value showing up in a test that seemed totally unrelated, that was kind of a clue that there was some leakage happening. JOËL: So, what did you do next? STEPHANIE: The next discovery was that the error was actually raised in the factory setup for the failing tests and not even getting to running the examples at all. So, that was really strange. And digging into the factories was also its own adventure because there was a lot of complexity in the factories. A lot of them used hooks as well that then called some application code. And it was a wild goose chase. But ultimately, I realized that in the factory setup, we were calling some application code for that model where we had stubbed the find, and it had used the find method to memoize a class instance variable. JOËL: Oh no. I can see where this is going. STEPHANIE: Yeah. So, at some point, our model.find() returned our, you know, stub value that we had wanted in the previous test. And it got cached and just continued to leak into everything else that eventually would try to call that memoized method when it really should have tried to do that look-up for a separate record. JOËL: And class instance variables will persist between tests as long as they're on the same thread, right? STEPHANIE: Yeah, as far as I understand it. JOËL: That sounds like a really frustrating journey. And then that moment when you see the class instance variable, and you're like, oh no, I can't believe this is happening. STEPHANIE: Right? It was a real recipe for disaster, I think, where we had some, you know, really complicated factories. We had some sneaky caching issues, and this, you know, totally seemingly random runtime error that was being raised. And it was a real wild goose chase because there was not a lot of directness in going down the debugging path. I feel like I went around all over the codebase to get to the root of it. And, in the end, you know, we were trying to come up with some takeaways. And what was unfortunate was that you know, like, normally, stubbing find can be okay if you are, you know, really wanting to make sure that you are returning your mocked value that you may have, like, stubbed some other stuff on in your test. But because of all this, we were like, well, should we just not stub find on this really particular model? And that didn't seem particularly sustainable to make as a takeaway for other developers who want to avoid this problem. So, in the end, I think we scoped the stub to be a little more specific with the arguments that we wanted to target. And that was the way that we went forward with the particular flaky test at hand. JOËL: It sounds like the root cause of the problem was not so much the stub as it was the fact that this value is getting cached at the class level. Is that right? STEPHANIE: Yes and no. It seems like a real pain for running the tests. But I'm assuming that it was done for a good reason in production, maybe, maybe not. To be fair, I think we didn't need to cache it at all because it's calling a find, which is, you know, should be pretty quick and doesn't need to be cached. But who knows? It's hard to tell. It was really old code. And I think we were feeling also a little nervous to adjust something that we weren't sure what the impact would be. JOËL: I'm always really skeptical of caching. Caching has its place. But I think a lot of developers are a little too happy to introduce one, especially doing it preemptively that, oh well, we might need a cache here, so why not? Let's add that. Or even sometimes, just as a blind solution to any kind of slowness, oh, the site is slow; let's throw a cache here and hope for the best. And the, like, bedrock, like, rule zero of any kind of performance tuning is you've got to measure before and after and make sure that the change that you introduce actually makes things better. And then, also, is it better enough speed-wise that you're willing to pay any kind of costs associated to maintaining the code now that it's more complex? And a lot of caches can have some higher carrying costs. STEPHANIE: Yeah, that's a great point. This debugging mystery an example of one of them. JOËL: How long did it take you to figure out the solution here? STEPHANIE: So, like you, I actually was on a bit of the incorrect path for a little while. And it was only because this issue affected a different flaky test that someone else was investigating that they were able to connect the dots and be like, I think these, you know, two issues are related. And they were the ones who ultimately were able to point us out to the offending test if you will. So, you know, it took me a few days. And I imagine it took the other developer a few days. So, our combined effort was, like, over a week. JOËL: Yep. So, for all our listeners out there, you just heard that Stephanie and I [laughs] both went on multi-day debugging journeys. That happens to everyone. Just because we've been doing this job for years doesn't mean that every bug is, like, a thing that we figure out immediately. So, separately from this bug that I've been working on, a big issue that's been front of mind for me on this project has been the classic build versus buy decision. Because we're integrating with a third-party system, we have to look at either building our own integration or trying to use some off-the-shelf components. And there's a few different levels of this. There are some parts where you can actually, like, literally buy an integration and think through some of the decisions there. And then there's some situations where maybe there's an open-source component that we can use. And there's always trade-offs with both the commercial and the open-source situation. And we have to decide, are we willing to use this, or do we want to build our own? And those have been some really interesting discussions to have. STEPHANIE: Yeah. I think you actually expanded this decision-making problem into a build versus buy versus open source because they are kind of, you know, really different solutions with different outcomes in terms of, you know, maintenance and dependencies, right? And that all have, like, a little bit of a different way to engage with them. JOËL: Interesting. I think I tend to think of the buy category, including both like commercial off-the-shelf software and also open-source off-the-shelf software, things that we wouldn't build custom for ourselves but that are third-party components that we can pull in. STEPHANIE: Yeah, that's interesting because I had a bit of a different mental model because, in my head, when you're buying a commercial solution, you, you know, are maybe losing out on some opportunities for customization or even, like, forking it on your own. So, with an open-source solution, there could be an aspect of making it work for you. Whereas for a commercial solution, you really become dependent on that other company and whether they are willing to cater [laughs] to your needs or not. JOËL: That's fair. For something that's closed-source where you don't actually have access to the code, say it's more of a software as a service situation, then, yeah, you're kind of locked in and hoping that they can provide the needs that you have. On the flip side, you are generally paying for some level of support. The quality of that varies sometimes from one vendor to another. But if something goes wrong, usually, there's someone you can email, someone you can call, and they will tell you how to fix the problem, or they will fix it on their end. STEPHANIE: For the purposes of this conversation, should we talk about the differences, you know, building yourself or leaning on an existing built-out solution for you? JOËL: The project I'm working on is integrating with a Snowflake data warehouse, which is an external place that stores data accessible through something SQL-like. And one of the things that's attractive about this is that you can pull in data from a variety of different sources, transform it, and have it all stored in a kind of standardized structure that you can then integrate with. So, for pulling data in, you can build your own sort of ingestion pipeline, if you want, with code, and their APIs, and things. But there are also third-party vendors that will give you kind of off-the-shelf components that you can use for a lot of popular other data sources that you might want to pull. So, you're saying; I want to pull from this external service. They've probably got a pre-built connector for it. They can also do things like pull from an arbitrary Postgres database on some other server if that's something you have access to. It becomes really attractive because all you need to do is create an account on this website, plug in a few, like, API keys and URLs. And, all of a sudden, data is just flowing from one third-party system into your Snowflake data Warehouse, and it all just kind of works. And you don't have to bother with APIs, or ODBC, or any of that kind of stuff. STEPHANIE: Got it. Yeah, that does sound convenient. As you were talking about this, I was thinking about how if I were in the position of trying to decide how to make that integration happen, the idea of building it would seem kind of scary, especially if it's something that I don't have a lot of expertise in. JOËL: Yeah, so this was really interesting. In the beginning of the project, I looked into a little bit of what goes into building these, and it's fairly simple in terms of the architecture. You just need something that writes data files to typically something like an S3 bucket. And then you can point Snowflake to periodically pull from that bucket, and you write an import script to, you know, parse the columns and write them to the right tables in the structure that you want inside Snowflake. Where things get tricky is the actual integration on the other end. So, you have some sort of third-party service. And now, how do you sort of, on a timer maybe, pull data from that? And if there are data changes that you're synchronizing, is it just all append-only data? Or are you allowing the third-party service to say, "Hey, I deleted this record, and you should reflect that in Snowflake?" Or maybe dealing with an update. So, all of these things you have to think about, as well as synchronization. What you end up having to do is you probably boot up some kind of small service and, you know, maybe this is a small Ruby app that you have on Heroku, maybe this is, like, an AWS Lambda kind of thing. And you probably end up running this every so many seconds or so many minutes, do some work, potentially write some files to S3. And there's a lot of edge cases you have to think about to do it properly. And so, not having to think about all of those edge cases becomes really enticing when you're looking to potentially pay a third party to do this for you. STEPHANIE: Yeah, when you used the words new service, I bristled a little bit [laughs] because I've definitely seen this happen maybe on a bit of a bigger scale for a tool or solution for some need, right? Where some team is formed, or maybe we kind of add some more responsibilities to an existing team to spin up a new service with a new repo with its own pipeline, and it becomes yet another thing to maintain. And I have definitely seen issues with the longevity of that kind of approach. JOËL: The idea of maintaining a fleet of little services for each of our integrations seemed very unappealing to me, especially given that setting something like this up using the commercial approach probably takes 30 minutes per third-party service. There's no way I'm standing up an app and doing this whole querying every so many minutes, and getting data, and transforming it, and writing it to S3, and addressing all the edge cases in 30 minutes. And it's building something that's robust. And, you know, maybe if I want to go, like, really low tech, there's something fun I could do with, like, a Zapier hook and just, like, duct tape a few services together and make this, like, a no-code solution. I still don't know that it would have the robustness of the vendor. And I don't think that I could do it in the same amount of time. STEPHANIE: Yeah. I like the keyword robustness here because, at first, you were saying, like, you know, this looked relatively small in scope, right? The code that you had to write. But introducing all of the variables of things that could go wrong [laughs] beyond the custom part that you actually care about seemed quite cumbersome. JOËL: I think there's also, at this point, a lot of really interesting prioritization questions. There are money questions, but there are also time questions you have to think about. So, how much dev time do we want to devote upfront to building out these integrations? And if you're trying to move fast and get a proof of concept out, or even get, like, an MVP out in front of customers, it might be worth paying more money upfront to a third-party vendor because it allows you to ship something this week rather than next month. STEPHANIE: Yeah. The "How soon do you need it?" is a very good question to ask. Another one that I have learned to include in my arsenal of, you know, evaluating this kind of stuff comes from a thoughtbot blog by Josh Clayton, where he, you know, talks about the build versus buy problem. And his takeaway is that you should buy when your business is not dependent on it. JOËL: When it's not part of, like, the core, like, value-add that your business is doing. Why spend developer time on something that's not, like, the core thing that your product is when you can pay someone else to do it for you? And like we said earlier, a lot of that time ends up being sunk into edge cases and robustness and things like that to the point where now you have to build an expertise in a, like, secondary thing that your business doesn't really care about. STEPHANIE: Yeah, absolutely. I think this is also perhaps where very clear business goals or a vision would come in handy as well. Because if you're considering building something that doesn't quite support that vision, then it will likely end up continuing to be deprioritized over the long term until it becomes this thing that no one is accountable for maintaining and caring for. And just causes a lot of, honestly, morale issues is what I've seen when some service that was spun up to try to solve a particular problem is kind of on its last legs and has been really neglected, and no one wants to work on it. But it ends up causing issues for the rest of the development team. But then they're also really focused on initiatives that actually do provide the business value. That is a really hard balancing act that I've seen teams struggle with. JOËL: Earlier this year, we were talking about the book Sustainable Rails. And it really hammers home the idea of a carrying cost for the code, and I think that's exactly what we're talking about here. And that carrying cost can be time and money. But I like that you also mentioned the morale effects. You know, that's a carrying cost that just sort of depresses the productivity of your team when morale is low. STEPHANIE: Yeah, absolutely. I'm curious if we could discuss some of the carrying costs of buying a solution and where you've seen that become tricky. JOËL: The first thing to look at is the literal cost, the money aspect of things. And I think it's a really interesting situation for the business models for these types of Snowflake connectors because they typically charge by the amount of data that you're transmitting, so per row of data that you're transmitting. And so, that cost will fluctuate depending on whether the third-party service you're integrating with is, like, really chatty or not. When you contrast that to building, building typically has a relatively fixed cost. It's a big upfront cost, and then there's some maintenance cost to go with it. So, if I'm building some kind of integration for, let's say, Shopify, then there's the cost I need to build up front to integrate that. And if that takes me, I don't know, a week or two weeks, or however long it is, you know, that's a pretty big chunk of time. And my time is money. And so, you can actually do the math and say, "Well, if we know that we're getting so many rows per day at this rate from the commercial vendor, how many weeks do we have to pay for the commercial one before we break even and it becomes more expensive than building it upfront, just in terms of my time?" And sometimes you do that math, and you're like, wow, you know, we could be going on this commercial thing for, like, two years before we break even. In that case, from a purely financial point of view, it's probably worth paying for that connector. And so, now it becomes really interesting. You say, okay, well, which are the connectors that we have that are low volume, and which are the ones that are high volume? Because each of them is going to have a different break-even point. The ones that you break even after, you know, three or four weeks might be the ones that become more interesting to have a conversation about building. Whereas some of the others, it's clearly not worth our time to build it ourselves. STEPHANIE: The way you described this problem was really interesting to me because it almost sounds like you found the solution somewhere in the middle, potentially, where, you know, you may try building the ones that are highest priority, and you end up learning a lot from that experience, right? That could make it easier or at least, like, set you up to consider doing that moving forward in the future if you find, like, that is what is valuable. But it's interesting to me that you kind of have the best of both worlds of, like, getting the commercial solutions now for the things that are lower value and then doing what you can to get the most out of building a solution. JOËL: Yeah. So, my final recommendation ended up being, let's go all commercial for now. And then, once we've built out something, and because speed is also an issue here, once we've built out something and it's out with customers, and we're starting to see value from this, then we can start looking at how much are we paying per week for each of these connectors? And is it worth maybe going back and building our own for some of these higher-volume connectors? But starting with the commercial one for everything. STEPHANIE: Yeah, I actually think that's generally a pretty good path forward because then you are also learning about how you use the commercial solution and, you know, which features of it are critical so that if you do eventually find yourselves, like, maybe considering a shift to building in-house, like, you could start with a more clear MVP, right? Because you know how your team is using an existing product and can focus on the parts that your business are dependent on. JOËL: Yeah, it's that classic iterative development style. I think here it's also kind of inspired by a strategy I typically use for performance, which is make it work before you try to make it fast. And, actually, make it work, then profile, then measure, find the hotspots, and then focus on making those things fast. So, in this case, instead of speed, we're talking about money. So, it's make it work, then profile, find the parts that are expensive, and make the trade-off of, like, okay, is it worth investing into making that part less expensive in terms of resources? STEPHANIE: I like that as a framework a lot. JOËL: A lot of what we do as programmers is optimization, right? And sometimes, we're optimizing for execution time. Sometimes we're optimizing for memory cost, and sometimes we're optimizing for dollars. STEPHANIE: Yeah, that's really interesting because, with the buy solution, you know very clearly, like, how much the thing will cost. Whereas I've definitely seen teams go down the building route, and it always takes longer than expected [laughs], and that is money, right? In terms of the developer's time, for sure. JOËL: Yeah, definitely, like, add some kind of multiplier when you're budgeting out that build alternative because, quite likely, there are some edge cases that you haven't thought about that the commercial partner has, and you will have to spend more time on that than you expected. STEPHANIE: Yeah, in addition to whatever opportunity cost of not working on something that is driving revenue for the business right now. JOËL: Exactly. STEPHANIE: So, the direction of this conversation ended up going kind of towards, like, what is best for the team at, like, a product and company level. But I think that we make these decisions a lot more frequently, even when it comes to whether we pull in a gem or, you know, use an open-source tool or not. And I would be really interested in discussing more of that in another episode. JOËL: Yeah. That gets into some controversial takes, right? It's the evergreen topic of: do we build it ourselves, or do we pull in some kind of third-party package? STEPHANIE: Something for the future to look forward to. On that note, shall we wrap up? JOËL: Let's wrap up. STEPHANIE: Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeeeee!!!!! ANNOUNCER: This podcast is brought to you by thoughtbot, your expert strategy, design, development, and product management partner. We bring digital products from idea to success and teach you how because we care. Learn more at thoughtbot.com.

The Bike Shed
390: The Truth about Truthiness

The Bike Shed

Play Episode Listen Later Jun 27, 2023 39:58


Joël's new work project involves tricky date formats. Stephanie has been working with former Bike Shed host Steph Viccari and loved her peer review feedback. The concept of truthiness is tough to grasp sometimes, and JavaScript and Ruby differ in their implementation of truthiness. Is this a problem? Do you prefer one model over the other? What can we learn about these design decisions? How can we avoid common pitfalls? [EDI](https://www.stedi.com/blog/date-and-time-in-edi](https:/www.stedi.com/blog/date-and-time-in-edi) [Booleans don't exist in Ruby](https://thoughtbot.com/blog/what-is-a-boolean](https://thoughtbot.com/blog/what-is-a-boolean) [Rails valid? method](https://api.rubyonrails.org/classes/ActiveRecord/Validations.html#method-i-valid-3F](https://api.rubyonrails.org/classes/ActiveRecord/Validations.html#method-i-valid-3F) Parse, don't validate (https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/) Javascript falsiness rules (https://www.sitepoint.com/javascript-truthy-falsy/) Transcript: STEPHANIE: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. JOËL: And I'm Joël Quenneville. And together, we're here to share a little bit of what we've learned along the way. STEPHANIE: So, Joël, what's new in your world? JOËL: So I'm on a new project at work. And I'm doing some really interesting work where I'm connecting to a remote database third-party system directly and pulling data from that database into our system, so not via some kind of API. And one thing that's been really kind of tricky to work with are the date formats on this third-party database. STEPHANIE: Is the date being stored in an unexpected format or something like that? JOËL: Yes. So there's a few things that are weird with it. So this is a value that represents a point in time, and it's not stored as a date-time value. Instead, it's stored separately as a date column and a time column. So a little bit of weirdness there. We can work with it, except that the time column isn't actually a time value. It is an integer. STEPHANIE: Oh no. JOËL: Yeah. And if you're thinking, oh, okay, an integer, it's going to be milliseconds since midnight or something like that, which is basically how Postgres' time of day works under the hood, nope, that's not how it works. It's a positional digit thing. So, if you've got the number, you know, 1040, that means 10:40 a.m. STEPHANIE: Oh my gosh. Is this in military time or something like that, at least? JOËL: Yes, it is military time. But it does allow for all these, like, weird invalid values to creep in. Because, in theory, you should never go beyond 2359. But even within the hours that are allowed, let's say, between 1000 and 1100, so between 10:00 and 11:00 a.m., a clock only goes up to 59 minutes. But our base 10 number system goes up to 99, so it's possible to have 1099, which is just an invalid time. STEPHANIE: Right. And I imagine this isn't validated or anything like that. So it is possible to store some impossible time value in this database. JOËL: I don't know for sure if the data is validated or not, but I'm not going to trust that it is. So I have to validate it on my end. STEPHANIE: That's fair. One thing that is striking me is what time is zero? JOËL: So zero in military time or just 24-hour clocks in general is midnight. So 0000, 4 zeros, is midnight. What gets interesting, though, is that because it's an integer, if you put the number, you know, 0001 into the database, it's just going to store it as 1. So I can't even say, oh, the first two digits are the hours, and the second two digits are the minutes. And I'm actually dealing with, I think, seconds and then some fractional part of seconds afterwards. But I can't say that because the number of digits I have is going to be inconsistent. So, first, I need to zero pad. Well, I have to, like, turn it into a string, zero pad the numbers so it's eight characters long. And then, start slicing out pairs of numbers, converting them back into integers, validating them within a range of either 0 to 23 or 0 to 59, and then reconstructing a time object out of that. STEPHANIE: That sounds quite painful. JOËL: It's a journey for sure. STEPHANIE: Do you have any idea why this is the case or why it was created like this originally? JOËL: I'm not sure. I have a couple of theories. I've seen this kind of thing happen before. And I think it's a common way for developers who maybe haven't put a lot of thought into how time works to just sort of think, oh, the human representation. I need something to go in the database. On my digital clock, I have four digits, so why not put four digits in the database? Simple enough. And then don't always realize that there's all these edge cases to think about and that human representations aren't always the best way to store data. STEPHANIE: I like how you just said that that, you know, we as humans have developed systems that are not quite, you know, the same as how a computer would. But what was interesting to me...something you said earlier about time being a fixed point. And that is different from time being a value, right? And so here in this situation, it sounds like we're storing time as a value, but really, it's more of the idea of, like, a point. JOËL: Interesting. What is the difference for you between a point and a value? STEPHANIE: I suppose a value to me...And I think we talked about this a little bit on a previous episode about value objects and also how we stored numbers, like phone numbers and credit card numbers and stuff like that. But a value, like, I might want to do math on. But I don't really want to do math on time. Or, specifically, if I have this idea of a specific point in time, like, that is fixed and not something that I could mutate and expect it to be the same thing that I was trying to express the first time around. JOËL: Oh, that's interesting because I think when it comes to time and specifically points in time, I sometimes do want to do math on them. And so, specifically, I might want to say, what is the time that has elapsed between two points in time? Maybe I have a start time and an end time, and I want to say how much distance is there between the two? If you use this time system where you're storing it as an integer number where the digits have positional values, because there's all those gaps between, you know, 59 and 99 that are not valid, math breaks down. You've broken math by storing it that way. So you can't get an accurate difference by doing math on that, as opposed to if you store it as a counter, which is what databases do under the hood, but you could do manually. If you just wanted to use an integer column, then you can do math because it's just a number of seconds since the beginning of the day. And you can subtract those from each other. And now you have these number of seconds between the two of them. And if you want them in minutes or hours, you divide by six here, 3600, and you get the correct response. STEPHANIE: Yeah, that is really interesting because [chuckles] in this situation, you have the worst of both worlds, it seems like. [laughs] JOËL: The one potential benefit is, I think, it's maybe more human-readable. Although, at that point, I would say if you're not doing math on it and you want something human-readable, you probably don't want an integer. You probably want a string. And maybe you even store it as, like, ISO 8601 time string in the database, or even just hour:minute:second split by a colon or whatever it is but just as a string. Now it's human-readable. You can still sort by it if you go from largest to smallest increment in your format. You can't do math, but then you weren't doing math on it anyway. So that's probably a nice compromise solution. But, ideally, you'd use a native, you know, time of day column or a date-time or something like that. STEPHANIE: For sure. Well, it sounds like something fun to contend with. [laughs] JOËL: One thing that was brought to my attention that I'd never heard about before is that potentially a reason it's stored that way is because of an old data format called EDI—I think it's Electronic Data Interchange—that dates from ages ago, you know, the '60s or '70s, something like that. Before, we had a lot of standards for data; this is how...an emerging standard that came for moving data between systems. And it has a lot of, like, weird things with the way it's set up. But if you're dealing with any sort of older data warehouses or older business systems, they will often exchange. And sometimes, you're going to store data in something that approximates this older EDI format. And, apparently, it has some weirdness around dates where it kind of does something like this. So someone was suggesting, oh, well, if you're interacting with maybe an older, you know, a lot of, like, e-commerce platforms or banking systems, probably airline systems, the kind of things you'd expect to be written in, let's say, COBOL... STEPHANIE: [laughs] JOËL: Have a system that's kind of like this. So maybe that wouldn't be quite as surprising. STEPHANIE: Yeah, that is really interesting. It just sounds like sometimes you're limited by the technology that you're interacting with. And I guess the one plus side is that, in your system, you can make the EDI work for you, hopefully. [laughs] Whereas perhaps if you are talking to some of those older technologies that don't know how else to convert date types and things like that, like, you just kind of have to work with what's available to you. JOËL: Yeah. And that's got me realizing that a lot of these older, archaic systems are still online and very much a part of our software ecosystem and that there's a lot of value in learning some software history so that I'm able to recognize them and sort of work constructively with them when I have to interact with that kind of system. STEPHANIE: Yeah, I really like that mindset. JOËL: So, Stephanie, what's new in your world? STEPHANIE: So, last week, we talked about writing reviews for ourselves and our peers. And one thing that happened in between the last episode and this one is Steph Viccari, former co-host of this podcast, who I've been working with really closely on this project of mine; she was writing a peer review for me. And one thing that she did that I really loved was she sent me a message and asked me a few questions about the direction of the review that I was wanting and what kind of feedback would be helpful for me. And some of the things she asked were, you know, "Is there a skill that you're actively working on? Is there a skill you'd like to start working on?" And, like, what my goals are for the feedback. Like, how can she tailor this feedback to things that would help my progression and what I hope to achieve? And then my favorite question that she asked was, "What else should I know but didn't think to ask?" And I thought that was a really cool way of approaching. You know, she's coming to this, like, wanting to be helpful, but then even still, like, there are things that she knows that I am kind of the expert on in my own career progression, and I really liked that. I think I'd mentioned last week that part of the feedback you want to be giving is, you know, something that will be helpful for that person, and centering them in it, instead of you is just a really awesome way to do that. So I was very appreciative that she asked me those questions. JOËL: That's incredibly thoughtful. I really appreciate that she sent that out to you. What did you respond for the is there something else I should know but didn't know to ask? STEPHANIE: Yeah. I mentioned that more and more, I'm realizing that I am not interested in management. And so what would be really helpful for me was to ground most of the feedback in terms of my, like, technical contributions. And also, that one thing that I'm thinking about a lot is how to be an individual contributor and still have an impact on team health and culture because that is something I care about. And so I wanted to share that with her because if there are things that she can identify in those aspects, that would be really awesome for me. And that can kind of help guide her away from a path that I'm not interested in. JOËL: I think having that kind of self-awareness is really powerful for yourself. But then, when you can leverage that to get better reviews that will help you get even further down the path that you're hoping to go, and, wow, isn't that just, like, a virtuous cycle right there that's just building on itself? STEPHANIE: Yeah, for sure. I think the other thing I wanted to share about what's new in my world that has been just a real boost to my mood is how long the days are right now because it's summer in North America. And yesterday was the summer solstice, and so we had the longest day of the year. The sun didn't set until 8:30 p.m. And I just took the opportunity to be outside. I took a swim in the lake, which was my first swim of the season, which was really special. And my friend had just a nice, little, like, backyard campfire hang out. And we got to roast some marshmallows and just be outside till the sunset. And that was really nice. JOËL: When you say the lake, is that Lake Michigan? STEPHANIE: Yes, I do mean Lake Michigan. [laughs] I forget that some people just don't have a giant lake next to them [laughs] that they refer to as the lake. JOËL: It's practically an inland sea. STEPHANIE: Yes, you can't see the other side of it. So, to me, it kind of feels like an ocean. And yesterday, when I was in the water, I also was thinking that I felt like I was just in a giant bathtub. [chuckles] JOËL: So I'm in New England, and most of the bodies of water here are not called lakes. They're called ponds. STEPHANIE: Really? JOËL: No matter the size. STEPHANIE: Oh. JOËL: I guess lakes is reserved for things like what you have that are absolutely massive, and everything else is a pond. STEPHANIE: That's so funny because I think of ponds as much smaller in scale, like a quaint, little pond. But that's a really fun piece of regional vocabulary. So one interesting thing happened on my client project this week that I wanted to get your input on because I've definitely seen this problem before, and still, it continues to crop up. But I was working on a background job that we were passing a Boolean value into as one of the parameters that we would then, you know, use down the line in determining some logic. And we, you know, made this change, and then we were surprised to find out that it continued to not work the way we expected. So we got some bug reports that we weren't getting into one of the branches of the conditional based on that Boolean value that we were passing in. And we learned, after a little bit of digging, that it turns out that those values are serialized because this job is actually saved in -- JOËL: Oh no. STEPHANIE: [chuckles] Yeah. It inherits from the ActiveRecord, actually, and is saved in our database. And so, in that process, the Boolean value got serialized into a string and then did not get converted [chuckles] back into a Boolean. And so when we do that if variable check, it was always evaluating to true because strings are truthy in Ruby. JOËL: Right. The string false is still truthy. STEPHANIE: A string false is still truthy. And we ended up having to coerce it into a Boolean value to fix our little bug. But it was just one of those things that was really frustrating, you know when you feel really confident that you know what you're doing. You're just writing a conditional statement. And it turns out the language beguiled you. [laughs] JOËL: I've run into similar bugs when I'm reading from environment variables because environment variables are always strings. But it's common that you'll be setting some kind of flag. So when you're setting the environment variable, you're setting something to true or false. But then, when you're reading it, you have to explicitly check if this environment variable double equals the string true, then do the thing. Because if you just check for the value, it will never be false. STEPHANIE: Right. And I kind of hate seeing code like that. I don't know; something about it just rubs me the wrong way because it just seems so strange, I suppose. JOËL: Is it just, like, those edge cases where you specifically have to do some kind of, like, double equals check on a value that feels like it should be a Boolean? Or do you kind of feel a bit weird about the concept of truthiness in general? STEPHANIE: I think the concept of truthiness is very hard to grasp sometimes. And, you know, when you're talking about that edge case where we are setting...we're checking if the string is the string true. That means that everything else is false, right? So, in some ways, I think it's just really confusing because we've expanded the definition of what true and false mean to be anything. JOËL: That's really interesting because now you have to pick. Are you checking against the string true, or are you negatively checking against the string false? And those are not equivalent because, like you said, now you're excluding every other string. So, is the string "Hello, World" put you in the false branch or the true branch? STEPHANIE: Who's to say? [laughs] I think a similar conundrum also occurs when we use predicate matchers in our tests. I think this is a gripe that I've talked about a little bit with others when we're writing tests and especially if we're writing a predicate method, and then that's what we're testing, right? We kind of are expecting a true or false value. And when our test expects something to be truthy rather than explicitly saying that we expect the return value to be true, that is sometimes a bit confusing to me as well because someone could theoretically change this method and just have it return "Hello, World," like you said, as a string, like, anything else. And that would still pass the test. JOËL: And it might even pass your code in most places. STEPHANIE: Right. And I suppose that's okay. Is it okay? I don't know. I'm not sure where I land on this. JOËL: I used to be a kind of hardcore Boolean person. STEPHANIE: [laughs] That's a sentence no one has ever [laughs] said. JOËL: I like my explicit trues and falses. I don't like the ambiguity of saying, like, oh, if person do a thing, it's, like, oh, what is person here? Is this a nil check? Is it explicitly false? Do you just want to know that this person is non-empty? Well, what exactly are you checking? So I like the explicitness of saying, oh, if person dot present, or if person dot empty, or if person dot nil. And I think maybe spending some time in some more strongly typed languages has also kind of pushed me a little bit in that direction, where it's nice to have something that is explicitly either just true or just false. And then you completely eliminate that problem of, like, oh, but what if it's neither true nor false, then what do we do for that branch there? And the answer is your compiler will reject that program or say, "You've written a bad program." And you never reach that point where there's a bug. I've slowly been softening my stance. A fellow thoughtbot colleague has written an article why there is no such thing as a Boolean in Ruby. Everything is just shades of gray and truthiness and falsiness. But from the perspective of a program, there is no such thing as a Boolean. And that really opened my eyes to a different perspective. I don't know that I fully agree, but I'm kind of begrudgingly acknowledging that Mike makes a good point. STEPHANIE: Yes, I read the blog post that he wrote about this exact problem. And I think it's called "Booleans Don't Exist in Ruby." And I think I similarly, like, came away with, like, yeah, I think I get it if I just suspend my disbelief, you know, hard enough. [laughs] But what you were saying about, like, liking the explicitness, right? And liking the lack of ambiguity, right? Because when you start to believe that Booleans don't exist, I think that really messes with your [laughs] head a little bit. And one takeaway that I got from that blog post, kind of like we mentioned earlier, is that there is such thing as false, and then everything else is true. And I guess that's kind of how Ruby operates. JOËL: Sort of, because then you have the problem of nil, which is also falsy. STEPHANIE: That's true, but nil is nothing. [laughs] JOËL: That's one of the classic problems as well when you're trying to do a nil check, or maybe some memoization, or maybe even, say, cache this value, or store this value, or initialize this value if it's not set. And assuming that doing nil is falsy, so you'll do some kind of, like, or equals, or just some kind of expression with an or in it thinking, oh, do this extra work if it's nil because then it will trigger the branch. But that all breaks down if potential for your value to be false because false and nil get treated the same in conditional code. STEPHANIE: Right. I think this could be a whole separate conversation about nil and the idea of nothingness. But I do think that, as Ruby developers, at least in the Ruby world, based on what I've seen, is that we lean on nil in ways that we maybe shouldn't. And we end up having to be very defensive about this idea of nil being falsy. But that's because we aren't necessarily thinking as hard about our return values and what our arguments are that; it ends up causing problems in evaluating truthiness when we're having to check those objects that could be nil. JOËL: In terms of the way we communicate with the readers of our code, and, as a reader, I generally assume that a Ruby method that ends with a question mark will return a true Boolean, either true or false. Is that generally your expectation as well? STEPHANIE: I want to say yes, but I've clearly experienced enough times where that's not the case that, you know, it's like, my ideal world and then reality [laughs] and having to figure out how to hold both of those things. JOËL: It's one of those things that's mostly true. STEPHANIE: I want to believe it because predicate methods and, like, the Ruby Standard Library mostly return Boolean values, at least to my knowledge. And if we all kind of followed that [laughs] pattern, then it would be clear. But I think there's a part of me that these days mostly believes it to be true that I will be getting a Boolean value (And, wow, even as I say this, I realize how confusing [laughs] this is starting to sound.) and that until I'm not, right? Until I'm surprised at some point. JOËL: I think there's two things I expect of predicate methods in Ruby. One is that they will return, like, a hard Boolean, either true or false. The second is that they are purely query methods; they don't do side effects. Neither of those are consistent across the ecosystem. And a classic example of violating that second guideline I have in my mind is the valid question mark method from Rails. And this really surprised me the first time I tripped into this because when you call that on an object, it doesn't just tell you whether or not the object is valid. It actually mutates the underlying object by populating the error messages' hash. So if you have an invalid object and you examine its error messages' hash, it will be empty until you call the valid question mark method. So sometimes, you don't even care about the return value. You're just calling valid to mutate the object so that you can access the underlying hash, which is that's weird code when you call a predicate method but then totally ignore the output. STEPHANIE: Yeah, that is strange because I have definitely seen it where we are calling the valid method to validate, and then we end up using the error messages that are set on that object later. I think that's tough because, in some ways, you do care about whether the object is valid or not. But then also, the error messages are helpful usually and when you're trying to use that method. The point is to validate it so that you can hopefully, like, tell the user or, like, the consumer of your system, like, what's wrong in validation. But it is almost, like, two separate things. JOËL: It is. And sometimes, it's really hard to split those two apart. So I'm not throwing shade at the Rails dev team here. Some of these design decisions are legitimately difficult to make. And what's most useful for the most people the most time is often a compromise. I think you brought up the idea of separating those two things. And I think there's a general principle here called command-query separation. That's, like, the fancy way of talking about what you were saying. STEPHANIE: One thing that I was just thinking about kind of when we initially picked off this conversation was the idea of how things outside the Ruby ecosystem or the Ruby world interact with what we're returning in terms of Boolean values. And so when I mentioned the object being serialized because of, you know, our database and, like, background job system, that's an entity that's figuring out what to do with the things that we are returning from Ruby. And similarly, when you're talking about environment variables, it's like, our computer system talking to now our language and those things being a bit different. Because when we, like, suspend our disbelief about what is truthy or falsy in Ruby, at least we're doing it in, like, the world of Ruby. And as soon as we have to interact with something else, like, maybe that's when things can get a little hairy because there's different ideas about truthiness there. And so I'm kind of also thinking about what we return in APIs and maybe, like, that being an area where some explicitness is more required. JOËL: Whenever I'm consuming third-party data, I'm a big fan of having some kind of transformation or parse step. This is inspired in part by the "Parse, Don't Validate" article, which I'll link in the show notes. So, if I'm reading data from a third-party API and I want it to be a Boolean, then maybe I should do the transformation myself. So maybe I check literally, is it the string true or the string false, and anything else gets rejected? Maybe I have...and maybe I'm a little bit more permissive, where I also accept capital T or capital F, and I have, like, some rules for transforming that. But the important thing is I have an explicit conversion step and reject any bad output. And so for something like an environment variable, maybe that would look like looking for true or false and raising if anything else is there. So that we try to boot the app, and it immediately crashes because, hey, we've got some, like, undefined, like, bad configuration that we're trying to load the app with. Don't even try to keep running. Hard crash immediately. Fix it, and then come back. STEPHANIE: Yeah, I like that a lot because the way we ended up fixing this issue with the background job that I mentioned was just coercing our string value into a Ruby Boolean in the job that we were then, like, running the conditional in. But really, what we should have done is have fixed that at a higher level and where we parse and deserialize, like, the values we're getting from the job to prevent this kind of in the future because right now, someone can do this again, and that's a real bummer. JOËL: I always love those deeper conversations that happen after you've had a bug that are like, how do we prevent this from happening again? Because sometimes that's where you have the deepest learnings or the most interesting insights or, you know, ideas for Bike Shed episodes. I'm really curious to contrast JavaScript's approach to truthiness to Ruby's because even though they both use the same idea, they kind of go about it differently. STEPHANIE: Tell me more. JOËL: So, in Ruby, an empty array and an empty string are truthy. JavaScript decided that empty things are falsy. And I forget...there's a whole table that shows the things that are truthy and falsy in JavaScript. I want to say zero is falsy in JavaScript but don't quote me on that, which can also lead to some interesting edge cases you have to think about. STEPHANIE: Okay, yes. This is coming back to me now. I think depending on what, you know, ecosystem or language or world I'm in, I have to just only be able to think about what is true in this world [laughs] and then do that context switching when I am working in something else. But yeah, that is a really interesting idea. Someone decided [laughs] that this was their idea of true or false. JOËL: I'm curious if you have a preference for sort of JavaScript's approach to falsiness where a lot more types of values are falsy versus Ruby, which said pretty much only nil and false are falsy. Everything else is truthy. STEPHANIE: Hmm, that is an interesting question. JOËL: Because in Ruby then or, I guess, in Rails, we end up with the present predicate method that is specifically checking for not only nil and false but also for empty array, empty string, those kinds of things. So, if you find yourself writing a lot of present matchers in your code, you're kind of leaning on something that's closer to JavaScript's definition of falsiness than Ruby's. But maybe you're making it more explicit. STEPHANIE: Right. In JavaScript, I see a lot of double bangs in lieu of those predicate methods. But I suppose by nature of having to write those predicate methods in Ruby, we're, like, really wanting something else, I think. And maybe...I guess it is just a question of explicitness like you're saying, and which I prefer. Is it that I need to be explicit to convey the idea that I want, or is it nice that the language has just been encoded that way for me? JOËL: Or maybe when you write conditionals, if you find yourself doing a lot of presence checks, do you find that you typically are trying to branch on if not null, not false, not empty more frequently than just if not null, not false? Because that's kind of the difference between Ruby's model and JavaScript's model. STEPHANIE: Hmm, the way you posed that question is interesting because it makes me think that sometimes it's quite defensive because we have to check for all these possible return values. We are unsure of what we are getting back. And so this is kind of, like, a catch-all for things that we aren't really sure about. JOËL: Yeah, I mean, that's the fun of dynamic programming languages. You never know exactly what you're going to get as long as things respond to certain methods. You really lean into the duck typing. And I think that's Mike's argument in his article that "Booleans Don't Exist" in that as long as something is responding to methods that you care about, it doesn't matter if you're dealing with a true Boolean or some kind of other value. STEPHANIE: Right. So I suppose the ideas of truthiness then are a little bit more dependent on how people are using the language though it seems like a chicken-and-egg situation to me. [laughs] JOËL: It is really interesting to me in terms of maybe thinking about use cases in my own code if I'm having to...if I'm writing code that leans on truthiness where I can say just, you know if user. But then knowing that, oh, that doesn't account for, like, an empty value. Do I then also need to add an extra check for emptiness? And maybe if I'm in a Rails project, I would reach for that present matcher where I wouldn't have to do that in JavaScript because I can just say, if user, and that already automatically checks for presence. So I'm kind of wondering now in my mind, like, which default would fit my use cases more? Or, if I go back to an older version of myself, I will say I don't want any of these defaults. They're all too ambiguous. I'm going to put explicitly if user dot nil question mark, if that's the thing that I'm checking for, or if user dot empty question mark because I want my reader to know what condition I'm checking. STEPHANIE: Yeah, that is interesting, this idea of, like, which mode do you find yourself needing to use more and if that is accommodated for you because that's just the more common, like, use case or problem. I think that's something that I will be thinking about the next time I write a conditional [laughs] because, like I was saying earlier, I think I end up just leaning on what someone else has decided for me in terms of truthiness and not so much how I would like it to work for me. JOËL: And sometimes we don't want to fight the language too much, you know if I'm writing Elm, that everything is hard Booleans. And I know I'm never going to get a nil in a place where I'd expect true or false because the compiler would prevent that from happening. I know that I'm not going to get an empty value, potentially. There's ways you can do things with a type system where you can explicitly say no empty values are even allowed at this point. And if you do allow them, then the type system will say, "Hey, you forgot to check for the empty case. Bad program. I'm rejecting that." And then you have to write that explicit branch for, oh, if empty versus if present. So I really appreciate that style of programming. But then, when you're in a language like Ruby where you're not dealing with explicit types on purpose, how do you shift that mindset so that you don't need to know the type of the value that you're dealing with? You only want to say, hey, in this context, here's the minimal interface that I want it to conform to. And maybe it's just the truthy or falsiness interface, and everything beyond that is not relevant. STEPHANIE: I think it's kind of wild to me that this idea of a binary that theoretically seems very clear turns out is actually quite confusing, ambiguous, philosophical, even. [chuckles] JOËL: Yeah. It's definitely...you can get into some deep, philosophical questions there, language design as well. One aspect, though, that I'm really curious about your thoughts is bringing new people in who are learning a language. It's really common for people who are learning a language for the first time, learning to code for the first time to write code that you and I would immediately know, like, that's not going to work. You can't add a Boolean and a number. You're just learning to code. You've never done that before. You don't know. And then how the language reacts to that kind of thing can help guide that experience. So, do you think that truthiness maybe makes things more confusing for newcomers? Or, maybe on the other side, it helps to smooth that learning curve because you don't have to be like, oh, wait, I have a user here. I can't put that in a condition because that's not a strict true or false. I'm going to coerce it, or I've got to find a predicate method or something. You can just be like, no, put it in. The interpreter will figure it out for you. STEPHANIE: Wow. That's a great question. I'm trying to put myself in the beginner's mindset a little bit and think about what it's like to just try something and the magic of it working. Because, like you said, the interpreter does it for you, or whatever, and something happens, and you're like, wow, like, that was really cool. And I didn't have to know all of the ins and outs of the types of things I was working with. That can be really helpful in just getting them, like, started and getting them just, like, on the ground writing code. And having that feeling of satisfaction that, like, that they didn't have to, you know, have to learn all these things that can be really scary to make their program work. But I do think it also kind of bites them later once they really realize [laughs] what is going on and the minute that they get that, like, unexpected behavior, right? Like, that becomes a time when you do have to figure out what might be going on under the hood. So two sides of the same coin. JOËL: What you're saying there about, like, maybe smoothing that initial curve but then it biting them later got me thinking. You know how we have the concept of technical debt where we write code in a way that's maybe not quite as clean today so we can move faster but that then later on we have to pay it back? And I almost wonder if what we have here is almost like a pedagogical debt where it's going to cost us a month from now, but today it helps us move faster and actually kind of get that momentum going. STEPHANIE: Pedagogical debt. I like that. I think you've coined a new term. Because I really relate to that where you learn just enough to do the thing now. But, you know, it's probably not, like, the right way or, like, the most informed—I think most informed is probably how I would best describe it—way of doing it. And later, you, yeah, just have to invest a little more into it. And I think that's okay. I think sometimes I do tend to, like, beat myself up over something down the line when I have to deal with some piece of less-than-ideal code that I'd written earlier. Like, I think that, oh, I could have avoided this if only I knew. But the whole point is that I didn't know. [laughs] And, like, that's okay, like, maybe I didn't need to know at the time. JOËL: Yeah, and code that's never shipped is of zero value. So having something that you could ship is better than having something perfect that you didn't ship. STEPHANIE: On that note, shall we wrap up? JOËL: Let's wrap up. STEPHANIE: Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeeee!!!!!! ANNOUNCER: This podcast is brought to you by thoughtbot, your expert strategy, design, development, and product management partner. We bring digital products from idea to success and teach you how because we care. Learn more at thoughtbot.com.

The Bike Shed
383: Code as Storytelling with Nicole Zhu

The Bike Shed

Play Episode Listen Later May 9, 2023 43:02


Engineering manager at Vox Media and author Nicole Zhu joins Stephanie on today's episode to discuss her writing practice. nicoledonut is a biweekly newsletter about the writing process and sustaining a creative life that features creative resources, occasional interviews with creative folks, short essays on writing and creativity, farm-to-table memes and TikToks, and features on what Nicole is currently writing, reading, and watching. This episode is brought to you by Airbrake (https://airbrake.io/?utm_campaign=Q3_2022%3A%20Bike%20Shed%20Podcast%20Ad&utm_source=Bike%20Shed&utm_medium=website). Visit Frictionless error monitoring and performance insight for your app stack. Kieran Culkin on learning about billionaires filming Succession (https://www.tiktok.com/@esquire/video/7215641441597410603?_r=1&_t=8bPK4Ingkf5) The Home Depot skeleton (https://twitter.com/jenni_tabler/status/1566266554240888832) Nicole Zhu's newsletter (https://nicoledonut.com/) The Making of a Manager by Julie Zhuo (https://www.juliezhuo.com/book/manager.html) Saving Time by Jenny Odell (https://www.penguinrandomhouse.com/books/672377/saving-time-by-jenny-odell/) Transcript: STEPHANIE: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. And today, I'm joined by my friend and special guest, Nicole Zhu. NICOLE: Hi, I'm so excited to be here. My name is Nicole, and I am an Engineering manager at Vox Media and a writer. STEPHANIE: Amazing, I'm so thrilled to have you here. So, Nicole, we usually kick off the show by sharing a little bit about what's new in our world. And I can take us away and let you know about my very exciting weekend activities of taking down our Halloween skeleton. And yes, I know that it's April, but I feel like I've been seeing the 12-foot Home Depot skeletons everywhere. And it's becoming a thing for people to leave up just their Halloween decorations and, just as the other holidays keep rolling on, changing it up so that their skeleton is wearing like bunny ears for Easter or a leprechaun hat for St. Patrick's Day. And we've been definitely on the weird skeleton in front of the house long past the Halloween train for a few years now. Our skeleton's name is Gary. And it's funny because he's like a science classroom skeleton, so not just plastic. He's actually quite heavy. NICOLE: He's got some meat to the bones. [laughs] STEPHANIE: Yeah, yeah, and physiologically correct. But we like to keep him out till spring because we got to put him away at some point so that people are excited again when he comes back out in October. And the kids on our block really love him. And yeah, that's what I did this weekend. [laughs] NICOLE: I love it. I would love to meet Gary one day. Sounds very exciting. [laughs] I do get why you'd want to dress up the skeleton, especially if it's 12 feet tall because it's a lot of work to put up and take down for just one month, but that's fascinating. For me, something new in my world is the return of "Succession," the TV show. STEPHANIE: Oh yes. NICOLE: I did not watch yesterday's episode, so I'm already spoiled, but that's okay. But I've been getting a lot of Succession TikToks, and I've been learning a lot about the making of the show and the lives of the uber-rich. And in this one interview with Kieran Culkin, the interviewer asked him, "What's something that you learned in shooting the show about the uber-rich about billionaires that's maybe weird or unexpected?" And Kieran Culkin says that the uber-rich don't have coats because they're just shuttled everywhere in private jets and cars. They're not running to the grocery store, taking the subway, so they don't really wear coats, which I thought was fascinating. It makes a lot of sense. And then there was this really interesting clip too that was talking about the cinematography of the show. And what is really interesting about it is that it resists the wealth porn kind of lens because it's filmed in this mockumentary style that doesn't linger or have sweeping gestures of how majestic these beautiful cities and buildings and apartments they're in. Everything just seems very matter of fact because that is just the backdrop to their lives, which I think is so interesting how, yeah, I don't know, where I was like, I didn't ever really notice it. And now I can't stop seeing it when I watch the show where it's about miserable, rich people. And so I like that the visual language of the show reflects it too. STEPHANIE: Wow, yeah, that makes a lot of sense. The coat thing really gets me because I'm just imagining if I could be perfectly climate controlled all the time. [laughs] NICOLE: Right? Oh my gosh, especially you're based in Chicago [laughs], that is when you can retire the winter coat. That is always an important phase. STEPHANIE: Yeah, seriously. I also am thinking now about just like the montages of showing a place, just movies or shows filmed in New York City or whatever, and it's such...so you know it's like the big city, right? NICOLE: Mmm-hmm, mm-hmm. STEPHANIE: And all of that setup. And it's really interesting to hear that stylistically, that is also different for a show like this where they're trying to convey a certain message. NICOLE: Yeah, yeah, definitely. STEPHANIE: So I'm really excited to have you on The Bike Shed because I have known you for a few years. And you write this really amazing newsletter called "nicoledonut" about your writing practice. And it's a newsletter that I open every other week when you send out a dispatch. And last year at RubyConf, they had a conference track called Bringing Your Backgrounds With You. And there were talks that people gave about how the hobbies that they did outside of work or an identity that they held made them a better developer, like, affected how they showed up at work in a positive way. And as someone who has always been really impressed by the thoughtfulness that you apply to your writing practice, I was really curious about how that shows up for you as an engineering manager. NICOLE: Definitely a great question. And to provide a bit of context for listeners, I feel like I have to explain the newsletter title because it's odd. But there's a writer who I really love named Jenny Zhang, and her handle across the Internet is jennybagel. And so I was like, oh, that would be so funny. I should be nicoledonut. I do love donuts. My Neopets username was donutfiend, so it was -- STEPHANIE: Hell yeah. NICOLE: But anyway, so that was kind of...I was like, I need to come up with some fun title for this newsletter, and that is what I settled on. But yes, I've written personal essays and creative nonfiction. And my primary focus more recently these past few years has been fiction. And this newsletter was really kind of born out of a desire to learn in the open, provide resources, act as kind of a journal, and just process ideas about writing and what it means to kind of sustain a creative life. So it has definitely made me more reflective and proactively, like you said, kind of think about what that means in terms of how that transfers into my day job in engineering. I recently moved into management a little over a year ago, and before that, I was a senior full-stack engineer working on a lot of our audience experiences and websites and, previously, more of our editorial tools. So I think when it comes to obviously writing code and being more of an individual contributor, I think you had previously kind of touched on what does it mean to treat code as a craft? And I do think that there are a lot of similarities between those two things because I think there's creativity in engineering, of course. You have to think about going from something abstract to something concrete. In engineering, you're given generally, or you're defining kind of requirements and features and functionality. You may be make an engineering plan or something like that, an EDD, given those constraints. And then I think writing is very similar. You outline, and then you have to actually write the thing and then revise. I do think writing is not necessarily as collaborative as coding is, perhaps, but still similar overall in terms of an author having a vision, dealing with different constraints, if that's word count, if it's form or structure, if it's point of view, things like that. And that all determines what the outcome will be. You always learn something in the execution, the idea that planning can only take you so far. And at a certain point, you gather as much background knowledge and information and talk to as many people. Depending on the kinds of writing I do, I have or haven't done as much research. But at a certain point, the research becomes procrastination, and I know I need to actually just start writing. And similarly, with engineering, I think that's the piece is that once you actually start implementation, you start to uncover roadblocks. You uncover questions or complications or things like that. And so I think that's always the exciting part is you can't really always know the road ahead of you until you start the journey. And I also think that in order to benefit from mentorship and feedback...we can talk more about this. I know that that's something that is kind of a larger topic. And then another thing I think where the two are really similar is there's this endless learning that goes with each of them. I guess that's true of, I think, most crafts. Good practitioners of the craft, I think, take on that mindset. But I do think that obviously, in engineering, you have industry changes, new technologies emerging really frequently. But I do think that good writers think about that, too, in terms of what new novels are coming out. But also, how do you build a solid foundation? And I do think it's that contrast that applies in any craft is, you know, you want to have a good solid foundation and learn the basics but then keep up to date with new things as well. So I think there was this...there's this meme I actually did include in the newsletter that was...it's the meme of these two guys looking at different windows of a bus, and one looks really sad, and one looks really happy. But the two of them have the same caption, which is there's always more to learn. And so I think that is the two sides of the coin [laughs]. I think that is relevant in engineering and writing that I've kind of brought to both of those practices is trying to be optimistic [laughs] about the idea that there's always more to learn that that's kind of the thought of it. And then certainly, when it comes to management, I do think that writing has proven really valuable in that very obvious sense of kind of practical communication where I just write a lot more. I write a lot more things that are not code, I should say, as a manager. And communication is really at the forefront of my job, and so is demonstrating curiosity and building empathy, fostering relationships with people. And I do think that particularly writing fiction you have to be curious about people I think to be a writer. And I think that is true of managers as well. So I do think that has been a really interesting way that I didn't anticipate writing showing up in my day job but has been a really helpful thing and has made my work stronger and think about the people, the process, and kind of what we do and why a little differently. STEPHANIE: Yeah, absolutely. Wow, you got into a lot of different things I'm excited to keep discussing further. But one thing that I was thinking about as you were talking was, have you heard of the adage, I guess, that code is read many more times than it's written? NICOLE: Hmm, I think I have, yeah. STEPHANIE: I was thinking about that as you were talking because, in some ways, in most ways, actually, if you ascribe to that adage, I suppose, we write code for others to read. And I think there's an aspect of code telling a story that is really interesting. I've heard a lot of people advocate for writing, thoughtbot included, writing your tests like they're telling a story. And so when a future developer is trying to understand what's going on, they can read the tests, understand the setup, read what is being tested, and then read what the expected outcome is and have a complete picture of what's going on. The same goes for commit messages. You are writing little bits of documentation for people in the future. And I've also been thinking about how legacy code is just this artifact as well of all of the changes that an organization might have gone through. And so when you see something that you see a bit of code that is really weird or gets your spidey senses tingling, it's almost like, oh, I wonder what happened here that led to this piece left behind? NICOLE: Yeah, definitely. Now that you're talking about it, I also think of pull requests as a great way to employ storytelling. I remember there definitely have been times where myself or other engineers are working on a really thorny problem, and we always joke that the PR description is longer than the change. And it's like, but you got to read the PR description in order to understand what change you're making and why. And here's the backstory, the context to kind of center people in that. As a manager, I think about storytelling a lot in terms of defining purpose and providing clarity for teams. I was reading Julie Zhuo's "The Making of a Manager," and it was a really kind of foundational text for me when I first was exploring management. And she kind of boils it down to people, purpose, and process. And so I do think the purpose part of that is really tied to clear communication. And can you tell a story of what we're doing from really high-level vision and then more tactically strategy? And then making sure that people have bought into that, they understand, can kind of repeat that without you being there to remind them necessarily. Because you really want that message to carry through in the work and that they have that understanding. Vision is something I only recently have really started to realize how difficult it is to articulate. It's like you don't really understand the purpose of vision until you maybe don't have one, or you've been kind of just trying to keep your head afloat, and you don't have a Northstar to work towards. But I do think that is what plays into motivation, and team health, and, obviously, quality of the product. So yeah, that's kind of another dimension I've been thinking of. And also our foes actually. Sorry, another one. Our foes, I think, like outages and incidents. I think that's always a fun opportunity to talk about stories. There was a period of time where every time we had an incident, you had to present that incident and a recap of it in an engineering all-hands every month. And they ended up being really fun. We turned something that is ostensibly very stressful into something that was very entertaining that people could really get on board with and would learn something from. And we had the funniest one; I think was...we called it the Thanks Obama Outage because there was an outage that was caused by a photo of Barack Obama that had been uploaded in our content management system, as required no less, that had some malformed metadata or something that just broke everything. And so, again, it was a really difficult issue [laughs] and a long outage. And that was the result that I remember that presentation being really fun. And again, kind of like mythmaking in a way where that is something that we remember. We pay attention to that part of the codebase a lot now. It's taught us a lot. So yeah, I do think storytelling isn't always necessarily the super serious thing, but it can also just be team building, and morale, and culture as well. STEPHANIE: Yeah, absolutely. I think what you said about vision really resonates with me because if you don't have the vision, then you're also not making the best decisions you can be making even something as low-level as how you write the code. Because if you don't know are we going to be changing this feature a month from now, that might dictate how you go forth with implementation as opposed to if you know that it's not in the company's vision to really be doing anything else with this particular feature. And you then might feel a little more comfortable with a more rudimentary approach, right? NICOLE: Yeah, totally. Whether or not it's, we've over-optimized or not or kind of optimized for speed. Like, it's all about trade-offs. And I do think, again, like you said, having a vision that always you can check your decision-making against and inform the path ahead I think is very, very helpful. STEPHANIE: When you write, do you also keep that in mind? Like, do you write with that North Star? And is that really important to your process? NICOLE: I think it depends. I think that writing can be a little more at a slant, I suppose, is how I think of it because I don't always...just similar to work, I don't always come in with a fully-fledged fleshed-out vision of what I want a piece to be. The most recent piece I've been working on actually I did have kind of a pretty, I think, solid foundation. I've been working on this story about loneliness. And I knew that I wanted to base the structure on the UCLA...a UCLA clinic has this questionnaire that's 20 items long that is about measuring loneliness on a scale. And so I was like, okay, I knew that I wanted to examine dimensions of loneliness, and that would be the structure. It would be 20 questions, and it would be in that format. So that gave me a lot more to start with of, you know, here's where I want the piece to go. Here's what I want it to do. And then there have definitely been other cases where it's more that the conceit seems interesting; a character comes to mind. I overhear a conversation on the subway, and I think it's funny, and that becomes the first thing that is put on the page. So I definitely have different entry points, I think, into a draft. But I will definitely say that revision is the phase where that always gets clarified. And it has to, I think, because as much as I'm sometimes just writing for vibes, it's not always like that. And I do think that the purpose of revision is to clarify your goals so you can then really look at the piece and be like, is it doing what I want it to? Where is it lacking? Where's it really strong? Where's the pacing falling flat? And things like that. So I do think that sooner or later, that clarity comes, and that vision comes into focus. But it isn't always the first thing that happens, I think, because I do think the creative process is a little bit more mysterious, shall we say, than working on an engineering team. [laughs] STEPHANIE: Yeah. Well, you started off responding to my question with it depends, which is a very engineering answer, but I suppose -- NICOLE: That is true. That is true. You got me. [laughs] STEPHANIE: It applies to both. MID-ROLL AD: Debugging errors can be a developer's worst nightmare...but it doesn't have to be. Airbrake is an award-winning error monitoring, performance, and deployment tracking tool created by developers for developers that can actually help cut your debugging time in half. So why do developers love Airbrake? It has all of the information that web developers need to monitor their application - including error management, performance insights, and deploy tracking! Airbrake's debugging tool catches all of your project errors, intelligently groups them, and points you to the issue in the code so you can quickly fix the bug before customers are impacted. In addition to stellar error monitoring, Airbrake's lightweight APM helps developers to track the performance and availability of their application through metrics like HTTP requests, response times, error occurrences, and user satisfaction. Finally, Airbrake Deploy Tracking helps developers track trends, fix bad deploys, and improve code quality. Since 2008, Airbrake has been a staple in the Ruby community and has grown to cover all major programming languages. Airbrake seamlessly integrates with your favorite apps to include modern features like single sign-on and SDK-based installation. From testing to production, Airbrake notifiers have your back. Your time is valuable, so why waste it combing through logs, waiting for user reports, or retrofitting other tools to monitor your application? You literally have nothing to lose. Head on over to airbrake.io/try/bikeshed to create your FREE developer account today! STEPHANIE: You mentioned revision. And so, I do want to talk about feedback because I think that is an important part of the revision process. And I have really loved what you've had to say about writing feedback and your experience with writing feedback, especially in writing workshops. And I have always been really curious about what we might be able to learn about receiving feedback in code review. NICOLE: When it comes to receiving feedback, I think I wrote a two-part series of my newsletter, one that was about providing feedback, one that was about receiving it. I think on the side of receiving feedback, first and foremost, I think it's important to know when you're ready to share your work and know that you can share multiple times. In writing, that can be I show a very early draft to my partner who is the person who kind of reads everything and anything at any stage. It's something less polished, and I'm really just testing ideas. But then obviously, if there's something that is more polished, that is something I would want to bring to a writing group, bring into a workshop, things like that. Similarly, as engineers, I think...thank God for GitHub drafts actually adopting literally the way in which I think of that, right? STEPHANIE: Yeah. NICOLE: You can share a branch or a GitHub PR in progress and just check the approach. I've done that so many times, and really that helped so much with my own learning and learning from mentors in my own organization was checking in early and trying to gut-check my work earlier as opposed to later. Because then you feel, I think, again, a bit more naturally receptive because you're already in that questioning phase. You're not like, oh, this is polished, and I've written all the tests, and the PR description is done. And now you want me to go back and change the whole approach from the ground up. That can feel tough. I get that. And so I think, hand in hand, what goes with that is whose feedback are you interested in? Is that a peer? Is it a mentor? I think obviously leaning on your own team, on senior engineers, I do think that is one of the primary, I think, expectations of a senior engineer is kind of multiplying the effectiveness of their peers and helping them learn and grow. So I do think that that's a really valuable skill to develop on that end, but also, again, just approaching people. And obviously, different teams have different processes for that, if it's daily stand-ups, if it's GitHub reminders, automated messages that get pulled up in your channel, things like that. But there are ways to build that into your day-to-day, which I think is really beneficial too. And then there's also the phase of priming yourself to receive the feedback. And I think there's actually a lot of emotional work that I don't think we talk about when it comes to that. Because receiving feedback can always be vulnerable, and it can bring up unexpected emotions. And I think learning how to regulate the emotional response to that is really valuable for us as people but obviously within the workplace too. So I've found it really helpful to reflect if I'm getting feedback that...well, first of all, it depends on the format. So I think some people prefer verbal feedback, some people will prefer written. I think getting it in the form of written feedback can be helpful because it provides you some distance. You don't have to respond in the moment. And so I've definitely had cases where I then kind of want to reflect on why certain suggestions might elicit certain reactions if I have a fight or flight response, if I'm feeling ashamed or frustrated, or indignant, all the range of emotions. Emotions are, to put the engineering hat on, are information. And so I think listening to that, not letting it rule you per se but letting it inform and help you figure out what is this telling me and how do I then respond, or what should I do next? Is really valuable. Because sometimes it's not, again, actually the feedback; maybe it's more about that, oh, it's a really radical idea. Maybe it's a really...it's an approach I didn't even consider, and it would take a lot of work. But again, maybe if I sit and think about it, it is the scalable approach. It's the cleaner approach, things like that. Or are they just touching on something that I maybe haven't thought as deeply about? And so I think there is that piece too. Is it the delivery? Is it something about your context or history with the person giving the feedback too? I think all of those, the relationship building, the trust on a team, all plays into feedback. And obviously, we can create better conditions for exchanging and receiving feedback. But I do think there's still that companion piece that is also just about, again, fostering team trust and culture overall because that is the thing that makes these conversations all the easier and less, I think, potentially fraught or high pressure. STEPHANIE: 100%. Listeners can't see, but I was nodding very aggressively [laughs] this entire time. NICOLE: Loved it. STEPHANIE: And I love that you bring up interpersonal relationships, team culture, and feelings. Listeners of the show will know that I love talking about feelings. But I wanted to ask you this exact question because I think code review can be so fraught. And I've seen it be a source of conflict and tension. And I personally have always wanted more tools for giving better feedback. Because when I do give feedback, it's for the person to feel supported to help push their work to be better and for us to do good work as a team. And I am really sensitive to the way that I give feedback because I know what it's like to receive feedback that doesn't land well. And when you were talking about investigating what kinds of feelings come up when you do receive a certain kind of comment on a code review or something, that was really interesting to me. Because I definitely know what it's like to have worked really, really hard on a pull request and for it to feel very precious to me and then to receive a lot of change requests or whatever. It can be really disappointing or really frustrating or whatever. And yeah, I wish that we, as an industry, could talk about this stuff more frequently. NICOLE: Yeah, for sure. And I do think that you know, I think the longer you work with someone, ideally, again, the stronger relationship you form. You find your own ways of communicating that work for you. I think actually what I've learned in management is, yes, I have a communication style, but I also am flexible with how I work with each of my reports, who, again, have very different working styles, communication styles, learning styles. I don't believe that the manager sets the standards. I think there is a balance there of meeting people where they are and giving them what they need while obviously maintaining your own values and practices. But yeah, certainly, again, I think that's why for perhaps more junior engineers, they might need more examples. They might not respond well to as terse a comment. But certainly, with engineers, senior engineers that I've worked with, when I was starting out, the more we developed a relationship, they could just get a little bit more terse. For example, they could be like, "Fix this, fix that," and I would not take it personally because we had already gone through the phase where they were providing maybe some more detailed feedback, links to other examples or gists, or things like that, and our communication styles evolved. And so I do think that's another thing to think about as well is that it doesn't have to be static. I think that's the value of a team, and having good team process, too, is ideally having arenas in which you can talk about how these kinds of things are going. Are we happy with the cadence? Are we happy with how people are treating each other and things like that? Are we getting timely feedback and things like that? That's a good opportunity for a retrospective and to talk about that in a kind of blameless context and approach that more holistically. So I do think that, yeah, feedback can be very fraught. And I think what can be difficult in the world of engineering is that it can be very easy to then just be like, well, this is just the best way for the work. And feelings are, like you said, not really kind of considered. And, again, software development and engineering is a team sport. And so I do think fostering the environment in which everyone can be doing great work is really the imperative. STEPHANIE: Yeah, I really like how you talked about the dynamic nature of relationships on a team and that the communication style can change there when you have built that trust and you understand where another person is coming from. I was also thinking about the question of whose feedback are you interested in? And I certainly can remember times where I requested a review from someone in particular because maybe they had more context about this particular thing I was working on, and I wanted to make sure that I didn't miss anything, or someone else who maybe I had something to learn from them. And that is one way of making feedback work for me and being set up to receive it well. Because as much as...like you said, it's really easy to fall back into the argument of like, oh, what's the best way for the work, or what is the cleanest code or whatever? I am still a person who wrote it. I produced a piece of work and have feelings about it. And so I have really enjoyed just learning more about how I react to feedback and trying to mitigate the stress that I feel in what is kind of inherently like a conflict-generating process. NICOLE: Yeah, yeah, definitely. Another thing that kind of popped into my head to one of the earlier questions we were talking about is in terms of similarities between writing and engineering, style and structure are both really, really important. And even though in engineering, like you said, sometimes it can be, I mean, there is a point with engineering where you're like, this line of code works, or it doesn't. There is a degree of correctness [laughs] that you do have to meet, obviously. But again, after that, it can be personal preference. It's why we have linters that have certain styles or things like that to try to eliminate some of these more divisive, shall we say, potentially discussions around, [laughs] God forbid, tabs or spaces, naming conventions, all this stuff. But certainly, yeah, when it comes to structuring code, the style, or whatever else, like you said, there's a human lens to that. And so I think making sure that we are accounting for that in the process is really important, and not just whether or not the work gets done but also how the work gets done is really important. Because it predicts what do future projects...what does future collaboration look like? And again, you're not just ever optimizing for one thing in one point of time. You're always...you're building teams. You're building products. So there's a long kind of lifecycle to think about. STEPHANIE: For sure. So after you get feedback and after you go through the revision process, I'm curious what you think about the idea of what is good enough in the context of your writing. And then also, if that has influenced when you think a feature is done or the code is as good as you want it to be. NICOLE: Yeah, definitely. I think when it comes to my writing, how I think about what is good enough I think there is the kind of sentiment common in the writer community that you can edit yourself to death. You can revise forever if you wanted to. It's also kind of why I don't like to go back and read things I've already published because I'm always going to find something, you know, an errant comma or like, oh, man, I wish I had rephrased this here. But I do think that, for me, I think about a couple of questions that help me get a sense of is this in a good place to, you know, for me generally, it's just to start submitting to places for publication. So one of those is, has someone else read it? That is always a really big question, whether it's a trusted reader, if I brought it to a workshop, or just my writing group, making sure I have a set of outside eyes, fresh eyes on the piece to give their reaction. And again, truly as a reader, sometimes just as a reader, not even as a fellow writer, because I do think different audiences will take different things and provide different types of feedback. Another one is what kinds of changes am I making at this point in time? Am I still making really big structural edits? Or am I just kind of pushing words and commas around, and it feels like rearranging deck chairs on the Titanic? They're not massive changes to the piece. And then the final question is always, if this were published in its current state right now, would I be happy with it? Would I be proud of it? And that's a very gut feeling that I think only an individual can kind of feel for themselves. And sometimes it's like, no, I don't like the way, like, I know it's 95% there, but I don't like the way this ends or something else. Again, those are all useful signals for me about whether a piece is complete or ready for submission or anything like that. I think when it comes to engineering, I think there's a little bit less of the gut feeling, to be honest, because we have standards. We have processes in place generally on teams where it's like, is the feature working? Have you written tests? Have you written a QA plan if it needs one? If it's something that needs more extensive documentation or code comments or something like that, is that something you've done? Has a bit more of a clear runway for me in terms of figuring out when something is ready to be shown to others. But certainly, as a manager, I've written a lot more types of documents I suppose, or types of communication where it's like organizational changes. I've written team announcements. I've written celebration posts. I've had to deliver bad news. Like, those are all things that you don't think about necessarily. But I've definitely had literally, you know, I have Google Docs of drafts of like, I need to draft the Slack message. And even though it's just a Slack message, I will spend time trying to make sure I've credited all the right people, or provided all the context, got all the right answers. I run it by my director, my peers, and things like that if it's relevant. And again, I think there is still that piece that comes in of drafting, getting feedback, revising, and then feeling like, okay, have I done my due diligence here, and is it ready? That cycle is applicable in many, many situations. But yeah, I certainly think for direct IC work, it's probably a little bit more well-defined than some of the other processes. STEPHANIE: Yeah, that makes sense. I really liked what you said about noticing the difference between making big structural changes and little word adjustments. I think you called it pushing commas around or something like that. NICOLE: [laughs] Yeah. STEPHANIE: I love that. Because I do think that with programming, there is definitely a big part of it that's just going on the journey and exploring different avenues. And so if you do suddenly think of, oh, I just thought of a completely different way to write this code, that is worth exploring even if you just end up going back to the original implementation. But at least you saw that thought through, and you're like, okay, this doesn't work because of X, Y, and Z, and I'm choosing to go this other route instead. And I think that, yeah, that is just a good practice to explore. NICOLE: Another example of storytelling, too, where it's like, you can tell the story in the PR description or whatever, in stand-up, to be like, I also did go down this path, XYZ reason. Here's why it didn't work out, and here's what we're optimizing for. And there you go. So I do think we talk...I guess product managers think more about buy-in, but I think that's true of engineers too. It's like, how do you build consensus and provide context? And so yeah, I think what you were saying, too, even if the path is circuitous or you're exploring other avenues, talking to other people, and just exploring what's out there, it all adds up to kind of the final decision and might provide, again, some useful information for other people to understand how you arrived there and get on board with it. STEPHANIE: 100%. I remember when I worked with someone who we were writing a PR description together because we had paired on some code. And we had tried three different things. And he wrote paragraphs for each thing that we tried. And I was like, wow, I don't know if I would have done that on my own. But I just learned the value of doing that to, like you said, prime yourself for feedback as well, being like, I did try this, and this is what I thought. And other people can disagree with you, but then at least they have the information, right? NICOLE: Definitely. STEPHANIE: So before we wrap up, the last thing that I wanted to talk about, because I think it's super cool, is just how you have a totally separate hobby and skill and practice that you invest time and energy into that's not programming. And it's so refreshing for me to see you do that because I think, obviously, there's this false idea that programmers just code all the time in their free time, in their spare time, whatever. And I'm really curious about how writing fits into your life as something separate from your day job. NICOLE: Yes, I've been thinking about this a ton. I think a lot of people, the last couple of years has forced a really big reckoning about work and life and how much we're giving to work, the boundaries that can be blurred, how capitalism butts its head into hobbies, and how we monetize them, or everything is a side hustle. And, oh, you should have a page running...oh, you should charge for a newsletter. And I think there's obviously the side of we should value our labor, but also, I don't want everything in my life to be labor. [laughs] So I do think that is interesting. Writing to me, I actually do not see it as a hobby. I see it as another career of mine. I feel like I have two careers, but I have one job, [laughs] if that makes sense. I certainly have hobbies. But for me, what distinguishes that from my writing is that with hobbies, there's no expectation that you want to get better. You approach it with just...it's just pure enjoyment. And certainly, writing has part of that for me, but I have aspirations to publish. I love it when my work can reach readers and things like that. But I do think that regardless having other interests, like you said, outside engineering, outside technology, it's a great break. And I do think also in technology, in particular, I notice...I think we're getting away from it, but certainly, there's an expectation, like you said, that you will have side projects that you code in your free time, that you're on Hacker News. I think there is a little bit of that vibe in the tech industry that I don't see in other industries. You don't expect a teacher to want to teach in their free time, [laughs] you know what I mean? But we have almost that kind of implicit expectation of engineers to always be staying up to date on those things. I think with writing and engineering; the two complement each other in some interesting ways. And they make me appreciate things about the other craft or practice that I may not previously have. And I think that with engineering, it is a team effort. It's really collaborative, and I really love working in that space. But on the flip side, too, with writing, I do love, you know, there's the ego part of it. You don't have individual authorship over code necessarily unless it's git blame level. But there's a reason why it's called git blame, [laughter] even the word is like git blame. I've literally had cases where I'm like, oh, this thing is broken. Who wrote this? And then I was like, oh, surprise, it was you six years ago. But I do think with writing; it's an opportunity for me to really just explore and ask questions, and things don't have to be solved. It can just be play. And it is a place where I feel like everything that I accomplish is...obviously, I have people in my life who really support me, but it is a much more individual activity. So it is kind of the right-left brain piece. But I've been reading this book called "Saving Time." It is what my microphone is currently propped on. But it's by Jenny Odell, who wrote: "How to Do Nothing." It's breaking my brain in a really, really, really good way. It talks a lot about the origin of productivity, how we think about time, and how it is so tied to colonialism, and racism, and capitalism, and neoliberalism, all these things. I think it has been really interesting. And so thinking about boundaries between work and writing has been really, really helpful because I really love my job; I'm not only my job. And so I think having that clarity and then being like, well, what does that mean in terms of how I divide my time, how I set examples for others at work in terms of taking time off or leaving the office on time? And trying to make sure that I have a good emotional headspace so that I can transition to writing after work; all those things. I think it is really interesting. And that also, ultimately, it's we're not just our productivity either. And I think writing can be very, again, inherently kind of unproductive. People joke that cleaning is writing, doing the dishes is writing, taking a walk is writing, showering is writing, but it is true. I think that the art doesn't talk about efficiency. You can't, I think, make art always more efficient in the same way you can do with engineering. We don't have those same kinds of conversations. And I really like having that kind of distinction. Not that I don't like problem-solving with constraints and trade-offs and things like that, but I also really like that meandering quality of art and writing. So yeah, I've been thinking a lot more about collective time management, I guess, and what that means in terms of work, writing, and then yeah, hobbies and personal life. There are never enough hours in the day. But as this book is teaching me, again, maybe it's more about paradigm shifting and also collective policies we can be putting in place to help make that feeling go away. STEPHANIE: For sure. Thank you for that distinction between hobby and career. I really liked that because it's a very generative mindset. It's like a both...and... rather than an either...or... And yeah, I completely agree with you wanting to make your life expansive, like, have all of the things. I'm also a big fan of Jenny Odell. I plugged "How to Do Nothing" on another episode. I am excited to read her second book as well. NICOLE: I think you'll like it a lot. It's really excellent. She does such interesting things talking about ecology and geology and geographic time skills, which is really interesting that I don't know; it's nice to be reminded that we are small. [laughter] It's a book that kind of reminds you of your mortality in a good way, if that makes sense. But much like Gary on your porch reminds you of mortality too [laughs] and that you have to put Gary away for a little bit so that his time can come in October. [laughs] STEPHANIE: Exactly, exactly. Cool. On that note, let's wrap up. Thank you so much for being on the show, Nicole. NICOLE: Thank you so much for having me. This was a blast. STEPHANIE: Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeeee!!!!!!!! ANNOUNCER: This podcast is brought to you by thoughtbot, your expert strategy, design, development, and product management partner. We bring digital products from idea to success and teach you how because we care. Learn more at thoughtbot.com.

The Bike Shed
365: Career Progression

The Bike Shed

Play Episode Listen Later Dec 13, 2022 37:55


Joël has been thinking a lot recently about array indexing. Stephanie started volunteering at the Chicago Tooele Library, a non-profit community lending library for Chicagoans to borrow tools and equipment for DIY home projects! It's the end of the year and often a time of reflection: looking back on the year and thinking about the next. Stephanie and Joël ponder if open source is a critical way to advance careers as software developers. This episode is brought to you by Airbrake (https://airbrake.io/?utm_campaign=Q3_2022%3A%20Bike%20Shed%20Podcast%20Ad&utm_source=Bike%20Shed&utm_medium=website). Visit Frictionless error monitoring and performance insight for your app stack. Chicago Tool Library (https://www.chicagotoollibrary.org/our-organization) Circulate and Ruby For Good (https://github.com/rubyforgood/circulate) Glue Work (https://noidea.dog/glue) Being the DRI of your career (https://cate.blog/2021/09/20/being-the-dri-of-your-career/) The Manager's Path (https://www.oreilly.com/library/view/the-managers-path/9781491973882/) Kingship (https://acoup.blog/2022/10/07/collections-teaching-paradox-crusader-kings-iii-part-iii-constructivisting-a-kingdom/) What technologies should I learn? (https://thoughtbot.com/blog/what-technologies-should-i-learn) Learning by Helping (https://thoughtbot.com/blog/learning-by-helping) "Comb-shaped" Careers (https://killalldefects.com/2020/02/22/specializing-vs-generalizing-careers/) Transcript: STEPHANIE: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. JOËL: And I'm Joël Quenneville. And together, we are here to share a little bit of what we've learned along the way. STEPHANIE: So, Joël, what's new in your world? JOËL: I've been thinking a lot recently about array indexing. I feel like this is one of the areas where you commonly get confused as a new programmer because most languages start array indexing at zero. And what we really have here are two counting systems, either an offset so how many spaces from the beginning of the array, or a counting system where you count 1,2,3,4. At first, it feels like why would computers ever go with the offset approach? It's so illogical. Counting 1,2,3,4 would feel natural. But then, the more I think about it, the more I've started seeing the zero-based pattern show up in everyday life. One example, because I enjoy reading history, is how we talk about centuries. You might talk about the 19th century is the Victorian age, roughly. But you might also refer to the 19th century as the 1800s. So we've kind of got these two names that are a little bit off by one. And that's because when you're counting the centuries, you count first century, second century, third century, fourth century, and so on. But when we actually go by the first two digits, you start with the zeros, then the 100s, then the 200s, 300s, and so on. And so we have a zero-based counting system and a one-based counting system, and we sort of have learned to navigate both simultaneously. So that was really interesting to me to make a connection between history and programming and the fact that sometimes we count from zero, and sometimes we count from one. STEPHANIE: Yeah, I will have to admit that I always get confused when we're talking about centuries and making the mental connection that 19th century is the 1800s. It always takes me a bit of an extra second to make sure I know what I'm hearing, and I'm attributing it to the right year. I think another example where I get a bit tripped up is the numbering of floors because, in the U.S., we are counting floors using the one-based counting system, whereas I think in Europe and places outside of North America, to my knowledge, the first floor will be considered the ground floor, and then the second floor will be the first floor and onward. So that is a zero-based counting system that I can recall. JOËL: I never noticed there was a pattern. I just thought every building was arbitrary in where it counted from. STEPHANIE: Yeah, I do think it's a cultural thing. I would be really curious to know more about the history of how those counting systems get adopted. JOËL: So that's a fun thing that I've been exploring recently. What's new in your world, Stephanie? STEPHANIE: I am really excited to talk about a new real-life update. I started volunteering at the Chicago Tooele Library, which is a non-profit community lending library in my city for Chicagoans to borrow tools and equipment for DIY home projects. What I really like about it is they use a pay-what-you-can model so everyone can have access to these resources. It reduces the need for people to buy new things all the time, especially for little one-off projects. And they also provide education to empower folks to learn how to do things themselves, which I thought was really cool. And another thing that I think might be a little relevant to this audience is that I actually first encountered the Tooele library through its open-source software, which is a Ruby for Good project called Circulate. So the Tooele Library had previously been using this software that was built by community members to do all of their lending. And I got to see it in action when I saw a librarian use it to rent out tools to community members. And then I also interfaced with it myself as a member of the Tooele Library. I've borrowed things like saws, cooking appliances like air fryers that they also had. And when I was first a guest on this show, I borrowed a microphone from them to do this podcast because I was just a guest at the time and didn't want to commit to buying a whole new microphone, so that was a really awesome way that I got to benefit from it. JOËL: It's a fantastic resource for the community. STEPHANIE: Yeah, I love it so much. If anyone is in Chicago and wants to check it out, I highly recommend it. And even if you're not in Chicago, if the idea of a lending library interests you, you can check out the software on Ruby for Good. And it's no longer being used by the Chicago Tooele Library, but it would be really cool to see it be picked up by other people who might want to start something similar in their own hometowns. JOËL: So you mentioned you're volunteering here. So this means you're going in person and helping people check out items from the library. STEPHANIE: Yeah, I did my first volunteer librarian shift about a month ago, and right now, they're in the middle of moving from one location to another, so they've had a lot of in-person workdays to get some of that done. But even before that, I had contributed a little bit to the open-source repo, which is just a pretty standard Rails project, so I felt super comfortable with getting my feet wet in it. And it was, I think, my first open-source contribution. I find that some of the other open-source software, especially developer tooling, is a little scary to get into. So this was a really accessible way for me to contribute to that community, just leveraging the skills that I have for my day-to-day work. JOËL: Would you recommend this project for our listeners who are looking to maybe get their own first contribution in open source? STEPHANIE: The Circulate project is actually on a bit of a hiatus right now. But I would definitely suggest people fork it and play around with it if they want to. I also know that Ruby for Good has a bunch of other projects that are Rails apps and have real users and are having an impact that way. So if anyone wants to get into open source in a way that feels accessible and they're building a product that people are using, I definitely recommend checking that out. MID-ROLL AD: Debugging errors can be a developer's worst nightmare...but it doesn't have to be. Airbrake is an award-winning error monitoring, performance, and deployment tracking tool created by developers for developers that can actually help cut your debugging time in half. So why do developers love Airbrake? It has all of the information that web developers need to monitor their application - including error management, performance insights, and deploy tracking! Airbrake's debugging tool catches all of your project errors, intelligently groups them, and points you to the issue in the code so you can quickly fix the bug before customers are impacted. In addition to stellar error monitoring, Airbrake's lightweight APM helps developers to track the performance and availability of their application through metrics like HTTP requests, response times, error occurrences, and user satisfaction. Finally, Airbrake Deploy Tracking helps developers track trends, fix bad deploys, and improve code quality. Since 2008, Airbrake has been a staple in the Ruby community and has grown to cover all major programming languages. Airbrake seamlessly integrates with your favorite apps to include modern features like single sign-on and SDK-based installation. From testing to production, Airbrake notifiers have your back. Your time is valuable, so why waste it combing through logs, waiting for user reports, or retrofitting other tools to monitor your application? You literally have nothing to lose. Head on over to airbrake.io/try/bikeshed to create your FREE developer account today! JOËL: So, as we're recording this, it's the end of the year. It's often a time of reflection and looking back on the year and maybe even thinking about the next year and progression. I'm curious since you said this was your introduction to the world of open source, do you think that working on open source is a critical way to advance our careers as software developers? STEPHANIE: That's a good question. Honestly, I think my answer would be, no, it's not critical. I think it's one avenue for people to explore and increase their impact on the community and increase their technical knowledge, especially if it's in an area that they are not quite working in in their day-to-day, but they're really interested in diving deeper in. But I do think there's sometimes a lot of pressure to feel like open source is this shining beacon of opportunity for you to dive into and that it'll bring a lot of meaning to the work that you do. And people, obviously, and for a good reason, talk about how special it is that open source is part of the industry that we work in, but I don't necessarily think it's critical. I do certainly feel inspired by people who create open-source tools or contribute to Ruby or Rails. But I don't necessarily think that it's something that should be a rule and that everyone needs to get into it or contribute to it. Because there are many ways that people can have an impact having influence on the community, and that way is one. But there's also a lot of value, even just focusing on the team that you're on and your company internally. JOËL: I appreciate the nuance there because I think like you said, we often view open source as the main thing that everyone should be doing to get ahead. And there are a lot of different ways to improve your skill and then to get ahead in your career, which are not always correlated. One kind of really basic way that I was shocked at how much it helped me was I was learning a new language, Elm. I joined their online Slack community and just hung out in the chat room and answered the most beginner questions because I barely knew the language at the time. And most of these could be found just by looking up the documentation or by opening up a REPL and experimenting with a thing and giving an answer, which are skills that, as a programmer who's got some experience, I take for granted but that not everyone has that as a reflex. Because Googling, searching documentation, crafting experiments in the REPL those are all skills that you have to learn to build over time. But answering those very basic questions over and over over the course of a few months actually taught me so much about the language, and I'm not doing anything fancy. STEPHANIE: That's awesome. I have a friend who, during a time when I think she was struggling with her confidence in her technical skill and was feeling a bit stuck at work, spent an afternoon answering Stack Overflow questions on basic Ruby and Rails, and that gave her a lot of joy. Because she recognized that she was the person Googling those questions and needing to find answers many years ago, and that was one way that she could pay it forward. And I think she had a lot of empathy, like I said, for those people who are needing a little help, and it felt really good for her to be able to provide it. JOËL: It's a way to have an impact on other people while also solidifying your own knowledge. STEPHANIE: Yeah, exactly. JOËL: So we've mentioned a couple of different ways where you can level up your skills, that might be through helping out other people online, that could be through open source. But I'd like to zoom out a little bit and look at not just improving your technical skills but thinking about career in general when you're looking out over the next 10, 20, 30 years. Do you have an approach that you like to take when you're thinking that broadly? STEPHANIE: For me, I have had trouble thinking about a five or 10-year plan because things often don't turn out the way that I envisioned them. And so I think I've come to realize that leaning into how I feel about things in any given moment is more valuable and oftentimes more accurate to what I really want. Because I can have an idea of what I want my career to look like, but the things that ring most true are what I'm feeling in the moment. And so you mentioned we're releasing this episode at the end of the year. I do tend to do a little bit of recap about how my year went if I spent it doing things that fulfilled me and made me feel good, if I grew in the ways that I wanted, even separate from any performance review. I know that this is a time of reflection for a lot of people. And I don't personally ascribe to New Year's resolutions, but I do like to think about themes or intentions. And those are things that ground me rather than setting particular goals that I may or may not achieve; I may realize I want to change. So yeah, I really recommend just sitting with yourself and spending time thinking about what you want, and that could mean a promotion, but that could also mean a more interesting project using new technology. It could mean more responsibility and decision-making power. It could mean a move into management. I think it's different for everyone. And so when people have asked me about advice or what they should do in terms of coming to a crossroads between jobs or between projects, I think that you really can't tell anyone else what is the right move for them; only they can decide. JOËL: And tech, it's such a broad field. There are so many different roles and paths you can take through it. Well, there's junior engineer, engineer one, engineer two, engineer three, that's just the same everywhere. And there's only one way forward; it's up or stagnation, and that's it. Like you really get to choose your own adventure in this industry, and that's exciting and maybe a little bit terrifying. STEPHANIE: Oh yeah, for sure. I like that you brought up the different levels and roles that you could have because I have found companies that provide a career ladder or engineering ladder that has been useful for me in the past in figuring out if the next step at the company that I'm at is what I want. And it's helpful. It's very clear to me, okay, these are the skills that I need to get promoted into this next level. But other times, that description describes something that I'm not interested in, and that is also really helpful information. JOËL: Was there ever a moment in your own career where you had to navigate some of these decisions to decide what path you wanted to take as opposed to just following a ladder up? STEPHANIE: Oh yeah. I was presented opportunities to start getting a feel for management or overseeing a team as a lead. And people had really great feedback for me that that was something that I had shown leadership in, and they thought I would do a great job in that role. But I actually decided to kind of hit the brakes a little bit on that particular route because what I realized I wanted at the time was to focus more on being an IC and deepening my technical knowledge. And that was really tough. I do also think that a lot of women are pushed into management because they end up doing a lot of the glue work that comes with unblocking people, supporting people, and project management and those are all skills that, like, quote, unquote, "lend themselves towards management." But just because we do that work doesn't necessarily mean that that's the direction that we want our careers to go in. And so that was a really tough thing that I had to do was to make it really clear that I wasn't quite ready for that yet. And I might be in the future, but in that moment, just standing my ground and being like, actually, I want to focus elsewhere instead. JOËL: That's really valuable, knowing yourself and knowing where you want to go, what the next step is. Are there any exercises you like to do to try to figure that out for yourself? Because I know something that I've struggled with sometimes is not being quite sure what I want. STEPHANIE: I journal a lot in my personal life and also about work. I think I tend to revisit that in my notes, especially about things I've learned or things that I felt excited about in terms of projects and what I've been unlearning, and just going through all of the things that I've collected over the year and synthesizing that information. I also really like to lean on my friends and peers. So I really enjoy a good one-on-one when we just talk about those types of things, you know, dreams, hopes, goals. I like to lean on my manager a lot, too, because oftentimes, they're able to see things about my work over the past year that maybe I was just too in the weeds to be able to have that higher level perspective about. As a third-party observer, they see a lot of things that you might not be able to, either on your current project or even opportunities for you to step into at a higher level in the company. So yeah, I think that, in some ways, it's a solitary activity, but it doesn't always have to be. JOËL: I remember having a really good conversation with my manager as well, at some point, talking about that decision of am I interested in maybe moving into the management track? Do I want to stay on the IC side of things? And that was a really good conversation to have. STEPHANIE: So after having those conversations and kind of figuring out what direction you wanted to go, were there times when you had to actively make that choice or advocate for yourself? JOËL: Yes. One of the things that I realized that I care about is investing in other people, and sort of the mentoring, supporting side of things which you might think is kind of a management activity. But management is a little bit different than that. I prefer the coaching aspect than the management aspect. And so what I wanted to do at some point once, I realized that that's what I wanted and that a management position would not fulfill that desire, I started looking to see is there a way to craft that role within the company? A common thing that happens, I think, in workplaces is that you are given roles or titles for things that you already do. Clearly, if there's something that I care about, I needed to be doing it already in my day-to-day work, and I needed to be doing it at a fairly high level. And so I focused efforts there, trying to say I want to get better at this. I want to do this in the opportunities that I do have in my current role. And then eventually, I did go to my manager and said, "Look, this is what I am looking for in the next step." Had a discussion about whether or not management could be a fit or if we could customize a management role for this, and eventually decided that an IC role would be a better fit for that. And among other things, we introduce at thoughtbot the role of principal developer, which is kind of the next step on our career ladder. It can be a little bit different emphasis for different people on the team who have that role, but, for me, a big part of that was putting more impact on the broader team as its focus. STEPHANIE: That's really cool. I really appreciate that you were able to come to the table with what you wanted and able to have a discussion about, okay, so management might not be the right fit. But how can we create this new role that not only benefited you but also benefited the rest of the company because that hadn't been an area that they had quite figured out yet. But by doing that, you essentially did exactly the kind of coaching and making an impact [chuckles] that you had also shared you had been wanting because you just opened this new door for others to also eventually work towards. And I think that's really awesome. That reminds me a lot of the idea of being directly responsible for yourself and your career. There's a really good blog post by a woman named Cate, who is an engineering director at DuckDuckGo. I'll link it to the show notes. But she writes a lot about how you have to own your own career and find opportunities to have that agency. And you can always ask. Like, you might not get everything that you want, but by asking and by bringing it up, you at least can start the conversation rather than expecting or just hoping that things will turn out the way that you want without having said anything. A couple of things that she says in the article that I also really like is the idea of expecting less from your job and more from your career. JOËL: Hmmm. STEPHANIE: At any given point, your job might not check all of the boxes, but maybe they check some, and that is worthwhile. And once you get to a point where maybe the job is not really doing anything towards the direction you want your overall career to go, that might be time to reevaluate. And then she also mentions learning from feedback and asking for feedback, and making sure that beyond the things that you're able to identify, learning from others areas that you can work on to have a better impact on your team is also really important in progressing your career quickly. JOËL: So how is this mindset of owning your career path maybe different than the default that a lot of people might assume in our industry? It sounds like it's a much more proactive approach. We talked already about doing the work to figure out what you want out of a career, what you care about, as opposed to just being told what you should care about by others. Are there other aspects that you have to sort of own as part of owning that career? STEPHANIE: I mean, I think it's just vital to having a work experience that is fulfilling and brings you joy and doesn't bog you down. I know we all have to work, but we also all have the capacity to exercise our agency there. I know we did talk a little about management earlier, and I wanted to also plug a book, "The Manager's Path" by Camille Fournier, which is about management. But she has a really excellent first chapter about how to be managed and what you can expect from having to be an employee with a manager but also what power you have in that dynamic. She says that while you can be given opportunities and have areas of growth pointed out to you, your manager can't read your mind, and they can't tell you what will make you happy. And so I have seen a lot of people spend time worrying about if they're doing the right things to get to the next level. But oftentimes, we just haven't really talked enough about how that next level is really totally different. And there are so many routes that that could take, whether that is becoming an open-source maintainer, or producing content like blog posts or podcasts even, or speaking at conferences, or management. Once I realized that there were so many different opportunities available to me, I did feel a bit liberated because it does seem like, oh, you're just supposed to level up your technical skills until you've become this superstar coder. But that's not what everyone wants, and I think that's okay. JOËL: And, like you said, there are so many different areas where you might choose to focus or invest time into, and you don't have to do them all. You don't have to be the super prolific open-source person, and also keynoting at conferences, and also publishing the book, and also, you know, whatever you want to add in there. So once you know your goals, how do you make those goals a reality? We've been talking a lot about know yourself and have some goals. But at some point, you have to translate those goals into actions that will take you one step at a time towards those goals, and sometimes that translation step is hard. STEPHANIE: It is hard. I think this is another place where I would work with my manager on, especially if I'm on a project where I'm not quite seeing those opportunities. Like I said, usually having another perspective or another set of eyes on what you're working on can make it clear, like, specific and concrete aspects that you can spend your energy on. So if it's wanting to get better at testing, it's like, okay, what does the current test suite look like, and what are some opportunities that you can provide new value to the test suite to make an impact on the team? Or what are some refactoring opportunities you can make if you are wanting to have more of that experience outside of the regular ticketed feature work that you have to do? JOËL: I think it's interesting that you mentioned impact on the team because not only do you want to level up some skills, but if nobody knows about it, your odds of getting that promotion or getting recognized for it are very low. So not only do you have to get good at technical systems, you have to get good at social systems as well. I was recently reading an article about the role of kingship in medieval Europe and how it's very much a role that needs to play out in public in order to build legitimacy so that people will do what you say. You need to be seen to do the things that everybody has in their mental kind of checklist are things that a good king does. And some of those are somewhat divorced from the reality of what actually is effective governance. It could be various public rituals that you do that people see and are like, oh yes, you're doing this parade every year. You're looking the part of a good king; therefore, I think of you as a good king. It could be military campaigns because there are a lot of those in the Middle Ages. And there's this interesting cycle where kings that have long and effective reigns then get to influence what the next generation of kings are going to have to do in order to look legitimate because people will point back at you and be like, well, Stephanie was an effective ruler, and she did X,Y,Z. And so, in order to look the part of an effective ruler, you should be doing those same things. STEPHANIE: That's fascinating. In some ways, I struggle with the idea that you have to prove that you're, you know, doing the kingly things and worthy of that title. But I do think that there is some degree of truth to that in your career as well, where you want to make sure that the work you're doing is visible. And you also just, in general, bring up a really good idea about the importance of leadership in career progression. And I think that in my experience, and from what I've observed, that is a vital way to progress your career is to just start demonstrating leadership qualities, and that could look like reaching out to new team members and helping them with onboarding. That could mean updating the documentation, just taking the initiative, and doing that. That could also mean starting to voice more of your opinions about risks or red flags about a certain technical implementation or a project because you have amassed the experience to be able to make those decisions and put in your two cents and then making sure that the choices that are made are the right ones. JOËL: Additionally, I think even when you're doing things that are a little bit more inward-focused, like learning something new, you can generally find some kind of artifact that you can take and share more broadly with a team. So maybe you experimented with something, and you wrote up a small code example to showcase the thing that you're trying out; make a Gist on GitHub and share it with your team. If you learn something new, maybe write a blog post about it. Maybe even just start a thread in Slack and start a conversation on something that you learned recently. These can be really low effort, but I always look for opportunities to take things that I have learned, things where I'm sort of working a little bit more inwardly on myself and see how can I share that with the rest of the team? Both because it benefits the team, they get to benefit from the impact of some of what you've done but also, it helps a little bit with making sure that your work is visible. STEPHANIE: Yeah, absolutely. JOËL: So we've been talking a lot about improving ourselves technically, but there's one question that we've danced around that we haven't actually addressed, and I'm curious about your thoughts here. For someone who's early career, do you think it's more valuable to be a specialist, someone who goes all in deep on one technology and becomes great at it? Or is it better to go more broad, become a generalist, and know a little bit about a lot of things? From the point of view of what will help move my career forward. STEPHANIE: I personally do think there is an aspect of being a generalist for a little while, a few years maybe, to get a taste of what is available to you. I think that is valuable before really committing to decide, okay, like, this is what I want to specialize in. Honestly, as a generalist myself, I still do feel a bit like I don't know what I want to dive deep into and commit myself a little bit to being like, okay, I'm going to have to sacrifice learning all of these other things to really focus on this one aspect. So I have found that being a generalist also kind of gives me the flexibility to work on different projects that might require learning a new language, or at least one that I am less familiar with. And I know that that's a skill in and of itself, being able to move on to different things and gather information and the skills you need to start contributing and working effectively quickly. So, honestly, I think I can really only speak to that experience, but it has served me well and is, for the most part, enjoyable to me at this present moment. What about you? Do you have any thoughts about generalist versus specialist? JOËL: I think, in a certain sense, there's no right answer. Like we said earlier, there are multiple paths to a career in tech, and you can go through both. I think something that I've seen be less effective, especially very early career folks, is trying to go too broad, jumping on every new language or framework every couple of weeks, every month, and just dipping your toe in it and then moving on to something else and never really learning deeply, or synthesizing, or building a mental model of things. And so you're kind of stuck in the shallow end forever, and it's hard to break through into that initial level of expertise. So I think, especially very early career people, I tend to recommend pick one language or technology and focus on getting good at that and then branch out. And, of course, you're never doing everything in a vacuum because there are a bajillion dev skills you need to learn beyond a language or framework. So I often categorize three areas to focus on that I like to recommend for people; one is pick a primary language or framework and get good at it. Two, learn some evergreen skills, these are things like version control, so Git, SQL, using the command line. And these are not things that you need to master on day one because you're going to use these your entire career. So learn a few things, move on, come back to them next month, learn a few more things, and just keep coming back there every now and then over the course of your entire career to deepen those skills, and that will serve you very well. And then, finally, some random thing you're interested in. I find that I learn so much faster and so much more deeply on topics that I'm interested in or passionate about. And that interest can be very random sometimes, and it can also be fleeting. It can be, oh, I was interested in a thing for a little bit, and I dug into it, and then I moved on to something else. If I have a career or learning plan, I like to leave that room for spontaneity to say there will be things that are maybe not strategically important as my next step, but I can learn them because I'm interested in them because they bring me joy. And then later on, maybe that will actually be the foundation of something important two years down the line where I can draw on that knowledge. STEPHANIE: You bring up a really interesting point. I do think my interpretation of generalist did line up more with the idea of those evergreen skills. So I think also about debugging and testing, and those are just part of the things that you're doing every day. And that might look different from project to project depending on what language or framework you're using and what testing philosophy people on your team abide by. But yeah, those are areas that I do think investing in will serve you well across projects and help put you in a position where you can jump into anything and be like, okay, I have these core foundational beliefs and skills about this work and now, okay, let me figure out how to apply them to the task at hand. JOËL: Are you familiar with the metaphor of the T-shaped developer? STEPHANIE: I don't think so. JOËL: So the idea is that you want to balance out a broad set of skills that you're a generalist at, that you know a little bit about them with a few things that you are a deep expert in. So you have that horizontal bar, but you also have a deep area of expertise which creates a kind of a T shape. In a sense, maybe that's just trying to say, like, do both. But I was recently reading an article that was advocating for not only a T-shaped developer as a sort of starting point but then also beyond that, over the course of a long career, you have plenty of opportunities to develop more than one specialization. And so now you start having a very broad base of general knowledge as well as multiple areas that you have spent significant time becoming an expert in. And this article referred to this idea as a comb-shaped developer, and that's something you work up to over the course of years or decades in tech. STEPHANIE: That's very cool. I love the idea that you might start out as a T-shaped but what you're doing is kind of like adding to your harness of skills and it being an additive process. You'd have more teeth in your comb [laughs] rather than it replacing something or a set of skills. On that note, shall we wrap up? JOËL: Let's wrap up. STEPHANIE: Let's wrap up. Show notes for this episode can be found at bikeshed.fm. JOËL: This show has been produced and edited by Mandy Moore. STEPHANIE: If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. JOËL: If you have any feedback for this or any of our other episodes, you can reach us @_bikeshed, or you can reach me @joelquen on Twitter. STEPHANIE: Or reach both of us at hosts@bikeshed.fm via email. JOËL: Thanks so much for listening to The Bike Shed, and we'll see you next week. ALL: Byeeeeeeee!!!!!!!!! ANNOUNCER: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Bike Shed
362: Prioritizing Learning

The Bike Shed

Play Episode Listen Later Nov 15, 2022 29:40


This week, Steph and Joël discuss investment time and keeping track of things they want to learn. How do you, dear listener, keep track of things you want to learn? When investment time rolls around, what do you reach for, or how do you prioritize that list? Are there things you actively decide not to focus on when choosing where to develop deep expertise? Are there things you wish you could spend time on if you could? This episode is brought to you by Airbrake (https://airbrake.io/?utm_campaign=Q3_2022%3A%20Bike%20Shed%20Podcast%20Ad&utm_source=Bike%20Shed&utm_medium=website). Visit Frictionless error monitoring and performance insight for your app stack. Bloom's Taxonomy (https://cft.vanderbilt.edu/guides-sub-pages/blooms-taxonomy/) thoughtbot's interview (https://thoughtbot.com/playbook/our-company/hiring#interviewing) 3 categories of learning (https://thoughtbot.com/blog/what-technologies-should-i-learn) Four Thousand Weeks: Time Management for Mortals (https://www.amazon.com/Four-Thousand-Weeks-Management-Mortals/dp/B08XZY5ZF7/ref=sr_1_1?gclid=CjwKCAiA9qKbBhAzEiwAS4yeDZvBGi9yS1YkifUNcf0j8jx3s-NKc1pw5itLKSjI1vOfzlYJCuRNFRoC7ioQAvD_BwE&hvadid=599682518804&hvdev=c&hvlocphy=9006718&hvnetw=g&hvqmt=e&hvrand=3741098155096216457&hvtargid=kwd-1661352592925&hydadcr=28547_10703911&keywords=the+four+thousand+weeks&qid=1667835268&sr=8-1) Transcript: STEPHANIE: Hello and welcome to another episode of The Bike Shed, a weekly podcast from your friends at thoughtbot about developing great software. I'm Stephanie Minn. JOËL: And I'm Joël Quenneville. And together, we're here to share a little bit of what we've learned along the way. STEPHANIE: So, Joël, what's new in your world? JOËL: I was recently having a conversation with another colleague at thoughtbot, and they brought up Bloom's Taxonomy, which is a taxonomy of different phases of learning. It's often visualized as a pyramid with a broad base that starts with remembering facts and then expands up to understanding and then up to applying, and then analyzing, evaluating, and then finally creating. So it's a way to kind of quantify progression of someone who is trying to master a topic. And what really struck me when I saw this diagram was I immediately thought about how the tech industry interviews and a lot of our interviews are focused on the base of that pyramid. It's all about did you memorize certain facts, or APIs, or things like that? But a lot of the value that we create as developers...but to be good at our jobs, we have to actually be active much higher up in that pyramid in the analyze, evaluate, and create layers. But unfortunately, I feel like interviews often don't go that far; they're really just focused on the base. So that was a really interesting realization. We were not talking about interviewing, but this colleague shared the diagram. I looked at it, and the first thing I thought was like, oh, this is the problem with a lot of tech interviews these days. STEPHANIE: Yeah, I think a lot about how in interviews, we want to be showing off our best selves in a sense. Like, we want our interviewers to see the version of ourselves that we bring to work, which is usually like you were saying, at that top layer and isn't recalling particular facts about how our framework works or things we might have learned in computer science class in college. And one thing I actually really like about thoughtbot's interview...even in the job application, I think it says, "We want to see your strengths and see you at your best self." And it asks what can we, as thoughtbot, interview you on in a way that gives you the opportunity to display those skills? And so I really like that. I think I remember when I submitted that application, I might have said something along the lines of debugging a problem because I think that's where I personally shine. I don't know if it ended up being a conscious thing. But I do remember when I was doing the pairing interview, there was an aspect of debugging, and I was like, yes, this is where I can show off what I would normally do in a real-life work situation. So that really resonates with me. JOËL: Debugging is such a core developer skill, and yet I feel it's not often something that we dig into in a process like an interview. Sometimes you have almost like a code review style where you've got, oh, there is one bug hidden in here, find it, and it's almost like a gotcha sort of thing. I don't like those. But a real situation where you could show off your problem-solving and debugging skills sounds like a really good way to play to your strengths. STEPHANIE: Yeah. Where else do you think that higher level of critical analysis and creative output shows up in your day-to-day work? JOËL: I think it has to pervade the day-to-day work. The majority of my job is not remembering what method from enumerable is used to sort an array; it's trying to find a way to translate a problem that the business has into code or a code solution that will satisfy quite a lot of different constraints. This might be something that is doable in one or two days because that's all we have to allocate to this problem. So a lot of that work could be scoping down a problem. There might be some performance-related constraints where it needs to be faster than X. There are certainly some correctness constraints as well that you're trying to work within. So all of that, I think, is much more at that analysis, evaluation, and creation layers of the pyramid. STEPHANIE: Yeah, that's a really good point. I think sometimes I've seen interviews try to replicate that or recreate it in an interview question, even though they may be genuinely based off of real-life experiences that companies might have had. But most often, it's really hard to be evaluated on that situation until you're really just doing that work. JOËL: It is really hard to translate that into an interview format. I think one aspect that I do appreciate, and maybe that's just the consultant in me but having a conversation about trade-offs in a situation where there isn't a single correct answer. And so, maybe the interviewer and the candidate have different conclusions. But as long as they can show their reasoning down that path of why they came to the conclusion that they did, I think that's the important part of that. The hard thing is if the interviewer has their preferred solution, and they're just like, "No, you didn't come to my conclusion," then that's not a good interview. But a situation where a candidate gets to demonstrate their critical thinking skills, their analysis skills, their ability to make difficult decisions to balance trade-offs, I think that's a great way to show off some of those high-level skills that honestly we use on a daily basis. STEPHANIE: Yeah, I agree 100%. JOËL: So that's what I've been kind of excited about recently, just seeing this diagram and having that moment of clarity about interviewing. What's something new in your world, Stephanie? STEPHANIE: That's really interesting that you brought that up because it's kind of related to what I was going to say about what I've been working on on my client project, which is the ambiguity of the rewrite. So I mentioned last week that I've been rewriting some Rails views. And we're working on a pretty old legacy application, so there are a lot of things that, as we're rewriting, we need to figure out whether or not we want to include it in the new version. So it's been a little more challenging than just copying over the functionality that you want because there are a lot of things in this legacy app that were written 10-12 years ago that we don't have any context on, especially as consultants and even the people we're working with on this team, the code might even predate them. So we do our best to ask them questions about, hey, is this still necessary? Do you think we want it in this rewrite? And they don't always know the answers. And so we have to make our best judgment and make a lot of micro-level decisions about what we think is important to bring into this rewrite without a ton of that historical context. So when you were talking about those analytical, critical thinking skills, that seemed like a very relevant experience that I would say has been utilizing those aspects of learning. JOËL: Definitely, especially for a codebase that is that old. I feel like ten years is almost like a generation in software developer terms. Ten years ago would be what? 2012. That's Rails 3 still. I forget when Rails 4 came out. But yeah, that's a long time ago when you talk about technology. And at a company, even the odds of someone sticking around for that long are very low. STEPHANIE: Absolutely. And so sometimes we just choose to leave the code as it is, and we will just copy and paste it. But other times, we might try to rewrite it in a more modern way. One thing that we did recently was migrate a hand-rolled form builder to use Simple Form. And we did our best to retain most of the original functionality. But there were aspects of it, things like browser validation and stuff like that, that had to change because we made the conscious decision to use a more modern form builder. But then there were always going to be some differences, and so we had to reconcile those with the product team, have a lot of communication around what was important to keep and what wasn't. And yeah, really, just try to get the code in a better spot if we can while also acknowledging that some things have been working for ten years, and that's okay too. JOËL: So you're talking about a lot of old code that you're working with and seeing how much things have changed over ten years. And I feel like, as software developers, we're constantly having to learn and hone our skills, but it can really be overwhelming because there's so much to learn. How do you prioritize what you want to learn next? STEPHANIE: At thoughtbot, we're lucky enough to have investment times. So typically, on Fridays, most of us will not be working on client work, but we'll be working on things to improve thoughtbot internally or improve ourselves professionally. So I'm really grateful that I have dedicated learning time, and figuring out how to spend it has been both fun and also fraught in a way because like you were saying, there are so many things I want to learn about, and we internally have so much lively discussion about really cool technical things. But I've kind of accepted that I'm not going to be able to learn it all. And so when Friday does roll around, I do have to figure out, okay, how do I want to spend my precious investment time today? For me, it honestly feels really dependent on how I'm doing that Friday. So I do have a bit of a backlog of talks and articles that I've collected along the way or bookmarked that I might come back to if that is the mode I'm in. I also have bigger themes, I think, around frameworks and technologies that I want to dig a little more deeply into. I've been trying to work through a TypeScript tutorial for a while now, especially because it's not something that I've gotten a chance to spend a ton of time on in client work. And so in some ways, it's like, well, if I want to work on a client project using TypeScript, then I feel like I should brush up on TypeScript first. So that's kind of in the back of my head is just a more nebulous goal. But I also think that it really changes depending on how I'm feeling throughout the year. It could be very well that the TypeScript thing never comes to fruition and maybe something else will grab my attention. JOËL: I'm sure there are lessons, though, that you would learn from TypeScript that you could then use to improve your day-to day-work on a Rails project, for example. STEPHANIE: Yeah, absolutely. I think that's the really cool thing is that everything I learn in some way can connect to other things that I do know, or experience, or come across during my everyday work. So none of it ever feels like a waste of time. I think the best feeling is when you can make that connection as you are experiencing something in the codebase that reminds you of something you read about in a blog post or something like that. JOËL: Connections are one of the most crucial parts of, I think, knowledge creation. And in a past episode on note-taking, we had a whole deep conversation about how sometimes making connections between some of your notes is almost more valuable than taking a note by itself. STEPHANIE: Joël, how do you prioritize your learning? JOËL: I have three broad categories of technical learning that I like to do. The first is anything related to my core language and framework, and as of right now, that is Ruby, Rails. And maybe a little bit more broadly, anything related to the paradigms related to that, so object-oriented design, patterns related to that, all things that will help me to write better Ruby and Rails code. Then there are evergreen skills that are always great to invest in, things like getting better at Git, learning a little bit of SQL, getting better at doing things on the command line. Those are all things that I look to level up every now and then. And then, finally, just whatever interests me right now. I find that the return on investment for the amount of time you put in versus the amount of knowledge you get out is much higher when I'm personally interested. So it might be something completely unrelated to maybe more strategic elements of tech that I'm trying to get, but if I'm interested, it's worth putting a little bit of time into that. And so, for me, several years ago, that was functional programming types. Elm, I went really deep into that. And I think that really unlocked a whole other way of thinking about software for me and helped me...like we were saying earlier, I was able to bring that back to the way I think about Rails applications, the way I think about test-driven development. And that really rounded out my thinking, I think. STEPHANIE: Yeah, I think focusing your energy into where you're interested in makes it easier, for sure. It makes it more fun. I think like you're saying, your learning gets accelerated. And I think it's also really cool that people have different interests that they do like to go deep on. So maybe you might be thinking that you should focus your energy on this other aspect of development that you think would be really cool or useful in your work but doesn't necessarily interest you that much. Chances are that there's someone else who loves learning and talking about it, and you can use them as a resource when you want to know more. JOËL: That is a really important aspect because learning is not necessarily a solo activity. So sometimes, maybe I'm not even just prioritizing things that I think are strategically good for me or even things I'm just interested in. It might be things that my colleagues are interested in. So we have a book club that we run at thoughtbot. We've been going through the book Ruby Science, and there have been some great discussions around that. Recently, we've also been doing watch parties for episodes of I know it is RubyTapas by Avdi Grimm, but I think it rebranded recently, and I forget the new name of it, Graceful...I think Graceful.Dev. STEPHANIE: Graceful Devs, I think, yeah. JOËL: So we've been watching some of these together as a team and then having a conversation afterwards, so that's also been great. STEPHANIE: That's really cool. Yeah, I think getting other people involved makes it a lot more fun. And you have an accountability buddy. And you can have those deep, thoughtful conversations about the things you've learned. MID-ROLL AD: Debugging errors can be a developer's worst nightmare...but it doesn't have to be. Airbrake is an award-winning error monitoring, performance, and deployment tracking tool created by developers for developers that can actually help cut your debugging time in half. So why do developers love Airbrake? It has all of the information that web developers need to monitor their application - including error management, performance insights, and deploy tracking! Airbrake's debugging tool catches all of your project errors, intelligently groups them, and points you to the issue in the code so you can quickly fix the bug before customers are impacted. In addition to stellar error monitoring, Airbrake's lightweight APM helps developers to track the performance and availability of their application through metrics like HTTP requests, response times, error occurrences, and user satisfaction. Finally, Airbrake Deploy Tracking helps developers track trends, fix bad deploys, and improve code quality. Since 2008, Airbrake has been a staple in the Ruby community and has grown to cover all major programming languages. Airbrake seamlessly integrates with your favorite apps to include modern features like single sign-on and SDK-based installation. From testing to production, Airbrake notifiers have your back. Your time is valuable, so why waste it combing through logs, waiting for user reports, or retrofitting other tools to monitor your application? You literally have nothing to lose. Head on over to airbrake.io/try/bikeshed to create your FREE developer account today! STEPHANIE: I'm curious, have you ever made a conscious effort to not focus on something super deeply? JOËL: I don't know that I've made a decision to be like, I will not spend time here. But I've definitely made a decision to I will invest here and maybe not care quite as much there. So I've done quite a bit of different front-end technologies, starting with jQuery and Backbone.js and moving through a lot of the frameworks. Somehow I have not yet done much React. It's sort of a big hole in that list of frameworks that I have worked with. It's just not something that I've prioritized. I've done other things. I've learned concepts that I think mirror a lot of what React does, but that's not been something that I've dug into. STEPHANIE: That's really interesting because I think a lot of people think that they need to learn React because it's the popular front-end framework of the time. And so they think that it's something that they should know, or if they do ever have to work on a project with React, that kind of contributes to that feeling. But I like what you were saying earlier about how you have experience with other front-end frameworks. And that can help inform you if you ever do have to work in it. And also, there are so many great expert React devs out there. Like, we don't have to all be that dev. JOËL: Yeah. I think there can definitely be a pressure to feel like you have to know it all. And a lot of these tech stacks are changing so quickly that it becomes overwhelming to try to just keep up with everything. STEPHANIE: For sure. I remember having to write some tests for a React app, and the things that I had learned several years ago using Enzyme or something were no longer as relevant today, and having to pick up on the new best practices for writing Jest tests and React Testing Library. It was a lot, even though I was able to identify aspects of it that lined up with what I knew. It can be overwhelming, for sure. And people spend a lot of time digging deep into this framework and like I said, becoming those experts and accepting that I probably won't be that person [laughs] was also a little bit liberating, I think. JOËL: It's also important, I think, to accept that these sorts of labels of I'm that person, or I'm not that person are not permanent. It's I'm not that person now because that's not where I want to prioritize my time. Maybe in two or three years, it will make sense for me to become that person. And I can become that person if I put in the time, but today is not the day for me to be that person. STEPHANIE: That's a really good way of putting that. I like that a lot. JOËL: One struggle that I have, and I've seen a lot of people too is that it's easy to get very scattered in your learning that you'll have a lot of different things you're trying to learn at the same time or you feel like you want to do a little bit of this and a little bit of that. And then maybe you don't go very deep in any of them and feel like you're not being very effective with your time. Do you ever feel that, and do you have any strategies you like to use to make the most out of your learning time? STEPHANIE: I really relate to that. And I think one resource that helped me reframe that conundrum if you will, was this book called Four Thousand Weeks: Time Management for Mortals by Oliver Burkeman. It was really interesting because it kind of turned productivity culture around a bit on its head because his whole thesis is that you won't achieve at all and that by trying to hack your own productivity, what you're really preventing yourself from doing is accepting the fact that time is finite. And that you have to make hard decisions about where to focus your time in a way that will enrich your life the most. And sacrifice the idea that you will get to do everything on your to-do list, that you will learn every framework that you want to learn. And it's still hard for me to totally accept that. But I think I'm inching towards the idea that if I do drop a ball on something that I have had bookmarked for at this point, you know, a year, I'm probably never going to get around to reading that. And that's okay because I'm still getting by with the things that I am learning and applying them in the aspects of my work that are relevant to me today. JOËL: That sounds like a really refreshing take on productivity culture, maybe with some hard truths in there as well. Is 4,000 weeks the human lifespan? STEPHANIE: [laughs] Yeah, it is. It's really funny because I think he even starts off in the book quizzing one of his friends, like, how many weeks do you think we have to live? And his friend very naively answered, "Oh, must be, you know, 500,000 or so," or something like that. But he used that as an illustration of how we inflate how much time we think that we might have in a day, a week, our lifespan. [laughs] JOËL: I'm a big history nerd in my personal time. You see this theme that comes up a lot in medieval European art and the 1400s after a lot of these big plagues have happened where they feature a lot of death or skeletons or those sorts of motifs that are much more prevalent than maybe an earlier art, and this idea that comes with a Latin phrase Memento Mori (remember death). And I think there's maybe an element of that that comes back into this book at least the way you were describing it, the idea that you only have 4,000 weeks, roughly, in your life, so make the best use of it. STEPHANIE: Yeah, absolutely. It's nothing new, for sure. I think it's just one of those things that we've been grappling with as a species for as long as we've existed. [laughs] So I don't know if anyone out there feels slightly relieved that it's okay for them not to get through their list of bookmarked articles about technical things. I hope that feels slightly better for you. JOËL: We give you permission for you, the audience, to go to your bookmarks and those articles that you've been meaning to read for two years and you haven't got to; it's okay to remove them. You will be okay. STEPHANIE: Agreed. So we've talked about how we spend our investment time. But I'm curious, do you have any strategies for people who do most of their learning in their everyday work? JOËL: You know, I think that applies to me as well. We've been heavily emphasizing investment time, but that's only one day a week. And four days a week, I am doing regular application development for clients. And so the majority of my hours in a week are going to be dedicated to that. I find that being very self-aware for the things that you do and trying to notice when I learn something new or when I interact with something new has really helped me get more out of my day-to-day work. And a way to level that, I think, is to be on the lookout for opportunities to share with others. And that can be as small as just put a today I learned message in a group chat, maybe in thoughtbot's Slack developer channel, and just say, "Hey, today I learned this interesting thing about a particular method." Or "Today I learned this weird thing about time zones." Or "Today I learned this interesting fact about testing." And then that might start a discussion, or it might not. But the fact that I took the time to take it out of my head and write it out, I think, makes that more concrete, and it helps me hold on to it. STEPHANIE: I've noticed you are really good about doing that, about sharing things that you encounter in your everyday work in a very low-stakes kind of way. I am not so good at doing that. I tend to be so steeped in client work, and I have to really intentionally, after a project is over, think about what I learned along the way. And oftentimes, they're not as small, incremental atomic bits of information but bigger picture things about, oh, I learned how to navigate this aspect of ambiguity. And maybe the next time, I can point to a past experience or lean on a little bit more on my gut instinct to guide me towards making the right decision. And I think that's an important aspect of learning too, even if it wasn't necessarily a technical tidbit. It is part of becoming a better developer, just as equally as gaining that more concrete technical knowledge. JOËL: Intuition, I think, is really important as developers, and honing that intuition is something that is really valuable. One way that I found helpful is dialogue, just a conversation with one other person, maybe it's asynchronous over Slack, maybe it's a call in person, and just talking through an idea that I have. A recent one and I think I mentioned this on the previous episode of The Bike Shed, was talking about RSpec matchers. And does your choice of matcher impact the sorts of design that will come out of the code that you write? Does EQ tend to push you in a direction maybe where you're less strongly encapsulating data? And so that's just a thought, and then you have a conversation about it. And then that can help sharpen your intuition so that the next time you're writing a test you're not just thoughtlessly bringing in a matcher because whatever; it's the thing to do. And initially, maybe it's not intuition; it's much more explicit. You're thinking, ooh, do I want EQ, or do I want not? But I imagine that after six months of me being hyperaware of that, I will have built up some intuitions to be like, oh, this is the place where we want a custom matcher, or here's the place where I want EQ. And my hope is that that will eventually come to the point where it's so natural. Someone would almost have to stop me and say, hey, wait, why are you choosing that? And then I have to think a little bit and be like, oh, it's because of these things. But I'll have started with a conversation, which then turned into just hyperawareness thinking about it every time I do that action which then turns into intuition. STEPHANIE: Yeah. I think you can also call that experience. I remember having a conversation with someone, and I told them that I could inject their brain with all of the knowledge and information that I had. But that isn't quite the same as having really experienced the process of gaining that knowledge through more conventional learning methods but also that day-to-day client work that you're doing. So I totally agree with you there. JOËL: You took this whole long thing I had to say and were able to condense it down to one word: experience. STEPHANIE: [laughs] JOËL: Which I think, yeah, exactly describes what I'm trying to say. And with that, shall we wrap up? STEPHANIE: Let's wrap up. JOËL: The show notes for this episode can be found at bikeshed.fm. This show is produced and edited by Mandy Moore. If you enjoyed listening, one really easy way to support the show is to leave us a quick rating or even a review in iTunes. It really helps other folks find the show. If you have any feedback, you can reach us at @_bikeshed, or reach me at @joelquen on Twitter, or at hosts@bikeshed.fm via email. Thank you so much for listening to The Bike Shed, and we'll see you next week. Byeeeeeeeee!!!!!! ANNOUNCER: This podcast was brought to you by thoughtbot. thoughtbot is your expert design and development partner. Let's make your product and team a success.

The Bike Shed
361: Working Incrementally

The Bike Shed

Play Episode Listen Later Nov 8, 2022 30:28


thoughtbotter Stephanie Minn joins The Bike Shed as co-host!

Child Care Rockstar Radio
Be the Change You Wish To See With Stephanie Parra

Child Care Rockstar Radio

Play Episode Listen Later Mar 24, 2022 49:31


Kris welcomes Stephanie Parra, Executive Director of All In Education, a non-profit advocacy group for underserved communities and families, particularly the Latino communities. Stephanie talks about All In's mission to focus on closing the performance gap of Latino students and the Latino community and how we can help parents be more confident partners in the education process alongside teachers. She and Kris talk about developing value-based leaders, why being a daring leader is important to shake up the status quo, and how early education leaders are the foundation of closing that gap for our children. Stephanie talks about some of the challenges she has overcome while building her team from scratch, and she shares some statistics about why the next generation of Latino students is so crucial to the success of Arizona and beyond.   Key Takeaways: [8:59] Education advocacy organization, All In Education, is proudly serving communities across the state of Arizona. Stephanie talks about how she got involved, and how All In was created to focus on closing the opportunity gaps that exist for Latino students in the state. [10:28] If we are going to close the opportunity gaps for students, we have to really focus on closing the representation gaps. What does that truly mean? [12:00] Stephanie talks about her background as a first-generation American, coming from a Mexican immigrant family, with her father working in farm labor. Her education is in higher education, and while studying college students, she saw herself in the research. [23:05] Stephanie talks about the Parent Educator Academy, and how this foundational leadership program builds bridges between the school and home. [24:44] How does the Academy get such high engagement and get parents to understand the education system and support their kids? [33:28] Stephanie talks about a recent article she wrote on developing values-based and daring education leaders. How can educators be better leaders? [35:42] Daring leadership matters. The more we are willing to be bold, courageous, and daring, the more we can be fully connected to our community and get better outcomes for our kids. [39:19] What can early education leaders do to help support the underserved gap? [43:59] Early education is the foundation of helping the underserved communities thrive and gain equal footing. Quotes: “We have to be the ones that create a better and more vibrant community for the generations that are coming up behind us.” — Stephanie “We can run from our challenges, or we can decide to be leaders and changemakers that our communities need.” — Stephanie “We're willing to be bold and courageous and daring, and truly stay connected to our community in a way where we can be unapologetically independent.” — Stephanie “Daring leadership matters.” — Stephanie “For me, it's about building a coalition of leaders who are willing to be bold, daring, and willing to try new things. We have both a moral and economic imperative.” — Stephanie “Be the change you want to see in the world.” — Gandhi “I know that educators probably feel this across the country, we tend to get caught up in being a political football and get tied into the push and pull of politics.” — Stephanie   Mentioned in This Episode: Kris Murray The Child Care Success Company The Child Care Success Academy The Child Care Success Summit All In Education  Developing Values-Based Daring Education Leaders  Teach for America  The New Teacher Project  

That's Total Mom Sense
AT HOME WITH HOMER: Back to School, Creating a Path to Confidence — with Stephanie Dua

That's Total Mom Sense

Play Episode Listen Later Jul 10, 2021 7:21


Kanika: It's been a hard year; families have been through a lot of twists and turns. Through it all, our kids have shown us just how resilient they are. As we prepare for kids to go back to school this Fall, what should parents be thinking about? How can best prepare their kids? Stephanie: For me personally and the way we think about it at HOMER is, it's most important to spend time this summer building confidence and connection. As you mentioned, kids have shown just how resilient they are but we as parents must continue building their confidence by giving them tools to continue learning, solving problems, overcoming obstacles, and taking on challenges with a growth mindset. Stephanie Tips: Building Social Emotional Confidence To thrive academically, kids need a deep sense of security and safe spaces to process their pandemic experience. Create open dialogue about the pandemic What I loved the most about last year, what I liked the least? What I am most excited about next year, what I am most nervous about? Write a story Celebrate “I Did it Moments” Celebrate the small victories along the way, Learning is a journey When kids are learning something new, praise can really help them through those early frustrating moments and help them push on Embracing a Growth Mindset Develop a daily affirmation Practice tools and strategies to change and grow and with a healthy mindset Calming strategies to help deal with stress Prepare for the academic year What supplemental resources might you want to incorporate this year, that might not have in the past? There are a number of digital resources including HOMER, codeSpark Academy, etc that can help academically all while playing and having fun! Be informed -- Speak to the school about: Their focus on SEL How they might deal with the varying learning levels after 2020

That's Total Mom Sense
AT HOME WITH HOMER: Screen Time as Purposeful Time — with Stephanie Dua

That's Total Mom Sense

Play Episode Listen Later May 22, 2021 4:53


Kanika: The last year has given us a new perspective on screen time. While it allowed for remote learning during a pandemic, we also have screen time fatigue -- and new blue light lenses : ) -- from too much of it. What are some tips, resources, and guardrails you can share regarding screen time for young learners. Stephanie: As you mentioned, technology has saved us in so many ways this past year. We’ve been able to stay connected to the outside world -- teachers, family, friends -- because of our screens. Furthermore, The pandemic has accelerated the spread of laptops and learning apps in schools, they say, normalizing digital education tools for millions of teachers, students and their families.” -NYT While those are 2 examples of beneficial screen time, we are fatigued by it and for early learnings especially, not all screen time is created equal Kanika: So how do we as parents and caregivers determine what is good screen time? Stephanie: For starters, recommend embracing Mindful Media. Rather than using the amount of time our kids are spending on screen as the only consideration, we came up with the P-L-A-Y Framework: a quick and easy guide to help you make smart media decisions for your children. P - Purpose There are so many reasons to hand your child a screen -- It could be to keep them entertained, to give them an opportunity to connect with family and friends, to assist in their schoolwork, to help them wind down at night, or to keep them safely occupied while you cook dinner. Whatever the purpose might be, think about whether the type of media you are putting on that device matches up with the intended purpose. For example, in the evening if you’re winding your kids down, you want to make sure the content is calming. Additionally, experts estimate that 65% of kids will have jobs that don’t currently exist. So even if the purpose of giving your child a screen doesn’t have direct learning value, you can feel good that your child is learning 21st-century skills that will set them up for 21st-century jobs. L - Learning Value Understand the learning value: There are so many rich, entertaining apps and digital experiences that you can find for your children Common Sense Media is a great resource that has done a lot of the legwork for parents—I personally found them to be a lifesaver with my kids. A - Appropriateness Deciding whether an app or digital experience is appropriate for your child can seem daunting, but it doesn’t need to be difficult. Here are a couple of things to think about: Is it appropriate for their age? Will they engage with it? For example, will it make them giggle? Get up and dance? Try out a new word? Is it personalized to them? Does it appeal to their individual interests and learning needs, or encourage them to look at the world in a new way? Is it going to be a positive experience? Keep in mind what makes them feel confident, and what might make them feel scared or upset. Y - YES! Yes, you can use screens - Parents should feel empowered to use screens in a way that is mindful for themselves and for their family. They aren’t designed to ruin your child’s future, but rather when used appropriately, will give children the skills to thrive in the 21st century. Episode Links: WEBSITE: LearnWithHomer.com INSTAGRAM: @learnwithhomer FACEBOOK: /learnwithhomer

Up Next In Commerce
Bringing B2B Into The eComm World and Other Industry Trends

Up Next In Commerce

Play Episode Listen Later Apr 13, 2021 52:11


Ecommerce has come a long way from its early days as a separate part of the company that you set up and just hope to see returns on. Now, ecommerce is pivotal for just about every organization — but there is one faction of businesses that still lags behind. There are $17 trillion dollars worth of B2B payments made every year. Yes, trillion with a T. And half of those payments are still being made manually. Clearly, there is a massive shift that still needs to happen in the B2B space, and Deloitte Digital is helping make those digital transformations a reality.Paul do Forno is the Managing Director at Deloitte Digital, and on this episode of Up Next in Commerce, he helped us understand the struggles B2B brands are facing and how moving them into the digital space could spell a massive change in the ecommerce industry. Paul also dives into some of the major trends he’s keeping an eye on in the ecommerce world, including how ecommerce continues to scale around the globe, most notably in Latin America. Plus, he shares some tips for businesses who are overwhelmed by the amount of channels and platforms they suddenly have to play in. Spoiler: he says do less. Tune in to hear more!Main Takeaways:Massive Call And Response: Bigger brands are struggling to stay connected to their consumers in a way that scales. Today, customers are looking to have a more authentic relationship and connection with the brands they engage with and support. For enterprises, connecting one-to-one is nearly impossible, so they are investing in tools like A.I. and conversational platforms to keep up with this newer generation of customers who crave connection.Dinosaurs Still Exist: So much B2B activity is still done manually, which means that there are trillions of dollars of transactions that could be moving online if/when B2B companies finally shift their activities to the digital space. The problem is that many B2B companies are miles behind their B2C peers in terms of optimizing the digital space for their many personas. It will take a lot of tools and transformation to bring those traditional B2B companies into 2021, but it will be necessary because the next generation is not interested in manually doing business and would much rather work with companies that have effective digital tools.Do Less: Brands can get caught up in the hype and the attempts to keep up with the Joneses. Instead, they should focus on being great at one platform or marketing activity. Plus, it’s critical to never forget the basics — like making sure your email list is generating the leads and engagement it should be to power your business.For an in-depth look at this episode, check out the full transcript below. Quotes have been edited for clarity and length.---Up Next in Commerce is brought to you by Salesforce Commerce Cloud. Respond quickly to changing customer needs with flexible Ecommerce connected to marketing, sales, and service. Deliver intelligent commerce experiences your customers can trust, across every channel. Together, we’re ready for what’s next in commerce. Learn more at salesforce.com/commerce---Transcript:Stephanie:Hey everyone and welcome back to Up Next in Commerce. I'm your host, Stephanie Postles, CEO at Mission.org. Today on the show we have Paul de Forno, the managing direction at Deloitte Digital. Paul, welcome.Paul:Thanks. Excited to be here.Stephanie:I'm excited to have you. I was looking through your background and I saw you were on a list of the hundred most influential people in ecommerce and I was like, we need him. We need Paul. Why do you think you got on that list?Paul:I think first of all, in some ways I'm the old guy who's been around carrying the ecommerce flag for a long time, so I've been doing ecommerce for 20 years. When you've been around that long, 20 years ago it was, trust me, ecommerce is going to be big, honest. Most of the big companies just looked at me and said, "Yeah, it's just a tiny percentage. We don't have the time to focus on it." I've gone through the whole lifecycle from, "Yeah, I don't think ecommerce is going to be big," to, "Oh my god. What are we going to do? Everything is ecommerce."Stephanie:Yep, what did your journey look like? What have you worked on over the years, and then what does your role at Deloitte Digital look like now?Paul:Yeah, I've had some pretty interesting projects all along. We help customers at Deloitte, we're one of the largest implementers and SIs all the way from strategy, studio design, implementation, and run ecommerce and digital platforms. Kind of soup to nuts, end to end for some of the largest Internet retailers both B2C and B2B. My background, I've worked with some of the largest retailers and brands in the world, getting them online, selling, and also supply chain and connecting up all of those things.Paul:I've had the great experience of 20 years ago working with some of the earliest big retail brands of them ... It's kind of funny, when they first started, they treated ecommerce like a store because at the size that they were, on some of them, they were like ... And literally, they would call it store number 1099 and that's the way they treated it almost like a completely separate channel over the to the side. Yeah, let's put some money over there and grow and then see what happens. That from over time, then it became more of a challenge of omnichannel.Paul:How do we make sure that the channels aren't fighting against each other because we dealt with some retailers that literally would ... They wouldn't want returns to come in to the store because those sales and we're not getting them credit, right? That came back and if they exchanged for something else, and so they would be internal fighting because the bonuses of the executives weren't aligned. We've gone kind of like it's off to the side, it's big enough to challenge, to now it's almost the reverse. Retail wants to get more love from the ecommerce side.Stephanie:Yeah, it's a funny and an interesting flip that we see. We've had some guests on the show who said the same thing, like when I started out in ecommerce, they had us in a different building, like on the campus that they were at, they're like, that's the ecommerce team, they're doing their own thing. We've had a couple people say how siloed they were and now, like you said, interesting how retail is like, come on, come give us a little love now.Paul:Yeah, exactly.Stephanie:When you're looking through all these trends that are happening right now, I know that back in the day you were going to a lot of conferences, you were flying all over the world probably, and now I see and follow you on Clubhouse. Tell me a bit about how you're staying on top of the trends and what kind of things are you discussing now on Clubhouse or wherever else you're doing these virtual events?Paul:Yeah, I'll maybe separate ... Definitely right now as we're speaking it's almost a year to the day that I haven't been on a plane. In the last 20 years, over a 100,000 to 150,000 miles a year that I've been flying around.Stephanie:Oh my gosh.Paul:One, my wife has gotten to know me.Stephanie:Hi, Paul, nice to meet you.Paul:But, it's given me a lot of opportunity to connect digitally and do more research and some of the new tools, like you talked about, Clubhouse, and I'll come back to that. I think what this has just done is accelerated ecommerce and how important that is and commerce everywhere and brought it forward, and there's a lot of interesting trends that have popped out. Some of the things that may not be as evident, so in the past year, one of the biggest growth areas just for convenience has been around the growth of commerce around groceries, because we had to, right? You got a lot of the biggest stores growing and anywhere from 70% to over a 100%, and so a lot of the innovation has happened in groceries because it needed to, right? The companies that invested more have done well.Paul:For example, if you look at how Target has done, right? They were able to stay open because they had groceries and so they actually grew and were more profitable and a lot of that why they grew was their investments in shipped, a number of different way they pick from their stores, and so it's amazing that not only did they grow that much but their profitability on the ecommerce channel went up which is almost unheard of in a time like this. They executed unbelievably well.Paul:Then on the other side, another interesting related to the grocery which kind of because it forced people to try something new, the largest growing segment on online grocery was actually baby boomers, and it's because they never were forced to do it. They were always used to going to the store, and so we really see that as a watershed moment of hey, to get over the hump, hey, this isn't as bad. Then as soon as you try something and you do it a couple times, it's going to change how people behave.Paul:we expect the adoption rate going forward for boomers, for example, and older will continue. It won't necessarily be at the same rate, but is an important threshold that they'll continue to embrace it.Stephanie:Yeah, I agree. All right, so when thinking about these new consumers who are online who weren't thinking this way before, how are you advising brands to communicate and talk and do things differently? Because it is such a different generation coming online. We've had quite a few people mention you have to think very differently when it comes to customer service or even the whole unboxing experience. People want different things. What are you seeing among your biggest brands right now around what's working to connect with this brand new group of users who are not online before?Paul:Yeah, there's a whole bunch of battling trends that are in here. In fact, on Clubhouse we had a discussion around the eco considerations of delivery, and that got into we brought in a packaging expert and one of the interesting thing that we talked about is that, hey, everybody has all these cardboard boxes, right? People would love to find out opportunities to minimize what kind of packaging and we all probably had the experience of getting a huge package and having one little item in it. I think the whole consideration around eco and environmental is something that I just saw some research, that's at the top of the list of considerations.Paul:Things such as that and packaging and reducing it is a factor of when you're designing for stuff. Looking for opportunities that you can batch up or minimizing the packaging or making it recyclable and also balancing having a great opening unboxing experience, and so you have to balance those things, right? The environmental side and also the brand side, which is hey, the expectations of brands such as Apple put on, on this hey, you want this great experience in opening. There's a lot of non ... Things that you didn't have to worry about even 10 years ago because if you look at some of the studies of what gen Z and beyond are looking for, those considerations are much higher up than they were for other generations.Stephanie:It definitely seems like it can set up some of the newer based for failure though because it seems like you always have to stay ahead and be trying something new where it could kind of take you off your path of building a great product and a great company when you get too focused on some of that stuff. How do you think about the trade-off to stay focused but then also stay on top of consumer expectations that seem to have very rapidly changed in the last year where I wasn't really hearing a lot of consumers talking about eco-friendly packaging and really caring about that, and now it seems like that's a huge thing that we're hearing time and time again about this is a new expectation that you have to keep up with now.Paul:I think a little bit about it is around just the how do you be authentic brand? In many ways, some of the trends that we've been seeing is around less production, right? Some of the advertisement or even things that are helping to actually convert much higher are actually user-generated content that people in authentic ... You want to see how real people act, real people and real products, as opposed to a runway model or a runway person showing off this great ... Because of that, first thing we would say is try and be authentic to your brand and especially right now the over-production is actually a hindrance on many brands.Stephanie:For some of the larger brands you work with, I mean, I could see that being hard for them to want to keep up with the times but then also staying authentic to your brand. Like you said, I know it has gotten some companies in trouble for trying to do the cool thing, keep up with whatever that trend is, try and jump on something. When these big brands are coming to you, what are they struggling with right now and how are you working with them around this new UGC kind of content that a lot of these smaller D2C companies are like, yeah, of course, that's what we're going to do, but when it's a large company, they're like, I don't even know how to do that and how do you flag it and how do you think about the content coming in. Can I even trust it? How are you guys guiding them down that path?Paul:I think that for many larger companies in many ways it's kind of a how do you manage dealing with this on scale? Because in some of the smaller brands, dealing with a few interactions, it's somewhat easier, but when you have thousands and thousands of followers, how do you manage that on scale? What they mostly get concerned of, they want to be closer to the consumer and listen to them and interact, but being able to scale that in both a combination of AI related tools and responses, but also people responses that can do it in scale that are tailored to the brand voice, that's the challenge. We kind of work through different strategies to help them get through that.Stephanie:What are some other things that these brands are struggling with? What are you hearing right now that they're trying to work with you on?Paul:Yeah, and we work with brands both from B2C to B2B, and so I'll actually give two examples just to get a broad spectrum. On the B2C side, I think the ... And depending on the different segment. The B2C side on CPG we're seeing massive spikes because of all the purchases that we've seen especially going through stores, and that's a lot of the food, CPGs are just spiking. They're trying to figure out, okay, great. This is a great opportunity to scale. How do we now embrace and engage and maybe put out some direct to consumer feelers to learn?Paul:In many ways, a lot of the CPGs are going way more direct. Some of the largest scale CPG companies are doing record numbers of doing ecommerce, but they also partner with massive retail chains. They're trying to balance of not stepping on their channel conflicts, and so many are using ecommerce as a mechanism to explore, do special arrangements, special formulations, and learn and get data. As we see, for example, in that area is just there's been so much innovation going on, they're trying to keep up to the pace. They struggle with, well, what do I do first? How do I prioritize on some of these? Most of it is around helping to prioritize and segment some of the ideas to get them into marketplace faster.Stephanie:Trying to keep up with what's happening really quickly, I've seen a lot of them acquiring these smaller D2C companies and kind of putting them in a mini innovation hub where it's like we don't want to disrupt your process but we want to learn from you. Do you see that as a successful strategy for some of these more legacy brands to be able to learn while also keeping their brand identity or is that not really working?Paul:Yeah, I've seen some awesome acquisitions and unbelievable great talent that some of the large ... Just to stick to the CPG space, that's been probably the most aggressive of picking up new brands and learning, right? I think it's actually a brilliant ... That's why some of the premiums are getting paid. It's not just necessarily for the product and what margins, it's also from the know-how, because what ends up happening if you look, and this is something that that's probably the area that Club CPG on Clubhouse is probably one of the largest clubs and they have an amazing talent there, and there's been a number of acquisitions and they're on there talking about their story.Paul:What's really good about doing some of those acquisitions is these people have been very close to the customer, right? They've really interacted, as opposed to you're getting perhaps a new executive who's rotated around, right? These people understand the customer and had that relationship, had to build up the D2C. They really know all the different channels. They're able to provide that voice to the customer and how to go direct so much more. I've seen it be really successful and understand especially some of the early purchases that they've made. It's actually worked out really well, more from the people experience than even the product.Stephanie:It does seem like you can lose sight of that the larger you get, especially the more data you're getting. It's hard to get as informed and be able to actually find trends or themes. When you're working with a lot of these companies, what is your measurement of success when you're like, okay, we are going to transform this company. We're going to bring you guys to 2021 and what's relevant now. How do you look back and see if a digital transformation was successful?Paul:First of all, it's important that we judge success by the way companies measure their success. When we work with different companies, we try and understand what are their outcomes of success and their success can be ... The first thing you think, how much revenue did you grow? But some might not be. If it's a new brand and they want to get out there and they're trying to change their positioning, their goal might be a number of stories that got out, building brand awareness, changing the perspective, and so we always start with making sure that we understand what are their key outcomes and then provide some guidance on how do you get to those key goals.Paul:Looking at from a digital perspective, kind of like as I was saying before, it's also important to have an understanding of the voice of the customer and the sentiment. It's one thing to say what people might ... When you interview them. It's almost more important to see what they actually do, right? And using different tracking NPS scores, using different ... Looking at the data of actual purchase stories and mapping it onto example profiles. That then provides much more of a richer ... Even from compared to people say what they do is different than what they actually do and looking for actual intent in what they've done, and so making sure we're getting the right data is really important as well.Stephanie:Even if they have a lot of different outcomes, it seems like the solutions that you could bring to them could be kind of similar though. From what I've heard, there's a lot of decentralized processes going on, so you need to figure out a way to pull them all in and reduce your crazy marketing tech stack. Have you seen that on your side too that people might have very different outcomes but right now a lot of people have similar solutions or the solutions that you're presenting to them are kind of the same things?Paul:Yeah, in many ways some of our ... What we do to help customers in some ways is to help ... There's probably so many voices in the room and so many stakeholders is how do we help them bring them together and help to prioritize and to facilitate that conversation? Because that's the real hard part when you're dealing ... If you just have your own one product and your own single [sheet] you can make a decision and go.Paul:When you have hundreds of product lines and executives around the world and how do you facilitate the discussion, that's really what we help to do. Be it similar strategy to other companies or not, you need to help bring the internal alignment, and that's sometimes the hardest part because once you get to execute, many companies can do that. The harder part is how do you get agreement and prioritization with the different stakeholders.Stephanie:What kind of advice do you give for anyone who's struggling with that right now? What do you guys do to gain that alignment and have a go forward plan?Paul:Number one thing is start small and try something. You could spend forever talking about it and don't be afraid to fail. Get something in the market. We try and do agile sprints, and so from a development perspective we've been doing agile for a long time but we're also pushing into doing agile marketing so that we get into the same kind of feeding into that, so that okay, let's get something out there, let's try it, learn, and then from there go through the experiment, prove it, or make the changes and then scale, and keep that on an ongoing basis and trying to institutionalize that that it's an ongoing, you need to keep ...Paul:That's the business and how do you keep rolling that, because before when ecommerce was quote unquote more of a side business, it was more of a set it and forget it. Well, let's set it up. We'll set up the implementation, then we'll look at it, we'll make some changes every once in a while where now your core commerce business is your lifeline and some businesses it's over getting to 50, 60% of your overall business. You need to continue to change the priorities and especially as all of the changes that have come down the line from Facebook, from Google, is changing your whole marketing strategies.Stephanie:What about from a B2B perspective? I know earlier you said, okay, we got these two different viewpoints. What do you see in the B2B world? Which sometimes gets forgotten. We don't have many B2B people on the podcast very often and it'd be interesting to hear what does that side of the world look like.Paul:I've been focused more on that in the last year or two because it's such a big growing area. Just to lay the land, to understand how big B2B is, from a B2B perspective, just in the U.S. there's $17 trillion dollars of B2B payments done.Stephanie:Wow.Paul:That's just in the U.S. Right now-Stephanie:That's massive.Paul:It's completely massive and half of that is done manually. Meaning, if somebody writes a check, they send the check off, it's wired. It's not done digitally, and so when we talk about B2B commerce, again, people right away think B2C, it's just about the order, but actually when we talk about ... Or, the other myth or misconception that frustrates B2B people is, well, if just make it a cooler screen and easier to use on the web, then you'll be better, right? Then those are the myths and putting lipstick on problems.Paul:if you actually look into what the B2B challenges are, number one, many B2B purchases are very complex and there's many personas. It's not like, hey, I like this shirt, got it, they converted well, I've optimized, I buy it. Some of these deals are million dollars, half a million, and you need to go to procurement, you've got the business, you've got the people using it. It has to go through an RFP process, you have to buy versus ... Right? It's so much more complex on the number of personas, that's an important thing. There's no quick, easy, CX solution. Not to say that CX isn't important, but it's not like B2B. The first thing, if you start from that premise, that helps.Paul:Then the bigger pieces is traditionally how B2B sold was handshake over lunch, right? Traditionally, middle age guys shaking hands and "Hey, let's do this deal. There we go," and the last thing I want to do is look at the damn website, right? Well, obviously we know that's all changing and last year was the big thing in the workforce, millennials are now the largest part of the workforce. Guess what? Many of those, it's not all men. They're retiring at a very fast rate. Your expectation of your sales people are hey, where are my digital tools? When you talk about B2B commerce, it's about what are all the digital ways to interact, to be easier to do business with as you sell?Paul:In fact, what ends up happening is the top three things that people like for B2B commerce is order status, product information, and just doing a quick re-order. When you look at that, it's more about, hey, how do I make my life easier interacting with my customers? That's just important to understand the difference between B2C and traditionally on B2B side.Stephanie:What kind of opportunities do you see in the B2B world then? Do you see any new innovations coming about? Obviously having a platform that can meet the needs of the customers and to me it seems like it has to be personalized depending on what the business is and how your customers order, but what do you see right now that could be coming in the next couple years to help B2B?Paul:Well, kind of seeing where B2B is in their lifecycle, and so in many retailers, they're now onto their third iteration of a platform from B2C, and for most B2B, they're on maybe their first or they haven't really, right? Many of the B2B clients we're dealing with, oh, we put something up in 2004 and we've just been living with it and we still have to use IE to access it, and so we're dealing with web 1.0. They can't get it on their phone, and so a lot of it is just we need to make it easier for them and looking for ways to make the sales person's life easier.Paul:In the analogy of how B2C commerce is trying to be omnichannel, on the B2B side, it's helping your sales person and CRM. The lines between CRM and B2B commerce have blended together and it's really a tool to help the next generation business person to, hey, all my follow-ups, my data, you might get leads. Did you know your customers are looking at your products? You'll get that lead information, and so that you can follow-up with them or hey, have you deferred ... How many times has the business guy gotten a call? Hey, where's my order? I haven't got it.Paul:They end up spending half their time, and so the other big learning that we've got because it involves sales people so much is that you have to include them early and often during the process. For example, we had this happen one time. We had a customer come to us and say, "Man, we just spent all this money on this great new ecommerce platform for B2B, and we're just not getting the adoption." A couple lessons learned and they asked us to come in and do an assessment. We went in, we started talking to the customers and the customer said ... We ended up hearing this three different ways.Paul:The customer is like, "Oh, man. I love Joe. He's my best salesman, but he told me that if I put my sale through the B2B commerce, he's not going to get a bonus so I just called him to make sure he got his bonus." It's like, oh my god, of course you need to get the sales persons incentives align such that they don't get penalized for using the website, and that was like, oh yeah, that makes sense.Paul:Also, you want the sales people to be ... You want them to evangelize and get them to embrace leveraging it. That's such a key ... That change management in B2B and getting your sales people involved is super key for success.Stephanie:Yeah, which seems like it's a big training aspect to it too, make sure that they fully understand it to where then they can essentially sell the customers on using it and can act as customer service as well, because I'm sure their customers can be like, "I don't know how to order it on here," and if the sales person is like, "I don't know either," that's a big red flag. Are there any other hiccups like that that you've seen either in B2B or B2C where companies are like, oh, this isn't working. This new platform that we're using isn't working and you're like, well, let's talk a little bit about how you guys even thought about implementing it and you left out a big piece like this. Any other stories around that?Paul:Yeah, and number one it's always about ... It's so important getting the voice of the customer and getting representative people early on to provide input and feedback, because what ends up happening is if you don't listen to ... And we've had examples of rolling out systems trying to solve for what we thought was the problem but it wasn't really the problem. The way you bundled orders or the way products were bundled and you prioritized that and you didn't get the adoption, when actually they're focused on another set of problems or departments. That whole piece about getting user input early and often is so critical. The number one thing as you roll that out, you need the voice of the customer.Stephanie:In times like this that are changing so quickly, how do you think about separating the signal from the noise? I can see just so many companies try to keep up with other smaller brands and there's so many new things to try right now. It seems like it's hard to know what's actually going to be a lasting trend where you actually should put that as part of your processes or your platform. There's just so many tools and plugins and things. How do you all think about separating the two and being like, this one's a longer term trend and this is just something short that we see dying off in a year or two?Paul:Yeah, a couple of things that we do and obviously there's things that you want to lay out and over long-term and shorter term, but number one, look for ways ... First of all, understand what your brand promise is. Depending on your brand promise, you might prioritize things different, right? If you're a luxury item versus if you're an item at the dollar store. You have different brand promises and you want to be consistent to your brand promise, and so that's the first thing.Paul:The second thing as far as in general on commerce is continuously look for friction points. Do your tests with your customers and see what are things that are causing them to stop. As you go through all the different steps of the purchasing journey, if you're seeing friction points, how can you reduce that friction? Meaning, hey, this page seems really slow. I don't know why. Let's reduce that. Hey, this content is not connecting well. How can we use other ... For example, and I mentioned it before, hey, getting authentic content of the real users' pictures. That will help people convert higher.Paul:It's an ongoing iterative, so I think what you have is this ... And you're always plotting this, like how can you reduce friction and bang for the buck in a short-term that you can do versus a longer term investment that might then pay back, because it's easy to be like, okay great, we need a 3D VR AR strategy. We're like, well, how is that going to help your $10 item? Obviously that's an extreme example, but if you have a brand promise and you look for ways to reduce the friction to make your life easier, and similarly on the B2B side, that's why I always stress when I define B2B commerce, I like to say it's not about the purchase. It's about making your business easier to do business with, reduce the friction.Stephanie:I love that. What kind of longer term investments are you seeing being made right now that they might not see a payoff for a couple years? Because I know that Deloitte and I think Salesforce partnered on coming up with scenarios for the next three to five years, and so it'd be interesting to hear what you're seeing being implemented based on maybe the scenarios that these companies so all you get is put out there, which ranged to me from happy to very sad scenarios. I'm like, I guess it just depends how you're feeling that day which one you go with. I went with the happy ones.Paul:Especially for companies such as CPG that aren't used to having direct relationship with their customer, for example, big investments that take a while to really understand is the data, right? Getting real data direct from your customers that you then can build on. Those are things that it's not like, okay, a couple weeks, a couple months and you got it. It's something that over time you build up and you start to learn from, and so that's probably one of the biggest areas of especially getting your first party data, and especially since as you might have heard here recently, Facebook is reducing some of the data that they're sharing and how you're able to market and so is Google. Building up your first party data as a brand or building up your email list is so critical, and the benefits that you'll build definitely increase over time.Stephanie:It seems like it's an easy thing to say, yeah, obviously build up on that one-on-one connection with your customers, build up your email list, but it also seems like it's going to be very competitive because every brand is trying to do that now. It seems like every commerce company is turning to a media company that are all trying to have their blogs and newsletters and be on Tik Tok and Clubhouse and everywhere. How do you think brands can compete and build up content that actually pulls people into their community so they can have access to that first party data?Paul:Yeah, so I think the tactics on some of those platforms on core data and getting some of that primary, that's onto ... I think once you get into content and being outward brand, outward bound, I think the focus is and kind of the things that we've talked to our clients about is try and be good on one platform first. It's easy to be like, oh my god, we're so behind. We got to have a Tik Tok. We got to have Facebook, we have to have all the platforms all at once. We kind of guide them on, okay, start with one that's as close to your authentic brand as you can find, and then try and build it and iterate on it and master one before you really try and go after another because, again, there's limited resources and limited people. Trying to spread across all is a lot worse than trying to be good at least on one.Stephanie:Where do you normally find yourself suggesting brands start out at? It seems like Instagram is always a good bet for any company that has product pictures and things like that, but is that usually where you send them to or is it always very varied?Paul:Yeah, it just depends on where they're at. Some brands have ... Again, some of this stuff isn't cool, but SEO and email marketing have some of the best returns and they're super still unbelievably effective. Focusing on those and making sure those are solid, you get some of the best brand for the buck ... You get your bang for the buck. Sorry. Because it's easy to go the shiny happy route, but the core of understanding kind of the SEO and how it's connecting on all your different content and how you're coming up in search results all across and mobile related, that's still ... And again, email marketing on ecommerce, we did a study here recently and saw that some of the most successful brands are their leads are coming from up to 40 to 50% of their net new sales are coming from email related.Paul:We make sure that you have your core fundamentals ready before ... And you might do this like a portfolio, right? Like hey, maybe you're dipping your toe into ... Get a few Tik Tok videos out there and explore with a couple people, and know that you're not going hard on that but making sure that you get your fundamentals down first.Stephanie:Yeah, that's such a good reminder I think just for business in general but to stay focused and make sure that you're not getting caught up in the craziness and everything new. Make sure you have your email list good and that you actually own that and you're sending out good stuff. I don't know if this question could get you in trouble, but I'm going to ask it anyways. What is something you believe around ecommerce that many don't agree with you on?Paul:Huh. I'll have to think about that one. It's kind of funny in some ways because I've come through the whole ... I'm the old guy in ecommerce, and so I've been the one being like, ecommerce is going to be bigger than it is. I feel like in the last six months that now I'm the hey guys, retail is not going away. Retail has been here for hundreds of thousands of years. It's not going away. There's a lot of proponents out there, I won't name any names, but ecommerce is everything, and I'm the ecommerce guy and I'm like, no it's not. Understand it's too easy to say things are black or white for clicks, as opposed to understanding the nuance.Paul:If you look at in China, they just met a massive milestone. They're now over 50% of retail is via ecommerce. If you look at the states, relatively speaking, depending on which calculation you're looking at is anywhere from 17% or 22%, let's say it's somewhere in between that. Less than half of the penetration in China, and so I don't think over the long-term retail won't be 100% ecommerce, right?Paul:Over time, it might get in the U.S., because of the way we're distributed and the ease of buying at retail, you might get up to 50, 60% in the next 10 years but you're never going to get to a hundred and ecommerce is not everything and more the conversation should be retail has just many forms. I'm now pivoted to make sure that we don't forget the importance of these great real life experiences and then how you can balance and leverage commerce online.Stephanie:That's great that you've had to flip now to defend the other side. I'm assuming you think that retail is going to be changing though in some way or shape or form.Paul:Of course.Stephanie:How do you see that playing out?Paul:I talked about the grocery and that's a great example. They are now changing the way they see their line ... Because one of the biggest growth areas in this past year has been about BOPIS, buy online, pick-up in store. You probably saw, like you might have gone to a store and there's all these pickers. If you go, like half of the people in the store were employees picking for pick-ups. Just recently Walmart announced how they're going to re-jigger and automate so that parts of their stores are add-ons will be automated specifically targeted towards BOPIS.Stephanie:Wow, interesting.Paul:They're looking at maybe rolling that out over the next year or two over 200 stores. It's pretty significant. Then if you look at Kroger, they bought Ocado which is one of the largest robot ... Being able to bring together delivery in stage and they're looking for closer to the store to provide support for BOPIS as well. What you're going to see is this the way real estate is leveraged very differently than the big huge aisles with the big cart. It may be optimized slightly differently.Stephanie:Yeah, that's something I've been thinking about optimizing retail locations, and when I think about having someone go and buy my groceries, all the dry goods just get what I need, but when it comes to my fruits and veggies and things like that, I still think people sometimes they have a certain kind of avocado they want, they have a certain color banana they want. It seems like there's a way to segment the store and the stuff can just be picked out for you because you know what you want, and then there's another part of the store that you can still go in and interact with and grab the things that you want because there's actually preferences around them. I don't know what that looks like but it seems like an interesting thing to think about.Paul:Exactly. It's just going to change.Stephanie:Yep. Just a minute before we hop into the lightening round, I did have a question around Internet or ecommerce penetration. You were mentioning that and it does seem like there's a lot of opportunities all around the globe because certain areas have very lower ecommerce penetration because of a lot of reasons. Are there any regions that you're betting on right now or that Deloitte's looking into of there's some opportunities coming up here once X, Y, and Z is solved?Paul:Yeah, the area that has the biggest potential for growth right now that is behind ... If you look at just relatively speaking, to give everybody a perspective, from an ecommerce adoption, China is number one, Europe and the UK are generally a little bit ahead, and a lot of that has to do with they're smaller and it's easier from some of the delivery. The biggest growth area that we see right now in the next short-term is around Latin America.Stephanie:I was just going to say Latin America. I've heard a lot of VCs that you probably follow mentioned how they're going to be up and coming with them.Paul:Mercado Libre based out of Brazil is one of the fastest growing and there's also another shop app that's just skyrocketed out of Brazil, and so they see Latin America, because again they've been behind on the retail penetration and they've been behind, but this whole COVID just pushed that all along. I think that's the next big massive growth compared to everywhere else.Stephanie:I was just looking at them yesterday so it's funny you mentioned that. All right, well let's move over to the lightening round. The lightening round is brought you by our friends at Salesforce Commerce Cloud is our awesome sponsor. This is where I ask a question and you have a minute or less to answer. Are you ready, Paul? All right. First one. What one thing will have the biggest impact on ecommerce in the next year?Paul:It might actually be how this shipper container problem right now, all the ports are behind and not clear when some of the massive packaging and shipping issues around the world get sorted out. That might be the determinant, because if you can't get the products around the world, you might not be able to deliver what you want.Stephanie:That's a good one. Do you see any resolution with that? I don't understand what the problems are there. I've not looked into the shipping container world, so what's happening there and what could solve that?Paul:It's kind of a combo of stuff, and this has happened in a number of industries. It's kind of fascinating because it also kind of effected the way we planned. When you went back to a year ago into the spring and when you went back to all the historical of what happened when you had a large change and potential recession and what the impact was, you went back to, well, the shipping container industry went back and said, well, all our historical ... We got to pull back. They pulled back. What ends up happening, because of the ecommerce shift and spike, their demand very quickly ... They pulled back and it's hard to then build it back up when you're dealing with massive ships and containers around the world.Paul:By late summer, they realized oh crap, we're way behind and we need to catch up. That was part of it. Then you have a bunch of issues of hey, people on the essential front lines are just getting COVID and they can't deliver it, right? You have a combination of conservative planning, COVID actually effecting people, to geopolitical problems of hey, we don't want to receive packages and you're looking at different areas in the world that actually impact that. That's just another part of it that contributed to it. There was an article in Detail just this past weekend in New York Times that went into a little bit more detail.Stephanie:That's an interesting one and that's a lot at play. That'd be a good field or area to watch. Next question. If you had a podcast, what would it be about and who would your first guest be?Paul:Oh, man. I've actually been kicking around potentially doing ... This might be a little bit of what are the slow ways to be successful at ecommerce, right? Because it's funny because I've been on Clubhouse now for six months and you've got all of these entrepeneurs that hey, make seven figures, eight figures in a month or two, but the thing ... ecommerce seems overly easy to get into, but to scale and be successful is very hard because there's so many factors that play a part of it that you don't have full control of it. If I had a podcast that I would do, I would say the slow way to success to ecommerce.Stephanie:I like that. I've seen a lot of those people on Clubhouse, their bios of I'll scale you to a million. I'm like, nah.Paul:Yeah, right away it's like, next.Stephanie:Yeah, I just don't trust it, not for a second. What's up next on your reading list specifically around ecommerce trends? What are you reading every day to stay on top of the latest?Paul:It's something that I probably spend a couple hours a day reading lots of stuff. I actually use Feedly, I have all these keywords that kind of feed in, and I follow a lot of ... There's a lot of great podcasts out here. Of course, I got to plug my friend, even though he works at a competing company, he used to work for me, Jason Goldberg. The Jason and Scott Show is probably the best ecommerce podcast out there.Stephanie:Yep, I like theirs too.Paul:He's also a personal friend. I've known him for a long time. There's a whole crew of people out there that are passionate about it, and so I'm kind of geeky about it. It's funny, Jason as the retail geek but in some ways I'm more the ecommerce geek.Stephanie:Yep, I like it. That is a good one to stay on top of. I like that. Then the last one, what one thing do you not understand that you wish you did?Paul:Oh, man. I've come more from ... I'm more on the strategy and the technical side and the implementation. While I understand the marketing side okay, I really don't have the in-depth digital marketing side of it and I'd love to be able to spend more time and really focus around that area of how to really effectively connect. That's almost like another side of the brain that I have not spent the time on there.Stephanie:Yep. That's a good one. All right. Well, Paul, thanks so much for coming on the show and giving us a glimpse into what you're working on at Deloitte Digital. Where can people find out more about you or where can they follow you at?Paul:The easiest ... I'm quite active on Twitter, on deFornoP, you can follow me, and I try and share a couple articles a day of ... I curate good stories on both B2C and B2B commerce and people can also reach out to me at Deloittedigital.com or on LinkedIn.Stephanie:Amazing. Thanks so much, Paul.Paul:Awesome. Thank you.

Up Next In Commerce
The eBay User Experience: A Love Story

Up Next In Commerce

Play Episode Listen Later Nov 3, 2020 48:22


Every shopping experience is unique, and every shopper has specific wants and needs. That is one of the biggest struggles brands face in the world of ecommerce. How do you create a customer experience that resonates with and meets the needs of drastically different customers?This problem is magnified further when you run a marketplace that sells literally millions of different products to tens of millions of different users. eBay has 180 million active users, which, according to Bradford Shellhammer, means that there needs to be 180 million different eBays to meet each of those users’ exact needs. Bradford is the Vice President of Buyer Experience at eBay, and part of his job is to make every eBay user fall in love with their eBay experience.On this episode of Up Next in Commerce, Bradford explains what that looks like in practical terms, including how they approached a home page redesign, the importance of testing and experimentation, and the methods they have used to build trust among users.  Main Takeaways:Do You Trust Me?: Trust is an essential part of the buying experience, and these days, companies are finding more innovative ways to establish trust with users. In marketplaces, typical product reviews might not be the best way to build trust with shoppers, instead, you have to find alternative ways to connect with customers and intervene if something goes wrong. Please Rate And Review: Gathering feedback and information from users is a critical method companies use to improve their customer experience. Typically, brands will send out surveys or ask for feedback in an email, but there are better, more strategic and enticing ways to get the feedback you need. And sometimes that means utilizing channels you may not have traditionally relied on or creating brand new customer feedback channels yourself.Test, Test, Test Again: Nothing should be added to your website or brand experience unless it has been thoroughly tested. Both internal and external experimentation is necessary to ensure that when you make a change, or add something to your site, you already know that it is what your customers want and it works the way it was designed to work.For an in-depth look at this episode, check out the full transcript below. Quotes have been edited for clarity and length.---Up Next in Commerce is brought to you by Salesforce Commerce Cloud. Respond quickly to changing customer needs with flexible Ecommerce connected to marketing, sales, and service. Deliver intelligent commerce experiences your customers can trust, across every channel. Together, we’re ready for what’s next in commerce. Learn more at salesforce.com/commerce---Transcript:Stephanie:Welcome back to another episode of Up Next in Commerce. I'm your host, Stephanie Postles, co-founder of mission.org. Joining us today is Bradford Shellhammer, the Vice President of the Buyer Experience at eBay. Bradford, welcome.Bradford:Thank you. Thanks for having me. Excited to be here.Stephanie:Yeah, I'm really excited to have you on. eBay, such an awesome name brand. I'm excited to dive into all things eBay. I've been a long time buyer there. But first, I want to go into your background of what brought you to eBay? I see that you founded a couple companies, a couple ecommerce companies and I was hoping you can touch on that before we jump into eBay.Bradford:Yeah. I think it's super cool to talk about because it's actually super personal. For me, it's a pretty interesting story. So, it's a love affair, essentially, between myself and eBay. I've been a buyer on the platform since 1999 because we can trace back and see in our internal database how long we've been shopping and when we created our account.Bradford:So, I've been a customer of eBay for over 20 years. And the companies that I started, two of the three were marketplaces. And they were marketplaces that were really founded on two principles, both of them, one was for buyers, helping them find treasure, awesome stuff, unique things, feeling some passion or interest and for seller is propping up the little guy.Bradford:Both of the companies that I found at Fab and Bezar were both heavily in the design space, in the modern design space, so that's furniture, graphic arts, posters, lighting, jewelry, handbags, accessories and things so fashion design, but my personal love affair with collecting.Bradford:I have over 400 pairs of shoes. I have a massive art collection. I have probably more chairs than most people. Most of these purchases over the last 25 years have been made on eBay. And so, for me, I've inspired by the hunt on eBay what we call internally the eBay a power user, a power customer.Bradford:And now, I have this awesome responsibility to help other people fall in love with and use eBay the way that I do. So, I was hired four and a half years ago. I met the chief product officer who had some interest in one of my companies, Bezar.Bradford:Turns out I sold that to another company, an Australian company, and I became a free market... was on the market and I was a free agent. And I'd never really worked at a real company before, a big company, the previous 12 years is doing my own thing.Bradford:And so, they said, "Well, come join eBay." And my first role was the chief curator of eBay. And frankly, it was a made up role. And everyone thought I had great taste. And when I got to eBay, I really thought my job was going to be curating through eBay and surfacing that up to consumers.Bradford:And what I quickly realized is that eBay scale is so much bigger than one person's taste. And that some people are curating parts for a vintage Mercedes on eBay. And some people like myself are collecting design, and maybe other people are just using eBay because they have six kids, and money's tight and buying them all new iPhones is just not possible, so they're looking for great deals.Bradford:And so, I really quickly just became very empathetic to the eBay customer's journey and it said, "Wow. Bradford, this is not about you. Can you help build tools to help other people find the things that they love rather than forcing your point of view or something that you love on people?"Bradford:And then, I moved into our product org, my second year and the first project I took on was our homepage. We redesigned it. We built a lot of new algorithms and it became a science powered hub for you. And the goal was that there's 180 million active buyers on eBay.Bradford:There should be 180 million different eBays because everybody's eBay is different. It's not like other big box retailers or other mass market ecommerce players where we're buying commodity products or everybody's buying the same thing.Bradford:And my team really builds the experience that should adapt and respond to customer's interest and helping them find what they're looking for.Stephanie:That's great. So, taking on the homepage design seems like a lot of responsibility. Tell me a bit about what that looked like. I mean, what are the customer buying behavior look like before and what do they look like now and how did you get there?Bradford:Yeah. That's a good question. So, I inherited an experience that was about five years old and it was called the Feed and that was the homepage. And it was a Pinterest-esque experience. And so, when customers would save things, we have this concept called saving, there's a little heart, you click on it and it saves.Bradford:You can save a search. You can save a seller. You can watch a single individual item. It would populate a visual grid of like products that are related to that. The problem with that is that it required customers to groom their own experience. And so, for power customers, the feed was awesome.Bradford:Because like myself, I have 150 saved searches and it's just this beautiful grid of new products populating every day of hitting all the either brands that I'm following or the sellers that I love what they're selling. But for the normal shopper, not your power customer, they were really missing out on personalized content because we literally required them to do work to curate it themselves.Bradford:So, the project that we decided to do is, was there a hybrid of that? Could you still have some of that content for the power user be front and center on the homepage?Bradford:But could you have machine learning and science pick up behaviors patterns of just what people are clicking on or searching for or which emails they're opening and have that be enough to curate a homepage experience without them having to do the explicit work of saying show me more of this on clicking on a heart or saying I want to save this.Bradford:And so, what happened was more people with as a result of that first product we launched, more people ended up having personalized content which was a win. Because previously, it was personalized content mostly just for power customers. Now, a more casual customer still gets that benefit.Stephanie:Got it, that's great. So, when it comes to projects like that, internally, I'm sure there was a lot of stakeholders and a lot of people had a lot of different ideas. How did you rally everyone around getting a homepage launch without taking, I mean, I could see that project taking maybe like a year at other companies [crosstalk 00:07:10].Bradford:Yeah. Well, first of all, I don't want to give away too much of the sausage making, but eBay is surprisingly entrepreneurial. We move pretty fast. And we don't, I think, have a lot of the bureaucracy that probably a lot of companies of our scale have.Bradford:So, first of all, I almost felt like, "Wow, they gave me the keys to the car." And for the most part, we have a very strong test and learn culture. So, we don't just flip the switch on something and see how it works. We test and learn and we do lots of hundreds and hundreds of AB tests and we're constantly testing everything.Bradford:So, we would never launch anything that didn't resonate with our customers. So, there were safety, I think, baked into all of our hypotheses knowing that you have to actually prove that something that an idea you had is worthy of launch. But I think that that's where I think my entrepreneurial background and my non tech background.Bradford:I've started companies, but I don't have a formal technology education at all. I have a fashion design degree and a communications degree. So, this is where I think just the hitting the pavement and telling a story and crafting a vision and getting people to march along with you whether they're marketers or engineers, or designers, or whatever I think suited me in this role in the early days.Stephanie:Yeah, that's really cool. See, when you were talking about the AB testing, how you guys test everything, were there any surprises of something that you thought was really going to work and it actually failed?Bradford:Oh, that's a good question. I'm trying to think of, you know what, I have to be honest, I don't want to say this because my team is super smart. But I think that the best product managers and the best designers and the best experiences out there are ones that are really rooted in want something super simple, just listening to your customer.Bradford:And so, if you're literally baking all your hypothesis and lit really listening like combing through feedback, we have myriad of surveys on different pages. We do lots of focus groups. We do tons of research, user research. We do tons of dogfooding internally.Bradford:You weed out the things that aren't going to work way before you even start to build them usually. And so, for us, it's like if you have that real commitment to just listening to your customer through the process rather than having someone come in and just say, "I want to do this thing."Bradford:Because when you listen to your actual customers, there's a real great respect for them and you actually don't want to break their current experience, you just want to make it better. And I think a lot of times where I've seen products fail, and I'm not going to go into the details of what they were.Bradford:But I have seen maybe not so much in my team, but I have seen this happen both in and outside of eBay is usually when someone that doesn't really have the customer's voice in their head is just like either taking something that's their personal preference or looking at a competitor that may look like a competitor from the outside, so a lot of companies are compared to eBay because they sell things online.Bradford:But if you really look at eBay and why people shop at eBay, it's a very different customer than a lot of the big players. So, constantly comparing ourselves to, I think, other competitors who aren't really competitors other than they compete for wallets share not with the heart and soul of our customers.Bradford:I think sometimes is where I've seen product managers go off and usually go somewhere that's at the end of the day, it just wasn't what our customers were asking for and that's our job.Bradford:Our job is to literally listen to our customers and build experiences for them, and take the things they love, make it better, and take the things they hate and change it. And I really think that if you ground yourself and your whole organization in that just like real deep customer empathy, you don't make too many mistakes.Stephanie:Yeah. I'm thinking about surveying customers right now. How do you frame questions in a way that will actually get you what you need when it comes to like how to shape an experience? Because I could see framing in a way that actually gives you maybe the wrong [crosstalk] customers tell you something that leads you down the wrong path.Stephanie:Or, it's like, "Oh, someone says they want that." But actually, no one's going to really use that or we see that no one uses it. How do you think about framing questions in a way that will actually be successful [crosstalk 00:12:11].Bradford:It's a great question. We have teams of people that focus on that at eBay. So, the feedback we get is that we actually have feedback forms on specific pages of the site. So, I'll give you example, there's this thing called My eBay. It's like your profile hub thing. But because eBay, you could be a buyer or seller, so you have a place where all the things that you've bought live but also all the things that you're selling or sold live.Bradford:It's like the hub of the eBay customer. If you just sent an email with a survey of how do you feel about eBay or like an NPS survey, you're not going to get the detail feedback they'll make that product better. And so, here are some of the things that we get like very specific feedback like purchase history.Bradford:There are people that literally because they're business buyers or let's just say they're resellers. People that are buying thousands of records a year and then reselling them and we don't have the functionality to let them search through their purchase history.Bradford:So, they can't literally search David Bowie and find the things. And this is a number one complaint of our customers and you only would find that out because then we're literally asking very specific, what would you do differently to this exact experience or page?Bradford:I think that's where you get awesome feedback. You can get that through just general feedback collecting too if you're able to actually come through and pick up the patterns and scour through them. Because you're right, you might get one or two people that are really vocal about something that a lot of people don't want.Bradford:But the things that are like really, really asked for they rise to the top very quickly on eBay. There's also a myriad of forums out there, seller forums, Reddit boards, where people are talking about both pain and opportunities for eBay to be better.Bradford:And oftentimes, those are through the lens of a vertical lens. So, you have these sneaker enthusiasts or watch enthusiasts, or who are literally talking about where eBay fails them. And it might not be something that we'd see if we're looking at eBay just really generally.Bradford:But for very specific customers, there are some things that matter more than others. And so, one of the big changes in our philosophy this year has been to start thinking about what are those enthusiast groups. And oftentimes, they're aligned with verticals or categories, so watch lovers, sneaker lovers, streetwear lovers, stamp collectors, comic book collectors.Bradford:And really understanding like are there unique needs that are outside of just the normal shopping experience that we have to either fix or introduce for those customers too. But it's nonstop, just taking in feedback like we actually need more.Bradford:But I would say probably 10% of my team's job is to literally spend 10% of their week is just combing through that stuff to gleam any insight into what we should be working on or what we need to focus on.Stephanie:Yeah, that's a really good point about going to different sites like the Reddits of the world and looking at what different niche audiences are talking about. Because I've always wondered when I see or I have an issue and I see a lot of people having that issue, I'm like, "Oh, why isn't this company just looking on this Reddit forum and seeing that there's thousands of people all trying to figure out the same thing that's probably like an easy product fix."Bradford:It's an easy product fix. And I'll tell you what else is really super cool about that is that it also makes your competitive analysis because you can see the customers that are buying... your customers talking about you and you also see the customer, the other companies that they reference as competitors, so you really get to see.Bradford:And for eBay, as I said, it's super verticalized. There are people that buy hundreds of thousand dollar watches on eBay there. There are literally people that spend thousands of dollars for watches left and right on eBay. And guess what, they're not going to, I'm not going to say their names, but the big marketplaces to buy that they're more verticalized player.Bradford:So, we also have hundreds of competitors. When you slice it vertically, it's also a great place to just hear them talk about either the good or the bad of our competitors through a lens too, so you can stack, you can see the sentiment of how they feel about you versus them. And they can also see where are we winning and where do we have to be better very clearly in those forums, too.Stephanie:Yeah, that's such a good point. When you're talking about these vertical players and how to think about that, it reminds me of... I read an article about the unbundling of a lot of platforms whether it's Reddit, or Nextdoor, Craigslist, how turning it into separate products.Stephanie:I don't know if you've heard about this, but how do you think about that at eBay right now? Because it sounds like you're doing that with these different niche audiences in a way like pulling them apart to give them a more personal experience.Stephanie:For example, like with Reddit, maybe there's thousands of different conversations going on around different topics. And then, there's a picture that shows, okay, this topic here is all around neighbors and things like that. Oh, what do you know, Nextdoor popped up and pulled that off the platform in a way.Stephanie:And then, oh, they're talking about like gaming here. Oh, here's a gaming platform that popped up. So, actually pulling apart a platform to give it unique experiences for the people.Bradford:Yeah. So, I mean, you can look and see there's I think a lot of... we're the original. We were [crosstalk 00:19:25]. Yeah, we really are, seriously. Before we were the gig economy. We were the niche marketplace. We were the vertical marketplace. We still are like we literally invented or we're one of the originals.Bradford:And so, you can look around. And you can see even fab.com, it was a marketplace for design like some of them come some of them go. Some of them have really great staying power and a few of them have been super successful. Here's why I think we're uniquely positioned and why I think going back to building verticalized experiences.Bradford:And when I say that I want to make sure that it's not niche. It is building horizontal capabilities that can flex and you might need the ability to have high ASP or high payments. Sometimes, you're buying things that are $20,000, $30,000, $40,000, that's our high-end art, that's high-end collectibles, that's high-end watches.Bradford:That's also like business and industrial equipment. Tractors, we sell a lot of this. So, although those like shopping experiences wouldn't be the same beginning to end, there might be a piece of that, like a payment, the ability to have some payment support for large purchases as part of your strategy.Bradford:So, for us, it's about I think building horizontal capabilities that can benefit multiple verticals then you slice up, we're calling them platforms, a vertical platform. You slice up a piece of that and a piece of this one, a piece of that one and suddenly you're basically stacking, it's like a menu.Bradford:For this shopper, you need these five things. And for this one, you need these six things. And so, it's not separate branding. It's not like suddenly, you're in an experience that doesn't feel or work like eBay, but it's just building different kinds of capability into the shopping experience and that's our strategy right now and it's super cool.Bradford:And I think that the great thing about eBay is the scale. So, for small upstarts and small vertical players, they got to spend a ton of money to get people to come onto their platform. I mean, a ton, they have to bleed millions, hundreds of millions of dollars like eBay has an audience. We have traffic.Bradford:We have global reach. We have hubs of really major or an iconic brand in Germany, in Australia, in Israel, in Canada, in the UK. So, there are all these benefits to being this large platform that are mostly traffic I think and just like a giant active enthusiast customer base.Bradford:I think it's on us to just crack what is the end to end product experience. And maybe there's other things that have to change, policy, how we rate our sellers, how we rate our buyers. There's probably other things where we're thinking right now too that's more than just experience. But I don't think it's the reinvention of eBay. I think it is the morphing of eBay for certain types of customers. Yep.Stephanie:Yeah, that makes sense. Have you seen over the past couple years buyer behavior is changing? Are you pretty preparing for something new over the next couple years or adjusting strategy a bit after seeing changes with COVID? I think I read that eBay did pretty well. Is there anything new that you're preparing for now?Bradford:Yeah. I mean, the COVID is a horrible thing. And but what was like got a lot of us through it in the early days at eBay as supply chain was shutting down, warehouses were shutting down, it was hard to get things.Bradford:The one thing that was working was just how distributed the inventory of eBay was and how this sector of the country or the world may have shut down but there's all these parts over here that can ship things around. And it was super cool to witness that eBay worked.Bradford:And it allowed like some people who are home to make some money, come in and sell for the first time. They allowed businesses that maybe struggled during the time, they might have closed physical retail down or something like that, it gave them another channel.Bradford:We have a new CEO. His name is Jamie Iannone. He was an eBay veteran that went and worked for Walmart for many years and he's come back with such a forceBradford:And so, the great news about our new CEO is he is really setting a strategy that honors eBay's past meaning going back and valuing our sellers who without, we literally don't have a company and literally saying publicly that he's focused on eBay being the seller's platform of choice.Bradford:And on the buying side, it's about going back and listening to our enthusiast customers. We're like strategically positioning ourselves to be there for those buyers and sellers more than ever.Bradford:And so, I said in terms of this like what we're seeing right now, we're seeing a lot of people looking at eBay for the first time. We're seeing a lot of people reconsidering eBay, and we're seeing our best customers continue to shop with eBay.Bradford:And it's on us right now to take advantage of this time and I think go back and really listen to our customers, as I said at the beginning of the podcast was not just like... yeah, I was talking about like listening to very specific feature feedback or page feedback in our experience or app feedback.Bradford:But like we as a company are just listening to our buyers and sellers in a way that we haven't during my time and much of our strategy is just emerging from that. And it's super cool to have new leadership that is all about customer, customer, customer.Stephanie:Yeah, that's really great. When it comes to the new customers who maybe still have an old perception of what eBay is like, "Oh, it's an auction site." Maybe haven't visited in a while. How are you appealing to these new people who are starting to think about you?Stephanie:I'm sure you have very different messaging to someone who is new versus your current customers who are sticky. And once they start buying or selling, they're probably going to stay there for a while.Bradford:Yeah. I think that this is a part of what brought me to eBay. I love eBay and I feel a lot of people don't know enough about our goodness. And I think a lot of that is because I think previous years before Jamie came on board, I think we were not really owning what we really were.Bradford:eBay is really an awesome place to buy non new and seasoned merchandise and that means refurbished products that means outlet products, that means used products, that means new and not in box. And so, I think that there was a lot of confusion probably for especially young consumers because I think that there wasn't a clarity of message around what eBay was just externally, it wasn't necessarily clear internally.Bradford:And so, I'm very optimistic that this clarity around where we're going to compete and the buyers and sellers that we value. I think you will see we have to earn it. We have to earn it with every single sale. We have to earn it with every single seller that comes back onto the platform. We have to earn it with a first time buyer.Bradford:But I think that it's less about how we're going to talk to our existing customers versus our new customers, I think in my eyes, because I actually think we need to say the same thing which is there's a lot of magic into eBay and it's not your typical shopping experience and that's okay. That's cool.Bradford:I think about eBay when I'm thinking about comparing Airbnb to hotel chains. It's like Airbnb, there's a little something for everyone there. You can rent a mansion. You can rent a cot in a yurt and everything in between and it's high and low and it's all around the world.Bradford:And there's something that's like I think of eBay in the same way that it's super inclusive and there's something here for everyone. What I don't think people realize is that eBay is full of, I say to the two things, also for buyers, awesome deals and really great treasure which is unique, hard to find or are super interesting stuff.Bradford:And I think that those two things probably appeal to really broad set. It's on us to tell that story. It's on us to tell that story vocally in the press. It's on us to tell that story in our branding, in our marketing. And it's on us to tell our story in our product and I don't know if we've done that well enough up until recently where we're starting to pivot towards that listening to our best customers and buyers and sellers and building things for them.Stephanie:Yeah. So, with marketplaces, there's always a question around trust. How are you guys going about showcasing that and convincing especially maybe new buyers that this can be trusted and our sellers can be trusted. Because I think at least back in the day, that was something, I mean, even on Amazon, people are still worried like, "Is this a good seller?" So, what are you guys doing behind the scenes?Bradford:Yeah. I think that trust is probably one of the biggest things we have to work on and have worked on. I'll just speak a little generally and then I'll tell you about a very specific thing that we're doing for trust, but I think will be super exciting to talk about.Bradford:So, one and it's just loans. So, for trust, I think we're aware that when the scale of eBay and just the diversity of seller of inventory of even condition that we probably have, it's even more compounded, the trust issues at eBay, there's just so many variables here.Bradford:And so, we are taking it very seriously right now through planning for next year especially and talking about all the things that we're going to do to combat trust. So, it's everything from doubling down on some of our policies that protects buyers.Bradford:So, we have money back guarantee. We essentially for most products on the site guarantee that customers are going to get what they want, get what they're expecting. And so, I don't think a lot of people realize that most of the things you buy on eBay are we have this baked in protection.Bradford:But I don't think that's enough. And so, I'll give you an example of why I don't think that's enough. Here, I'll give you example. I'd mentioned it earlier and it's launched and is live now as of a couple weeks ago. If you're buying a watch that's over $2,000 which is a high-end luxury watch, these are like the Rolexes, the Omegas, they can go way higher than that.Bradford:eBay is one of the biggest places to buy these watches, it's massive. It's a business within a business. The biggest concern that our buyers tell us is that they're afraid that like, "Am I really getting a Rolex? Am I getting the real thing?" Authenticity really matters.Stephanie:Yeah. For $3,000, we've got to be real.Bradford:$3,000, I mean, I've seen some of the sales $30,000, $60,000. You don't want to take a chance of, "Am I not going to get it? Is it going to be fake? Is it going to be scratched?" So, we decided to tackle trust through a vertical lens. And it's not just a category because it's not all watches but watches over $2,000.Bradford:We have launched a new program that's called authenticity guaranteed where eBay is guaranteeing that any watch sold on its platform domestically. So, in the United States we have plans to expand. But currently in the United States that's over $2,000 that we will guarantee its authenticity.Bradford:So, what we've done is we've partnered with amazing partners who vet it that can verify and authenticate high-end luxury watches. We force an intermediate shipping. So, the buyer, when they make the purchase, they see very clearly badging program details say this watch is covered under our authenticity guarantee and you have nothing to worry about, it's going to be authentic.Bradford:We have the seller ship the watch to the third party verification service. They look at it. They compare it. If it's not in its original boxing because a lot of these watches are sold with the original boxes. If it's not on its original visual boxing, we repackage it in eBay box and then we express ship it out to the buyer.Bradford:And we catch any problem with counterfeits or other kinds of issues before it gets into the hands of the buyer. And so, it's really meant to stop buyers getting fake products or damaged products. For the seller, it's also a really awesome thing too because oftentimes people will buy a watch and we have buyers that have scammed our sellers.Bradford:So, us being in the middle of both the buying and the return process, it basically is our way of just ensuring that both buyers and sellers are protected and it's third party authentication of luxury goods.Bradford:And so, we rolled it out and we're going to be expanding the program even more. And like that is very real and very different eBay, us literally getting in the middle of a transaction and protecting both our best buyers and our best sellers. And we're going to do more of that next year.Bradford:And when I say more of them, I'm not just talking about more things to authenticate, but I'm also talking about just more picking apart like a very important customer base and their buying behavior and where they have concerns with eBay and a lot of it goes back to trust, frankly.Bradford:It's like, I don't trust eBay as a buyer. I don't trust eBay as a seller because you don't offer these protections. And we're literally going to be bringing those protections through a vertical lens more often.Stephanie:Wow, that's great. I mean, that seems really smart and strategic because, I mean, I trust eBay as a brand and I would trust whatever you guys say, but I might not trust the buyer or the sellers.Stephanie:So, what recommendations would you give to other ecommerce companies around developing trust? What do you think is most important? Is it reviews? Are there things that other companies right now maybe are missing out on that they should be doing?Bradford:Yeah, it's interesting. You bring up reviews and I think that that is also a unique eBay opportunity too. Our catalog, we have so many listings like in every condition. From every year, from all over the globe.Bradford:It's really hard to comb through it all. Reviews I think are interesting.Bradford:But I really love the review of the seller. So, where a lot of ecommerce companies are reviewing an individual product, like an actual item like this cooler or this microphone, or these pairs of shoes. I think that eBay has that opportunity where we have the right catalog and I think that we're leaning in there in certain categories.Bradford:But I think a more interesting eBay opportunity is to really celebrate the seller and to talk about, are they trusted? Because a lot of the stuff that eBay sells, a lot of stuff on our site, you can't actually get a review. Much of it is not that product.Bradford:A good example like comic books like I know I want this spider man whatever it is. The thing that I care about is, do I trust this seller that the condition that they're saying it is as is. And so, I think a concept of reviewing a seller and trusting them, I think is super interesting to lean into. I think it's super interesting to lean into especially where a lot of our... and eBay is a little different all over the world, so I don't know how much you know about that too.Bradford:So, in the US, the business is very different than the way it looks in UK. It's very different than in Australia. So, for some of those places in Australia like I'll give you example. We have a lot of brands and the top brands and top retailers selling direct on eBay.Bradford:So, it's like we are a channel for them. So, there, the trust opportunity is about like is this one of these iconic brands that I trust, I know their inventory. But in other parts of the country, there's a lot of small businesses, a lot of people who have built cult followings on Instagram.Bradford:A lot of people that literally have brick and mortar stores and small towns and main streets. And they have been able to survive in a world of big box retailers and mega malls because they've had this outlet to sell things from their physical location on eBay globally.Bradford:And so, I think we should show that off more. I think if someone knew they were buying a record or a bunch of records from a record dealer who's had a shop since the early '80s in Downtown Buffalo and I'm making that up but it probably does exist. Like that would be a level of trust, right? You know that this person is the real deal.Bradford:And there's something about that that I get excited about, thinking about when you say reviews is leaning in and it's less about reviews, but more about like, "Can I trust this seller? Who are they? Where do they exist?" Like, "What is their point of view? What do they specialize in? What are they experts in? How can I communicate with them?" I get excited about that.Stephanie:Yup. I love that. Because I mean, even from a human perspective, it's like what do you remember? Are you going to remember like you said the product? Or you remember the person, the face like the story behind it and then that would come top of my next, I'm like, "Oh, I want to go to Bob's record store and get another record from him because he did a great job last time versus-"Bradford:[crosstalk 00:42:38]. And that's difference between like us. I talked about Jamie and our new pivot, our new strategy like what you just said is super important. I don't know if you're buying diapers, or if you're buying toilet paper, or you're buying replacement batteries that that person to person connection matters that much.Bradford:It's about price right? Is this the thing I'm looking for and who has it at the cheapest and sometimes it's the cheapest bust the quickest. And I think a lot of times eBay just because of this, like the diversity of our inventory sources, we get to compete there too.Bradford:Because we have all these different sources of inventory and oftentimes, we're the best price. But when you talk about things like collectible sneakers or vintage handbags, or coins, or antiques, or vintage camera equipment, or car parts, suddenly, who you're buying it from matters. It not only matters from the feel of good I'm like helping the little guy community aspect of eBay, but it also matters from the trust.Bradford:And part of people that do have passions whether they're collecting or enthusiasts, part of the joy of that whole thing is not just the accumulation of things, it's the connections to people that come with the process of accumulating those things.Bradford:And that is where eBay, that happens just naturally because it's our DNA, but we need to tap into that way more than we do currently, and we will. And that's the stuff that we're talking about internally right now.Stephanie:Yeah, I love that. I think that's also just such a good point for any new like do they see companies coming out right now that like the story behind it. I mean, I know a lot of people sometimes are like, "Oh, I don't want to talk about myself." But I remember going to certain websites and looking at that page and seeing like, "Oh, it's like a certain family member is behind and here's how it was inspired. "I think like Charles Webb comes to mind and a couple other ones.Stephanie:But you remember that story of why they're doing what they're doing and that's way more of a spot to connect on than maybe just the product. Like you start to have a good product, but I think [crosstalk] some of that story is important.Bradford:Yeah. You're absolutely right. It's not one or the other, it's both. And when it's both it's like, pow, that's where the magic happens. And again, we're coming back to that more than we have probably in the recent history of the company.Stephanie:Yeah. Very cool. So, you were just mentioning earlier about international audiences, like you guys have a global presence. How do you think about developing your website and your offerings and telling the story behind different, maybe like catalogs and things like that, how do you think about approaching that from a global perspective?Bradford:Prior to COVID, I spent I would say a half of my time not in New York City. So, I have a global role and obviously worked for a company that's headquartered in California. But I really, really spent a lot of the last four years on the road and really listening to customers.Bradford:And when I say customers, I mean, also. So, eBay is like we have global functions. So, product and technology is one of the things that are global. It's based mostly although we have people that work on and distributed across the world, it's headquartered in California and that's the epicenter.Bradford:But we also have markets, regional teams. So, because of the scale of our business they're like big companies within a really big company. We have an Australian headquarters. We have an Asian headquarters. We have an Israeli headquarters.Bradford:We have our Russian headquarters. We have German headquarters. We have an UK. And a lot of the business, merchandise, marketing like just operations, the people that are closest to the customers and market are in those countries. And you do see nuance of differences of how people use products like it's super interesting.Bradford:I'll give you an example. We launched the ability to create an account on eBay with Google, Facebook and now Apple. This is nothing revolutionary. It's been around since 10 years, but we launched it finally in eBay a couple years ago. And we've seen a lot of adoption because that's just the normal way a lot of people create accounts.Bradford:They don't have to think about a username and a password remembered for individual websites. They just click a button they link to Google and it's one click sign in. Germans don't want to do that. And you realize that like suddenly, this product that there are parts all over the world, and then you realize that there are very real differences.Bradford:There are very real differences in how people want to pay for things. Germans again don't use credit cards the way that a lot of the west does. There are very specific payments forms in China that we just don't have in the US. And see nuance in the categories they shop globally, country to country often.Bradford:You see nuance and payment choices. You see nuance in privacy. Some countries care a lot less than other countries about it. It is really interesting to see the outliers where something just doesn't make sense or doesn't work somewhere. We test things and sometimes like something is a runaway hit in one country and it's just the... sometimes negative and others.Bradford:And really a fascinating part of our job is how do you launch global product by respecting local nuance. And what we have done is we have actually a team of... it's a pretty decent sized team. But we have a team that actually takes our global product tech platform and sometimes builds newer experiences that are market specific on top of the example is you can buy groceries in Australia on eBay.Stephanie:Oh, interesting.Bradford:Yeah, anywhere else. But because of just the size of the country and the epicenters of where people actually live and partnerships with the top grocery companies there. We actually built like a grocery shopping experience on eBay which no one would ever think of that.Bradford:So, we do sometimes build different things in different markets depending, but by and large, I would say 95% of what we do is global audience is shopping view eBay at the same way, so it's not too much.Stephanie:That's pretty great. I mean, are there any international trends or shifts that you see happening right now that you guys are preparing for or leaning into?Bradford:No. I mean, I think that the shifts that we see are, again, I think this vertical approach, looking at different verticals and really understand that customer's journey end to end, how they landed on eBay. How they browse and shop and search for eBay.Bradford:How they consider what they expect in terms of protections and trust us and how they want to pay for it and what to expect, what returns and guarantees. We're doing that everywhere. What's different is that there may be some verticals that matter here and don't matter there and that's what we're working on right now as like I mentioned the watch business in the United States and that's definitely a global one.Bradford:But there might be some that are more US focused. There might be some that are more European focused. There might be some more that are more APAC focused. But other than that, I think it's just applying the same playbook. It just might be a different vertical or a different category focus in certain countries or regions.Stephanie:Yeah, that is great. All right. So, we have not too much time left, but I want to jump into the lightning round unless there's anything else you want to talk about.Bradford:Yeah, this was great. Thank you. I mean, it's so funny. Like I said, I like really drink the juice of eBay and like just talking about eBay gets me excited. So, thanks for letting me just riff on how awesome place I work is.Stephanie:Yup. Yeah, I like that excitement. That's what I love to talk about and have people come on the show, be passionate about where they work and what they're excited about. So, it's been perfect. All right. Lightning round brought to you by Salesforce commerce cloud. This is where I'm going to throw a question your way and you have a minute or less to answer. Are you ready, Bradford?Bradford:Yeah, okay.Stephanie:All right. So, this one I think you'll have a great answer to, what is the either best or most memorable purchase you've ever made on eBay?Bradford:Oh, my God. Well, I'll tell you what, I just found out what my first purchase was and it's really embarrassing, it was an MC Lyte who you don't even know who that is, I'm sure.Stephanie:Nope.Bradford:An MC Lyte cd.Stephanie:All right. Okay. So, what is this? Tell me a little bit more because I do not know.Bradford:MC Lyte is like one of the earliest female hip hop artists and was very famous in the late '80s, early '90s, did some rap like Queen Latifah. And that was my first purchase on eBay. But I-Stephanie:Well, do you still have it? I hope so.Bradford:I don't still have it. [crosstalk] anymore. I have a Warhol collection and I have bought probably five or six of them on eBay. So, I'm someone that actually buys high-end art on eBay. And those are oftentimes steals.Bradford:I mean, they're not inexpensive, but in terms of just the actual cost that would be out in the market of the art market through dealers and door and at auction and I got great, great, great deals.Stephanie:That's awesome. Yeah, very cool. Well, I have to see some pictures of some of your art.Bradford:I can send [crosstalk 00:54:04].Stephanie:That would be cool. I'd love to see it. So, once we can travel again, what's up next in your travel destinations?Bradford:It's so funny. Right before we're grounded, I just gotten back from a wedding of one of my best friends in South Africa. And then, I went to Rwanda and Zanzibar. And I flew 300,000 miles last year, so this is really hurting that I'm not traveling. My favorite two cities in the world are Berlin and Rio de Janeiro and I am dying to get back to both of them probably especially Rio.Stephanie:Okay, cool. We need to follow you on Instagram or Twitter wherever you are to keep up with where you are at in the world.Bradford:It used to be more interesting. I was at a beach every weekend and not anymore. [crosstalk] and I got to travel to really cool places for work. You get to go to Sydney. You get to go to Tel Aviv. You get to go to Berlin. You get to go to London, it was a really luxury. I don't know, I'm sleeping better now, so maybe it's not all bad.Stephanie:Yeah, there you go less jetlag. If you were to have a podcast, what would it be about and who would your first guest be?Bradford:Oh, my God, it would totally be like completely not about the covers. It would probably be about music and drag queens and gave up culture. And my first guest I think it would have to be RuPaul.Stephanie:That sounds awesome. Hey, I mean, not all podcasts have to be about ecommerce. I mean, we have the best one. So, [crosstalk] anymore. There you go. You don't want to compete with us. You don't want this. All right. And last, harder question. What one thing will have the biggest impact on ecommerce in the next year?Bradford:Obviously, the answer is COVID. I think it's completely changed a lot of consumer behavior. I think it's really changed a lot of the industry. I think a lot of people that didn't sell or buy a line are now doing that. And I think I'm curious as we hopefully pull ourselves out of this globally.Bradford:And I hope get to a place sooner than later some normalcy in the world that I think that for ecommerce, just the playing field has shifted, it's going to be a different game. And I think we have some signs, early signs of what we think that looks like for eBay.Bradford:And I think a lot of podcasts and article I read are pontificating on it, but I don't think we have the answers yet. And that's probably the answer for this life to not just ecommerce life, but definitely COVID.Stephanie:Yup. Yeah, completely agree. All right. Bradford, it's been a blast talking. Where can people find out more about you and your work?Bradford:They can shop on eBay and see it live and flesh most of the things that a buyer touches. And you can follow me on Instagram, youngbradford, if you want. I'm boring on Twitter, I'm a more visual person.Stephanie:All righty. We will try and find you there then thanks so much.Bradford:All right. Thank you. This was a pleasure. Thank you so much.

Up Next In Commerce
Landing a Million-Dollar Shark Tank Deal (And The Lessons Learned From Facing a Sudden Surge in Demand)

Up Next In Commerce

Play Episode Listen Later Aug 6, 2020 50:58


There are a lot of twists and turns in Joe Demin’s journey to founding Yellow Leaf Hammocks. It opens with a childhood refugee turned successful real estate developer, then twists into a story of entrepreneurship and an appearance on Shark Tank, and then turns again when a request for $400,000 became a $1 million investment. Through it all, though, Joe was guided by a singular idea to build a business that could actually have a measurable, sustainable positive impact on people.  On this episode of Up Next in Commerce, Joe guides us through his quest to make Yellow Leaf a success. Tucked within this incredible story are some critical bits of knowledge about running a successful eCommerce shop, including the challenges of selling on Amazon and the ways to optimize your Amazon strategy, plus some of the pitfalls to watch out for if you decide to pursue a path into retail.  3 Takeaways: There are challenges to selling on Amazon, and it all comes down to whether you choose the seller-central or vendor-central route. If you choose seller-central, you have more control, but have to provide the inventory and warehouse the product on your own. With vendor-central, Amazon purchases directly from you, but then they resell on the Amazon site and the algorithm sets the price, so you have to constantly monitor that aspect to make sure you are not cannibalizing your own business  Today, there are many companies that have a social good aspect to what they do. However, very few take the steps toward setting up an actual sustainable enterprise that truly benefits the people you are trying to help. By providing jobs and then programs that teach financial literacy and other skills, you create an impact that lasts longer  There are certain pitfalls that small businesses encounter when pursuing the retail path. Whether that is claiming shelf space, creating market-ready packaging or understanding inventory needs and retail term agreements, there are headaches involved, so you need to be prepared to deal with them or find a different strategy For an in-depth look at this episode, check out the full transcript below. Quotes have been edited for clarity and length. --- Up Next in Commerce is brought to you by Salesforce Commerce Cloud. Respond quickly to changing customer needs with flexible Ecommerce connected to marketing, sales, and service. Deliver intelligent commerce experiences your customers can trust, across every channel. Together, we’re ready for what’s next in commerce. Learn more at salesforce.com/commerce --- Transcript: Stephanie: Hey everyone, and welcome back to Up Next in Commerce. This is Stephanie Postles from mission.org. And today we have Joe Demin on the show, the founder and chief relaxation officer of Yellow Leaf Hammocks. Joe, how's it going? Joe: Going really well Stephanie: So, your title, I don't think I've ever had anyone on the show with a title of chief relaxation officer. I was very excited when I saw that. Joe: Yeah, we're laid back, so we can't take our titles too seriously. Stephanie: Yeah, completely agree. Joe: It's a fun job. Stephanie: So, when I was looking over a little bit about you, you have a very interesting background and I was hoping you could start from the beginning actually, which I don't ask from a lot of my guests. But I mean, I want you to go way back, like age five. Joe: Yeah, wow. Stephanie: Tell me a little bit about your journey to where you're at now. Joe: Yeah. I mean, I appreciate the question and definitely I think a lot of what I'm doing now is sprouted from my background. So, I came to the U.S when I was five as a Jewish refugee from the former Soviet Union and had, I guess, natural hustle built in just from my experience growing up in a kind of a rougher part of Boston and just worked my way up through into college. And was, I would say, on a track to do something entrepreneurial. Joe: And early on in college, I fell in love with real estate development for various reasons. We can probably have a whole separate podcast on that, but ended up getting a really amazing job, like a dream job and where I got to lead a lot of high profile development projects. And through that experience, that was my first foray into fusing positive impact with making money in business. Joe: And this is around the time where green building was just starting to become a more of a mainstream topic. And as one of the younger people at the firm, I spearheaded efforts to reposition the firm as a leader in green building and sustainable development. And part of that philosophy that I had early on was this realization that we can actually increase profitability by building things that were better, more sustainable, that had a better health impact, creating healthier communities and so forth. Joe: It was definitely driven by wanting to do good but also realizing that you can do good and have a profitable enterprise. And as 2006 came around, the recession started and real estate was really the first. I graduated in 2006 and so I lasted a couple of years through the recession and ended up taking a job, more of an institutional finance position, but focusing on affordable housing. And a similar philosophy there where if you roll up your sleeves, you can actually take on a part of the sector that wasn't necessarily as sexy, but also had real impact on people, and again, keeping on profitability. Joe: And around this whole time of being in real estate, I was starting to get exposed to other entrepreneurs more in the consumer product space who were some of the early pioneers in sustainable agriculture and fashion, those types of areas and they were doing it in ways that were really impactful. Joe: And so, I caught that bug and had no idea what I was going to do next, but real estate was not the place to be at the time. And I was basically planning to go to business school. And right before going and applying for business school, I saved up all my vacation days and ended up going to visit a good friend in Thailand who was living abroad with four of my other close friends from growing up. Joe: And it was on that trip where the idea for Yellow Leaf came to be, but it all transpired on that trip, but driven by this experience that I had and exposure that I had to other social entrepreneurs. Stephanie: Okay, cool. So what happened in Thailand where you were like, "Uh-huh, I need to start Yellow Leaf." What did that look like? How did you find the hammock? What was the story behind that? Joe: So, I was originally on a remote island and reading a local guide book trying to figure out what to do with my day. We're sitting on the beach one morning and in this book, there was a story, it was a basically said, there's a little shop on the other end of the island in the old part of the island. Joe: And in the shop, there's a map that they give out for free that's a locals' only knowledge type of thing where it'll tell you the secret waterfall and the secret beach. And I was like, "Okay, I got to go check this out." So, I hopped on my motorbike, zipped through to the other end of the island and ended up getting to the shop and it was closed. So I was pretty exhausted by the time I got there. I sat down, someone came and opened the shop and I asked for the map. Joe: And then I also noticed that there was just a plethora of hammocks that were beautiful. And I immediately jumped in. I had loved hammocks before this never thinking that I would be in the hammock business. But I jumped in and was immediately struck by how soft the yarn was, the intricate weave. And I started asking questions about this hammock thinking that I would buy some and bring them home. Joe: And I was told the story of the Mlabri tribe and an aid worker who was working with this tribe and how literally through hammock weaving they had gone from being on the brink of extinction as a culture and they were trapped in indentured servitude. And through hammock weaving, they were able to provide enough income in their community where they were able to self-sustain themselves and build a path out of poverty or were on track to do that. Joe: The impact that they were creating for themselves that was driven by themselves and not an outside aid organization was really interesting to me. I had been familiar with the Toms Shoes model, the handout approach to creating impact. And so, this struck me as something really different. And I learned that these hammocks were not sold really anywhere else outside of a few places in Thailand. Joe: And so, a week later, that story of this community and what they were doing and the hammocks really stuck with me and I contacted the shop and I asked if I can go visit. And they connected me with the village. And long story short, I convinced the cab driver to drive me 600 miles to the village. Stephanie: Gosh. Joe: And I went there and I got to meet the women making the hammocks and spent a whole day in the community. And I learned that people would hike as far away as the Laotian border to this village because they heard how much money they could earn, how well they could be treated. And they were being turned away because there just weren't enough sales. Joe: And immediately I was like, "Well, this is a great product." Naively I was like, "Oh, I can sell some hammocks. We can provide work in this community. And I came home with a backpack stuffed full of hammocks and all this energy and excitement, threw them down on the bed when I got home and with my now wife was who was my girlfriend at the time we were living together. And told her about my experience and it all just snowballed from there. And I basically decided not to go to business school and start doing this on the side and diving into it and slowly getting to where we are today. Stephanie: Okay, cool. Yeah, that's such an amazing story. Where are you guys today? How many hammocks are you selling? Joe: Oh, God. Well, we have over 200 trained weavers. We started with about eight women when we first decided to do this full time. So, we've grown quite a bit in terms of annual units. I mean, tens of thousands that we've sold. And we're actually growing a ton right now. But yeah, it's definitely a very sustainable business. We're past the ideation stage and more into growth right now, so. Stephanie: For sure. Yeah. And I love that idea of giving jobs and actually, like you said, developing a market, a bigger market and providing an opportunity instead of just giving things to someone. Because I do think that's a much more sustainable path and one that I'm always very interested in. How has it changed though from when just a few women making these hammocks? What does it look like now with all these weavers? Are you ingrained in the training process? How do you keep up product quality? It seems like there's so many questions when you're working with a village in Thailand. Joe: Oh my God. Yeah. I don't even know where to start. There's a lot that we've learned and I think we've built a really, hopefully, a model that others can replicate for the artisan sector. But basically, when we started, we were, well, one of the first things we did was update the designs and we learned early on that... Joe: I guess to just step back even a little bit. When I first came back from Thailand, my co-founder Rachel's idea was that we needed to test the market and see if other people thought these hammocks were as great as I thought and that I wasn't just crazy. And that proved to be a really valuable process that we went through where we started selling hammocks at local markets and different fairs around New England, where we were at the time. And we didn't share the impact story. We just tried to sell the product and we led with product first. Joe: And through that experience, we gained a lot of feedback around design and being really design-focused. And so, one of the first things we did as we were starting to really grow was update a lot of the aesthetic to be more on trend with color and pattern and things like that. Upgraded materials so they were really built for the outdoor use and using performance materials. Joe: And so, as we were introducing these things, our weavers were really receptive to that. And we really engaged them in the process. But some of the things we've done as we've continued to grow and looking at how do we create more impact? Layering in like we built a financial literacy program, we have this amazing partnership with kiva.org where we're able to provide zero interest flexible loans to our weavers. Joe: And thinking about how do we provide additional support or bring in partners that can provide additional support in the communities to make it truly sustainable because the first step is giving somebody an opportunity to earn a great living wage and helping people evolve to the middle class. But then it's taking that next step. And so, we've done some work around that and really focusing on quality control from the beginning as well has been super important for us. Stephanie: That's amazing. So, how do you manage inventory levels? I saw you were on Shark Tank, which I'd love to hear the story behind that, but it also made me be like, "Oh my gosh, when you're on Shark Tank, I'm sure you got a million orders." How did these weavers keep up? So maybe first, if I can hear a bit about the Shark Tank story and what that is like, and then move on to how you manage inventory from that surplus of sales I'm sure you have. Joe: Yeah. Yeah, Shark Tank was quite the experience for us. I think we have an ideal product to showcase on Shark Tank, especially during today's times where people are spending more time at home. But for us going on Shark Tank was really, it's catapulted us truly. First off, we've had our first infusion of capital. I guess I can give away what happened. Joe: We received a million dollar investment from one of the guest sharks, Daniel Lubetzky, who's the founder of KIND Snacks. So, he's a very mission-driven investor who has a similar track record as us in terms of rolling up his sleeves and taking 10 years to build what he's built. And so, he's been through the trenches, but our experience in Shark Tank was, I mean, since Shark Tank, we've definitely seen a huge uptick in sales and we've been able to put some systems in place to really shift our business towards more of a direct-to-consumer model. Joe: And it's only been a month and a half since we were on the show. So, we're still living through a lot of the chaos that comes after you're on the show. Stephanie: Mm-hmm (affirmative). So what kind of unexpected chaos came? Because I'm sure you're like, "Oh, we're for sure going to get more sales," but what things happened or what surprising things happened after you were on the show or maybe during the show? Joe: Well, we honestly had no idea what to expect. We talked to some other entrepreneurs that have been on the show and have learned that it's different for everyone. It depends on what's going on in the world at the time that your episode airs. I talked to one person who was on the show during a massive snow storm and people were at home watching and he had a product that really fit the times. And so he did really well. Joe: And I talked to other people who were like, "Oh, it was okay." So, we just had no idea. And then going into this also, we're going through such a crazy time where we just didn't know if people are, how bad people are impacted economically. And so, we didn't know how to prepare inventory-wise, we didn't want to overinvest in inventory. That's been something we've really tried to hone in on and not hold inventory too long, have some of those kind of basic business principles baked in. Joe: But we've seen sales have far exceeded our expectations and it's broke a lot of the systems that we've had and created a lot of inefficiency now as we're trying to catch up. And going back to your question around the supply chain, on the one hand it's been a challenge, but we've also been able to catch up pretty quickly. And I think having a vertically integrated supply chain like we do and really great relationships with our weavers is what's allowed us to not lose out on, we're not leaving too many sales on the table and trying to take advantage of everything that's going on, keeping our foot on the gas. Joe: But it's been just the uptick in order volume within a short amount of time and sustained order volume has been something that's new to us. And so, it's been a fun challenge to work on. Stephanie: Yeah, that's amazing. Congratulations. Getting a million dollars from Shark Tank is awesome. And you went in only asking for 400,000, right? Joe: 400,000, yeah. Stephanie: That's crazy. Joe: Yeah, they have a great clip at the end where Kevin O'Leary goes, "It's never happened before in Shark Tank where someone comes in for 400,000 and comes out with a million." And honestly, we had no intention of raising a million dollars on Shark Tank. I think, yeah, we're still like, "Did that just happen?" Stephanie: Did it hit your bank account pretty instantly or was there a whole process behind it? Joe: There was definitely a whole process. You go through due diligence after, it's more of a handshake agreement on the show. And so, we ended up closing and then went to work afterwards just preparing to be on the show, making sure that everything was in place for us to have a successful airing. Joe: And this was before COVID existed, so we did not anticipate what the world would look like when the episode actually aired. But it's great to see some money in our account for the first time and actually be able to think a little more strategically, so- Stephanie: That's always a good feeling. Joe: ... definitely a different business today than, yeah. Yeah. Stephanie: So, what was the first thing that you invested in after that cash hit? Did you have a plan for it or what did that look like? Joe: So, we knew we needed to build our marketing engine. Prior to getting investment, we were very bootstrapped, we would reinvest all our profit and we were always getting pulled in a lot of different directions. And for once we can actually focus in on updating our website and really making sure we're telling our story and being a little more deliberate in the communications through our website. And so that was several months of a project and also focusing more on product development. We've got this new product called the hammock throne, which is a new category of its own. Stephanie: I need the throne because I consider myself a queen, so I like that. Joe: So, putting money towards that and making sure that we're positioned for this next phase of growth with product development and a really good Ecommerce experience was the first two things. And we're continuing to reinvest into those areas right now. Stephanie: Very cool. Do you ever test with the messaging on your website? And if so, what kind of testing do you do and what do you see works best to tell the story? Joe: Yeah, we've done some light testing. And the one thing we've tested the most, I would say, is how we message the product and the impact. And it's always odd to us if we ever lead with impact and the artisan story, it doesn't resonate as well as telling the product story. And so, we continue to test and we continue to iterate how we're communicating that because obviously impact is super important to us. It's baked into our business model, it's why we started, but the product is what makes it sustainable. Joe: And so, we're trying to really weave that into the storytelling more, but that's one thing we've, every time we test it, product story always wins. But we're starting to really get that striking a chord with more about how we tell the impact and how the impact story really contributes to making the product superior and what the benefit is to our customers. Stephanie: Yeah, that makes sense. I did go on your about page and I was watching more of the story of the weavers and I couldn't stop watching. It was like one of those addicting memes or videos where you're watching someone knit something and I'm like, "Oh, I can't look away." That's a really good video. Joe: Thank you. Yeah, and that's how we're now figuring out how to really tell that impact story of showing how it's made, showing the people that are making it. Every hammock is also signed on the label by the woman who made it. Stephanie: Oh, cool. Joe: And so, we really want to connect customers to, there are real people that are so enthusiastic about every single sale that we get. It's awesome. And we want to connect our customers with our weavers. And so, that video is something that it took us a while to get. Again, just not having raised money up until recently, everything came naturally and organically and over time, but those are things that we've tested out and seen how once we're able to show how it's made, that's one of our advantages. A lot of products are just made in I guess more of a boring way. I'm not sure, but just not in the same environment. And so, there's this beautiful craftsmanship that we want to showcase. Stephanie: Yep. Yeah, I probably would not watch how my office chair was made, but yeah, that I could not look away from. Joe: I did just get back from an office chair factory as we were figuring out the hammock [inaudible] that's was... I do think... Stephanie: What were you doing there? Joe: We were sourcing components for the hammock [inaudible] because we're getting into furniture. And I think that just showing how things are made should be done more. I think it creates more transparency and connects people to where things are coming from, which is important for sustainability and just awareness around that's important stuff. I would challenge that and say, even the way office chairs are made, at least maybe I'm just a geek around manufacturing and production, but I think there's some, I don't know, I saw some cool things that I thought other people would be interested in. Stephanie: Well, if you take a good video, I will be open to watching it and- Joe: Absolutely. Stephanie: ... seeing if it's as enticing as watching someone weave a hammock together. Joe: Yeah. Stephanie: So, when it comes to new products, you just mentioned that you guys are looking into getting into new products. But one thing I saw on your site was that you could actually build a custom hammock and it made me just think about, how did you decide that you would allow consumers to build a custom hammock and how does that get to the weavers? Because it seems like it would be easier just to have like, "Here's our three products, and this is what the weavers know how to do, and this is all you can order." What was that thought process like allowing a customer to create their own? Joe: Yeah. We had a lot of debate around whether or not we wanted to pursue that because it does add extra work for us. We figured out what would be the premium cost. I think it's a $50 premium to make a custom hammock. The process has evolved over time and we're getting more towards a tech-oriented solution in this next iteration. But there's a design guide that we share out with customers. Joe: Right now it's pretty manual. You order the custom hammock, we then email you a design guide, a PDF that you fill out. So you can't actually see the hammock, but we have a lot of examples in that design guide and you can see the different colors. And it's worked really well, but what inspired us to do that was more around just realizing we have the ability. Joe: We have a very design-oriented customer, or at least one segment of our customers are very, in that interior design world. We also were previously, we did a lot of collaborations with companies like Anthropologie — we made all the hammocks for Tommy Bahama and other brands and realizing that they wanted something unique to them and limited edition collections and things like that and that we have the ability to do that. We realized maybe individual customers also have that preference and to make something that really fits their space as they're designing that area in their home or backyard. Joe: And so, we tested it out and we got a pretty good response and realized it was something we can do. And it's allowed us to differentiate as well, but also just another way to add value to people. And I think there's this broader trend around customization and less mass market products and things that really represent your personality and your style and things like that. So, we really lean towards that and wanted to empower our customers to be able to do that. Stephanie: Yeah. That's awesome. So, are you guys in retail or are you only doing direct-to-consumer? Joe: When we first started the business, we basically were trying to get any sale we can get. There's that bootstrap approach, just hit profitability as quickly as possible. We weren't really deliberate about where our sales were coming from, didn't have the resources for one strategy or the other. And as we grew and started reinvesting and we became a little more strategic and we focused on, our business was at, a year ago, it was probably 50/50 between retail partnerships and Ecommerce. Joe: And we've obviously started shifting heavily towards direct-to-consumer with stores being shut down, but other reasons as well, I think we were going in that direction anyway of being more direct-to-consumer. And the other thing that we're focusing on, thinking about more longterm is, I don't think we're going to not sell into retail. We're just going to be more strategic around who we work with and making sure that our story is really told well, the product showcased well, it's definitely a hard product to merchandise. And it's an easier story to tell on the internet with video like you mentioned and being able to really focus more on storytelling, which is a big part of our brand. Stephanie: Yeah. That makes sense. What kind of issues did you run into when you were going into retail, outside of COVID and everything, but what problems did you encounter? Joe: Well, taking up space on store shelves, packaging, we didn't really have retail ready packaging. And so, going through a couple of iterations of different displays, things like that, it took so much time to develop. Also, payment terms aren't flexible with most retailers, things like that. We pay our weavers immediately upon completion of the hammocks and some in advance. Joe: And so, just the whole retail business model wasn't really friendly for our art model. And we constantly were up against having to negotiate for better terms, having to figure out how to display the product in a store. And it's always just been so much easier to do it online. Stephanie: Yep. So, earlier you mentioned that when you started getting more orders, a bunch of things broke. What kind of things started breaking first and how did you go about fixing them? Or are there any best practices where you're like, "Well, when you have this happen, we saw this work, then this didn't?" Joe: So, I would say on the supply chain side, a lot of the efficiency that we had created just broke in the sense of... So, when we first were working with eight women, we were able to really go to someone's house and collect hammocks. And it was very manual and individual. As we grew to 200 weavers, we created a little bit more of a schedule around when we would drop off yarn, created a central location and standardized some of the things around collecting hammocks and payments. Joe: And after the Shark Tank appearance, our sales, we far exceeded what we expected to sell. And so, we ended up going on back order and still working through a lot of that right now as we speak and ended up having to go door to door again, completely lost all the efficiencies that we had, just trying to get the hammocks to the customers as quickly as possible. Joe: We started drop shipping directly from the communities where they're made in Thailand direct to customers homes. And so, a lot of the efficiencies just broke down and those things are compounded as you continue to stand back order. And so, that's one thing. The other is that when we relaunched our website in the beginning right before we went on Shark Tank, we had all these plans to continue innovating testing and a lot of those plans just fell by the wayside because we were putting out so many fires around being on back order, trying to get more yarn. Joe: There are so many challenges right now with global logistics. So, getting hit from a lot of angles. Stephanie: Yep. Do you see the industry evolving around logistics in the future? Because it seems like so many brands were maybe dependent on one location or these couple of factories or something. And if they're down for the count, you're in a pinch, how do you see things evolving in that part of the business going forward? Joe: Yeah, that's a really interesting thought to try to predict what will happen. But I definitely think a lot of brands are reliant on just one manufacturer and there's reasons to maybe figure out other backup solutions. I think we'll definitely start seeing that it's definitely wise to not just be fully dependent on one supplier. But it's going to be really tricky because in the U.S we're just not set up to manufacture a lot of things that people buy here. And so, it's not like it's going to be a sudden shift to bring manufacturing back. Joe: And globalization, personally, I feel like has had a positive impact on prices of products for people and accessibility to different things, but we're retracting a little bit, so I don't know. I'm definitely closely watching it and thinking about how do we look at different yarn suppliers and raw materials and maybe have more options just in case. Joe: But I think we're also inclined to not create a problem and just stick with the status quo. I think a lot of businesses are that way, so it's a little bit of a balance of putting some resources towards planning for worst case and also keeping your foot on the gas and keeping up with what's actually working now, but things will certainly be changing in the coming year. Stephanie: Yeah. Completely agree. So, with everything going on and all the chaos that you just mentioned, have you been able to focus on your content and marketing strategy? And if so, what does that look like for you all? Joe: Yeah, we've been definitely trying to scale up our content strategy. It's a little too early for us to report anything significant, but one of our, an area that I think we've done it really well in is having a lot of user-generated content. And if you look at our website, most of the photos on there are actually taken by our customers and this might have been a benefit of being bootstrapped and that we didn't have the resources to do a lot of these full-on photo shoots that bigger brands have been able to do. Joe: And that's allowed us to have real people in our products and to be able to show that to our customers, creating that relate-ability. And we're definitely wanting to continue that, and we're hiring now, trying to build out the content arm of Yellow Leaf more and focusing more around what a hammock represents in your life and relaxation and really shifting our mission a little bit more towards making relaxation a daily ritual in your life. And so, focusing our content strategy more towards that. Joe: And so, being a little bit more deliberate around our photography too and really showing the product in different places and how to use it. It's a little bit of a technical product in terms of how do you set it up? Where do you place it? And so, going forward, we're really focusing on being able to create content that showcases and answers a lot of those questions. Stephanie: Yeah. Yeah. That's definitely a good move. I also saw on the reviews, people were able to select where they place their hammock, and I thought that was so important because then you can be like, "Oh, she's like me and she put it in her backyard," or they put it in their kid's room. And it just helped you visualize, "Okay, it must not be that hard if a bunch of people are able to do it." Joe: Yeah, exactly. And that's where the user-generated photos that we have come into play. We also included a 12 page hammocking 101 guide book with every purchase. Stephanie: That's good. Joe: So, it has a lot of resources on how to hang it, where to hang it. Everybody sets it up a little bit differently. And so, as we look ahead, developing products that allow you to really be able to hang a hammock anywhere, there's more of our focus going forward. I think we've done really well with perfecting the woven hammock and now making sure that we can increase the amount of hammocks we can sell and the way people can use hammocks and making it a more integral part of our culture in the U.S. And so, that's the biggest focus for us in this next phase with solving that how to hang problem. Stephanie: So, when it comes to, you were mentioning UGC earlier, how do you encourage your customers to post those images? Joe: Well, I think for us, we're fortunate in that it's the type of product that people like to brag about. So, we definitely see a lot of people who are excited to use it. And so they're like, "Hey, take a photo of me," and they share it. And we try to really monitor social channels. I wouldn't say we have a massive audience compared to others yet. It's growing right now, but we try to really connect with people individually and have them share those photos with us directly so we can reuse them and just engaging with people one-on-one has helped. Joe: And then, more people see others sharing and they share. And so, it just builds on itself. Obviously, we send out the post-purchase review requests and anytime we communicate with customers we're always like, "Oh, we'd love to see your photos." And it makes our day to see that. And I think they're excited to share. And so, we try to keep that momentum going post-purchase. Stephanie: That's great. So, for a product that's pretty durable, probably going to last many years, what's your idea around increasing the lifetime value of a customer? How do you bring them back? How are you trying to get them to buy more than one product? What does that strategy look like? Joe: Yeah. With hammocks, it's obviously you would think a onetime purchase, and we were really surprised with our findings once we started really looking at the numbers behind our sales. And for us, it's about just under 20% repurchase rate within first year of purchase. And so, we were just shocked that for a hammock that we were seeing that. Joe: And what we learned was that this was such a great gift for people. And we started communicating that more once we discovered that so many people were gifting hammocks to a new, if someone, a friend buys a new home, get them a hammock. That's a great wedding gift. It's unique, it's different. And so, we've started really showcasing a lot of that gift giving more. And so, that's helped with the repeat sale. Joe: But that aside, we're also looking at how do we add more products? How do we build out, there's that space in your backyard that compliments the hammock? So, you buy a hammock, but there's other things. What else are you buying to create that space? And thinking about building more of a robust home and backyard brand centered around the idea of creating that relaxation space. And so, what can we do to add more value there? That's the product philosophy is more around hammock-inspired products, I guess. Stephanie: So, earlier you were talking about creating different messaging around relaxation or gift giving and things like that. What kind of marketing channels are you seeing success with? Joe: I would say right now, definitely the basics of being on Facebook and Instagram, especially for a very visual product like ours is great. We see a lot of success there and we've really tried to focus in on those. In the earlier days when we were starting to really focus more on digital marketing, we cast a little bit of a wider net. We found Google to be really expensive, really competitive and narrowed it down to, let's really figure out Facebook and Instagram before we start branching out elsewhere. Joe: And so, that's what our key focus right now. And we're also seeing with a lot of bigger brands moving off of Facebook right now with things happening politically, we're seeing prices come down a little bit. So, it's a smaller brand, it's honestly benefiting us. And so, we're trying to take advantage of that to be totally transparent. Stephanie: Oh, yeah. We've had a lot of brands, smaller brands say that as well, so you're not the only one. Joe: Okay. Yeah, and it's great. I mean, I think things are always shifting. The more people jump on a particular marketing channel, the cost increase, so you have to be really nimble. And for us, this is also new. We're also focusing more on Amazon these days. And so, I would say that's another really, it's been a great sales channel for us too. Stephanie: What was that process or what does it look like selling on Amazon versus B2C? What kind of things do you encounter while selling through their platform? Joe: Definitely very different. You lose a lot of control. Amazon's broken up between seller central and vendor central. And seller central you warehouse the product on your own either in your warehouse or put it in Amazon's warehouse so that you can offer prime shipping if you do that. But you have more control on that end. And on vendor central, they purchase direct from you and on the inventory and therefore their algorithm prices your product. Joe: And so, if you have a minimum asking price map pricing like we do, we never really discount our products. And so, you're constantly having to monitor and make sure that the product is represented the way you want it, which is really challenging. But at the same time, so many people are shopping on Amazon. Joe: And I think when we were first starting to shift more towards direct to consumer, we had a little bit of pride around thinking, "Oh, we're just going to be on our own website and some select retail channels." And really again, I don't think that's wise, I think you want to be where your customers are, particularly for your category. And for hammocks, we had an opportunity to really stand out on Amazon because it's such a commoditized category. Joe: And so, we definitely, yeah, we made this decision and it's worked out well for us, but there's definitely challenges around being in control of how your product is showcased and there's less customization and so forth, but a lot of people [crosstalk 00:43:39]. Stephanie: How do you stand out on Amazon? Joe: You can pay a little bit of money to be able to create your page. I think it's called A+ pages. And really you're still working with their templated sections, but really focusing in on like, what are the core things you want to showcase? And you have to stick within those walls. But trying to make that section mirror our website as much as possible and just having good customer service on Amazon as well is important. Joe: You do lose a lot of that control when you're selling on Amazon, especially if you have such a, you're trying to build a brand and not just another kind of a trinket type product. But again, if people are especially already aware of your brand, like for us, we saw after Shark Tank, people would go to our website, but also people would check Amazon just because Amazon has such a strong reputation for quick delivery, easy returns. And so, why compete against Amazon when you could be on there and increase your sales to reach more customers? Stephanie: Yup. That makes sense. So, how do you build, I mean, we've had a lot of our, we do a survey for some of our listeners and many people ask about selling on Amazon. So, what kind of optimizations do you do to your page, or are you experimenting with where you're like, "This is working really well or make sure you pay attention to this part." What kind of things are you looking at when it comes to creating a different page that gets found and it's enticing and still tells your product story and the background and all that? Joe: I would say we're still learning a lot, but one thing that's worked for us was to move all of our products under a single page so you can click through the different views all in one page. And for a while, we thought that would be a bad thing to do because if you're searching for a particular product and you only see one design, you might not click on it. We found that to not be true. Joe: Once you click on, you actually land on the product page, you can click through the different designs. And so, keeping people all on one page. And I guess you can apply this to your website as well. And Amazon obviously tests these things and we started just following whatever their best practices are. And it also allows you to have all the reviews for all of the products on all in that one page versus broken out across 30 plus views. Joe: So yeah, I mean, generally we're just trying to follow their best practices and take their advice on how to set your page up and just stick to the basics and good photography obviously is a given too, so that's been important. Stephanie: Yeah. A previous guest also mentioned that, let the algorithm do its job, or like you said, let Amazon tell you best practices, because he was just saying that a lot of people will try and just do something different because they think they know more and instead it's like stick with what works and what the brand is telling you what works and see how that goes first. So, yeah. Joe: Yeah. Yeah. Stephanie: That's good. So, earlier you were mentioning your website, is there any new tools or technologies that you're playing around with right now that you're seeing help conversions or maybe before you were seeing cart abandonment and now you're not, or you were dropping off traffic from the homepage and now you're not anymore? Anything that you've had success with on your website? Joe: For us having the live chat functionality is really great. And rather than having something that pops up and is in your face right away, just having a subtle message in a corner that you can click on and you can ask questions and if we're on, you can chat with somebody right away. Oftentimes it's been turned off lately just because we still have a pretty small team. Joe: But you can, instead of going to a contact us page, having that there, we learned that for our customers, that was really important. A lot of people have questions before purchasing. And so, making that readily available without a way that's super intrusive to their site browse-ability. And then having a popup with really good messaging around. What's the value to you to sign up to our newsletter and not just trying to throw another discount in your face, because again, for us we're not able to really discount heavily. Joe: And so, those two things have been probably the greatest for us. But we're continuing to develop our site more and add a little more functionality and features. And so, but yeah, we're just, again, sticking to what works and following... We oftentimes look at maybe what other brands are doing and get inspiration from them. Joe: If you're small like us, what we've learned is that there's no point in reinventing the wheel. And bigger companies like Amazon and other Ecommerce companies that have huge markets that are testing things constantly, you can really learn a lot by looking at what they're doing. And so, yeah, we're testing on our own, but also taking cue from others. Stephanie: Well, that's a good question then. What kind of other brands are you looking at? What Ecommerce companies do you keep an eye on? Joe: Definitely some of the big marketplaces like Amazon and Wayfair, very different from our website and they're more of a marketplace but just what their experience is like for customers is great. Actually, another company that we look at our category specifically, The Inside, who I think was on your podcast. They do an amazing job. We were looking at a lot of furniture and direct-to-consumer brands who are also selling products that require a lot of thought before purchase and how they're communicating some of the questions that people have when they're shopping for their home like Parachute Home, Floyd, or another furniture company. Joe: And also I would say some of the early pioneers and direct-to-consumer brands like Warby Parker, Away travel, who's done a really great job. And so, yeah, looking at the companies that have been able to raise a ton of money, grow super fast, build those departments out, what are they doing and how can we tailor some of those best practices towards our own business has helped. Stephanie: Cool. Yeah, I love that. So, before I move into a quick lightning round, is there anything that I missed that you were like, "Man, I really wish we had talked about this?" Joe: I mean, no, I think we covered so much. Stephanie: We did. All encompassing. Well, cool. Then we can move right into lightning round brought to you by Salesforce Commerce Cloud. So, this is where I ask you a question and you have one minute or less to answer. Are you ready to go? Joe: Ooh, great. Let's do it. Stephanie: All right. What's up next on your reading list? Joe: Ooh. I am really looking forward to reading something that is non-fiction. Honestly, I've had my head down for so long that I have not had a chance to actually kick back in one of our own hammocks. And maybe I have to do a little staycation. So, I'm looking for a book that can take me away from all the work stress and everything else. I can't say I have one right now. But I would encourage people to... I'm sure a lot of your listeners are always looking for ways to improve, innovate like I am. And I think I've always found value in trying to step away from that. And so, I would say I don't have a book on my list, but I would recommend A Gentleman in Moscow, which totally takes you to a whole different world. Stephanie: I like it. Joe: And that requires all sorts of great creativity when you do that. Stephanie: Yep, completely agree. What is your number one recommended spot when you go to Thailand that you would tell other people, "You have to go here?" Joe: I would say if you're going to Southern Thailand and doing more of the beach thing, take the extra step to go further from, a lot of people go to Phuket, which is great, but get on a boat, travel a couple hours further. And there's hundreds of islands to choose from. Honestly, pick any one of those. I would say Ko Lanta is great. It has a little bit of everything, but just, yeah. Go a little bit further, a little bit further away from the people and allow yourself to have that experience of truly being remote. Stephanie: Yeah. That's awesome. What is the favorite piece of tech that makes you more efficient? Joe: I would say, I mean, I love my MacBook Pro. Stephanie: Same. Joe: Yeah, thing is great, I take it everywhere. But everyone's got a computer these days. I would say, I don't know. Lately it's been just my computer because I've been staring at it for so long lately. Stephanie: Makes sense. Yeah. As is all of us. If you were to have a podcast, what would it be about and who would your first guest be? Joe: It would be around relaxation and how to live a more values-oriented life. And my first guest would probably be, I would say, Wim Hof, maybe. Stephanie: Ooh, that's a good one. Joe: Yeah. Stephanie: I was just watching a series about Iceland. It reminded me of him doing his cold plunges and yeah, he's great. Joe: Yeah. He's figured some things up. Stephanie: All right. Well, this was a great lightning round. Where can people find out more about you and Yellow Leaf Hammocks? Joe: So, our website would be the first place we recommend yellowleafhammocks.com and also our Instagram which is Yellow Leaf Hammocks. So yeah, looking forward to, yeah, seeing where things take us after this, but thank you so much for having me on. It's always a pleasure to share our story and hopefully add value to others. Stephanie: Yep. Yeah, it was awesome. Thanks so much for coming on Joe, and we will have to bring you back after all the Shark Tank craziness dies down and see how you're doing in six months to a year. So, that'd be fun. Joe: Yeah, that would be amazing, Stephanie. Stephanie: All right. Thanks Joe, have a great day. Joe: You too, bye.

Up Next In Commerce
A Formula For Ecommerce Success

Up Next In Commerce

Play Episode Listen Later Jul 28, 2020 56:19


What is the right percent profit margin you should target for your products? How do you get the most out of your Facebook ad buys? How much should you really pay attention to conversion rate? These are just a few of the questions that every small business and Ecommerce shop wants the answers to. On this episode of Up Next in Commerce, we picked the brain of Andrew Faris, the CEO of 4x400, a company that has helped grow numerous Ecommerce companies from less than 500,000 into the tens of millions. Today, Andrew spills some of his advertising secrets, including how to make Facebook your core driver for customer acquisition. Here’s a mini spoiler: human bias is leading you astray, but there is a simple way to correct course. Find out that, and more, on this episode! Main Takeaways: Conversion rate is so context-specific that it's not that helpful of a metric. Instead, analyze conversion rate relative to average order value and relative to the traffic sources the customer came from. Before you invest in anything else, you need to drive traffic to the top of the funnel. Currently, Facebook ads are the core driver of customer acquisition for online shopping. Andrew suggests that most Ecommerce brands should invest in the platform and then trust the algorithm to put you in front of the right audiences. You have to take big swings with your experiments. Don’t get hung up on micro-details like the color of your buttons or rewriting your copy. Instead, find big ways to make changes and then see how the outcomes stack up. Because we are all riddled with our own biases, we often cannot predict accurate models of the future on our own. Instead, use data as your guide as you peer into the future. For an in-depth look at this episode, check out the full transcript below. Quotes have been edited for clarity and length. --- Up Next in Commerce is brought to you by Salesforce Commerce Cloud. Respond quickly to changing customer needs with flexible Ecommerce connected to marketing, sales, and service. Deliver intelligent commerce experiences your customers can trust, across every channel. Together, we’re ready for what’s next in commerce. Learn more at salesforce.com/commerce --- Transcript: Stephanie: Hey everyone. This is Stephanie Postles, co-founder of Mission.org and your host of Up Next in Commerce. Today on the show, we have the CEO of 4x400, Andrew Faris. Andrew, thanks for taking the time. Andrew: Stephanie, I am very glad to be able to do this. I have never been accused of not liking to talk about Ecommerce in particular, but just in general. So this is fun. Stephanie: Well, you're my perfect guest then. I was creeping as one does on your LinkedIn. I saw an interesting thing that you have a background in religion and theology. I was wondering how you transitioned into the world of business from that background. Andrew: Yeah. I can always tell when somebody has looked at my LinkedIn or not because that's maybe the only place where that's found anymore. Stephanie: You're welcome. Andrew: Yeah, yeah. No, I went to school for biblical studies, and then got a master's degree in New Testament. So that was my whole pathway, was to go into that and actually was a pastor for a while. Did that, and then about ... gosh, how long ago? Five and a half years ago stepped out of that not because anything in my faith changed per se, but just because I was just rethinking a bunch of stuff in my life and reworking a bunch of stuff in my life. So it's just total life change in all kinds of crazy ways. I didn't have a clue what I was going to do actually. Andrew: That educational pathway doesn't have a direct connection to almost anything that's not work in a church or academic setting or something like that in theology. So, I really loved that education a lot, but I was figuring it out. So I called a friend of mine named Taylor Holiday, who ... and I was talking to him about if there's any available work in his world of work. Just basically as an in between thing while I figured it out. I just thought I'll just go do something for a couple months to figure out what I want to do. He said, sure, and brought me to a company called QALO, Q-A-L-O. If you've seen the silicon wedding rings that are for- Stephanie: Oh, yeah. Andrew: .. on the internet a lot, QALO was the first big company of those. QALO went zero to 20 million in a year and a half and was not funded. So, I was bootstrapped. I went there and it was just growing super, super fast. Also, being not funded and being a bunch of people like that, it just meant that they just were, in those worlds probably some of your listeners probably know this story a little bit, which is like, you just find people who can do stuff in that setting. I literally started in the warehouse. At one point, I sat down with Taylor, who's now one of my partners. Taylor was running marketing for QALO at the time. His brother was one of the founders. Taylor said, "Hey, you've got a mind for numbers," which he knew because we were in a Fantasy Baseball League together and knew that I was a big baseball stat nerd. Andrew: May not be interesting to many of your listeners I'm sure, but I have a lot to say about the interplay of thinking about sports through statistical lens and thinking about Ecommerce. Anyway, so that was the origin. We had been in this fantasy baseball for a while, "I know you have a mind for numbers, why don't you learn Facebook ads and Google ads and learn digital marketing?" I said, sure, but still I was not really sure what I wanted to do in the longer term. But I was like, "All right, that sounds fun." So, did that and loved it. Andrew: I mean, I was so totally unaware of what was happening, but I still remember the first conversation I had with Taylor in a bank where he told me what I'd be doing. He's explaining to me how Facebook ads, Google ads worked and said, "Is it okay? Well, here's the deal. You get customers into the funnel with your ads and then you drive ..." and I stopped him in the middle of that sentence and said, "What's the funnel?" That was where my digital marketing knowledge was at. From there, that ended up being the pathway to the digital marketing and Ecommerce career growth. So I was at QALO for a while, went to CTC, the agency that owns our company, owns the majority of it and became the head of strategy there. And then now I run 4x400. Andrew: Yeah, it was a crazy set of circumstances with Taylor. We actually went to junior high together, but had not reconnected because of that. We reconnected outside of that. So, just weird circumstances. Stephanie: That's interesting. Andrew: This gets into my life philosophy a little bit. I'm a believer in divine providence and think there was some of that happening around. Stephanie: For sure. Yeah, that's awesome. Always good to be in business with someone who's willing to bet on you because you have that beginner's mindset and it's probably why you're doing so well. But I'd love for you to detail a little bit about the structure of CTC and 4x400 in the holding company structure because we haven't had anyone on the show quite like this. So, any details around what 4x400 is and how it's connected to CTC would be great. Andrew: Yeah, sure. Common Thread Collective, it grew out of ... Taylor was building the agency alongside the growth of QALO. Started really focusing on Facebook ads. CTC does a lot more in that now, but CTC is now a full service digital sales agency. We said digital sales sell digital marketing because what we're doing is selling things on the internet, it's consumer goods, really focusing on Ecommerce entrepreneurs. The mission of CTC is to help entrepreneurs achieve their dreams. So that's really what we're about. We're specifically really good taking people in somewhere in the journey from zero to 30 million. Andrew: I was a strategist there and then became the head of strategy there. CTC continues to grow and do well. Taylor Holiday, as I mentioned is the managing partner of CTC. Andrew: In the midst of that, we also were like ... I mean, we came from this background of starting QALO. Taylor also was early on with another one of our partners named Josh Rodarmel who founded Power Balance. If you don't know Power Balance, Power Balance was the really popular silicon bracelets that were worn by athletes for a long time, still are worn by some. Andrew: That company was another super crazy fast growth company. I think they were zero to 50 in a year and a half. Yeah, I think that was the number. But anyway, I did on the brand side selling consumer goods in those worlds. We're like, why don't we launch our own brands as well? So, that's how 4x400 started. Eventually I went over to that side of the business. We started with building our own brand from scratch. It totally saw giant failure called [inaudible] company, just a huge waste of money. It doesn't exist anymore. It was sports themed baby goods and it just ... there are a lot of reasons that didn't work Stephanie: Wait, sports themed baby goods, so- Andrew: Yeah, yeah. Stephanie: ... like onesies. Andrew: Yeah. Like onesies that look like football uniforms. They're adorable. I don't know why nobody bought them. Stephanie: Okay, that's super cute. I'll buy one from you. Andrew: Yeah. I think that you'd have to go find a flea market in Northern California somewhere. I had to go get it every day. Stephanie: I will find one, I actually need to for my twin. So, it'll be a long journey, but I'm going to do it. Andrew: Okay. You're in Northern California, right? Stephanie: Yeah. Andrew: Yeah, I think that's who we sold to, so [inaudible] don't worry. We did that, and then realized actually most of our skill at this point ... most last couple years that we have really been spent after we'd gotten out of the brand side so much growing brands, not so much building brands. So we thought, why don't we just do that? Now our model is, at 4x400, we work with entrepreneurs who are in early stages and feel a little stalled out. We provide them with a team around them that can help them grow it. 4x400 mission is also to help entrepreneurs achieve their dreams. We just do it in a different way than CTC. Andrew: CTC does that the traditional client relationship 4x400, takes the majority share of the brand. And then our goal is to make it so that by bringing us on as a partner and all of the expertise and resources we have around finance operations, marketing, growth customer service, even just really thinking through the whole system of what it means to be a great Ecommerce brand, we can help brands grow. We just closed actually our fifth brand that is currently in our portfolio. We're hoping to close another one soon. Who knows by the time it comes out, if that will happen? We're trying to work with brands who are doing less than half a million in revenue and saying like "We can try to grow you from there." CTC is the majority owner 4x400. 4x400 is the majority owner of these brands. So there's this giant web of relationships there. Stephanie: Yeah, okay. That helps me understand the landscape a bit more. How do you think about acquiring brands, how do you find brands that are willing to say, "Okay, we'll give you a majority share and come under your company"? Andrew: Yeah. Well, there's a few ways. CTC is a magnet for some of them. Sometimes brands will come to CTC and CTC will say, we're not the right partner for you. You're not a place where you can afford us. One piece of advice I have for a lot of it was like, if you are paying an agency not very much money you should really think about whether the agency is good because agency economics just require, for you to get great service, they typically require a pretty good investment. Just think about it. Agencies exist by marking up people's time. So, an agency works well if they are able to attract and train great talent by nature of access to large amounts of information. Andrew: The value of an agency is that they are spending millions and millions of dollars of other people's money on stuff. So, it's information arbitrage in that respect. You can come to an agency and get that information applied to your brand in a way that maybe an in house resource can't always do because they just are not going to have the visibility to as much of what's going on. For that to work, then you have to mark up that time of high quality, talented people who are probably not cheap. And then also for something like Facebook ads, Google ads, and then oftentimes there's a creative element of that and a writing element of that, and a strap gentleman have that, so that means you got to pay designers and other people like that too. And then there's web dev parts of it. You start to put that all together and if it's too cheap, then you have to be going like, wait a minute, what am I actually getting here? Andrew: Some brands in the early days, will come to ... they'll be stalled out or come to CTC for resources. CTC will say to them, actually you can't really afford this. What we actually think is a better solution for you is to talk about a deeper investment where we can really surround you with more stuff. What we find is a lot of entrepreneurs love product building and customer communication in certain ways. They love their customer, they love their product idea people, but they don't necessarily have all of the skills around everything else it takes to grow a brand. In fact, they don't want to do those things. Andrew: Most entrepreneurs don't start brands because they love finance, they don't. They don't even necessarily love tactical marketing. A lot of times what we can say to them is, "Let us take all that stuff that you hate doing anyway from you, you feel overwhelmed and stalled all the time anyway. You come with us, we'll pay you a consistent salary," which is also a big help to some people who are going like, I just don't even know if I can perform this anymore. We'll help you grow. Some entrepreneurs want to stay on, some don't, some just wants to take it. So it really depends on each entrepreneur, but that's basically a lot of how we think about it. Andrew: And then for us, we evaluate the brand by saying like, "Does it have basic product market fit and basic fundamentals to where we think as we bring in all of our tactical expertise and all of our specific expertise in various disciplines that we can then apply that to the brand and grow it?" A brand who comes to us who hasn't really invested much in paid media, but has done 100 to $300,000 in revenue, we look at that and say, "That's ..." Actually, we have a really high amount of respect for that. It's really hard to do that, it's hard to do $100,000 without being good at Facebook ads. It's not easy. So we look at that and say like, "Good job. We don't think you're a failure. If you come to us and want our help, we think we get it." We look at that and say, "That's very impressive. Let us surround you now with resources that we can scale this to 10, $20 million in revenue." Stephanie: Very cool. How are your brands performing now? Andrew: Yeah, good. They're doing good. Andrew: I think COVID really helped Ecommerce brands massively. Two things happen at the same time. One of them is that large corporations who have diversity of sales channels, but were spending lots of money on advertising, pulled their advertising budgets the way the heck back. Of course, lots of other companies couldn't produce products. So they couldn't sell products in retail settings, so they pulled a lot of the budget back. They couldn't produce products because of supply chain problems. And then at the same time ... So that meant that in large auction based advertising work universes like Facebook ads and Google ads, ads got suddenly way cheaper really fast. Andrew: The way that works is that because those are built on an auction, if a lot of people leave the auction everybody's prices get cheaper. We've looked at this data across CTC accounts. There was a giant plummeting of advertising CPMs in those worlds. And then at the same time in the last couple months, conversion rate on websites went up because the only place to capture demand was online. You couldn't go buy stuff in the store. So if you're selling things on the internet, that's where people are buying things from. And then of course, the stimulus checks it. As people have noted, that actually ended up being one of the largest increases in revenue to the average American family in history. So, all of a sudden, people have money to spend. Whether or not they should have spent it on consumer goods is a different question, I don't really know. But they had money to spend. Andrew: The less places for that demand to be captured mostly on Ecommerce stores. And then also, it got a lot cheaper to reach those people with ads. You put that all together and Ecommerce did really, really, really well for a couple months. So that really helped us. There's no question about it. We're still feeling some of the positive effects of that. It feels weird to be a winner in COVID, but there's no question that Ecommerce brands were .. To varying degrees depending on the category you're in, for sure. Andrew: We have three brands that are in the established stage and not in the start it up stage. Stephanie: What account is established, is it a revenue metric or- Andrew: Yeah, a good question. I'd say a million dollars during 12 months, or a million dollar run rate. We would look at and say, "Okay, we're growing at the pace that we want." I can just give you some numbers. We're projected this year to go to have one of our brains go to 8 million, that brand did 100,000 in 2017. Last year, we really took it over halfway through the year. I think we ended at 750 for the year. So, that's definitely our fastest growing brand right now. Stephanie: That's [crosstalk 00:16:47]. Andrew: Another one- Stephanie: ... some good growth right there. Andrew: Yeah. We feel good about that. That's profitable too, which is definitely in our model. We took on a little bit of funding early, but not a ton of funding. We function more like a bootstrapped company. And then another one went from ... just a little over two years ago, we acquired it. It was basically doing no revenue, it'll do 3 million this year. Yeah, that's a different story. And then another one went from 250 to a million to just under two, this year, we'll do four to four and a half probably. So those ones are all we feel established growing at the pace we want, we feel really good about. Stephanie: Yeah. That's some impressive number. How do you grow these brands? What are some of your tactics and strategies that you rely on those, what do you see success with? How can someone else learn from what y'all are doing to grow their Ecommerce companies? Andrew: Yeah. Facebook ads is the core driver of customer acquisition for us. I mean, selling consumer goods direct to consumer online, Facebook ads is still the most powerful tool in the world for reaching people. I'm hearing chatter about other things, YouTube, Snap, even Tik Tok, Google ads, product's changing. I just think still at this point, at scale, depending on what you mean by scale, people define that word differently. But for us, that's the core, top of the funnel way that we get traffic to our website. Andrew: I mean, you think about what Facebook ads is, it's not buying ads so much as buying traffic. I guess it's both really. But we look at that and say, "If we can make the traffic worth more than we're paying for it, worth enough more that we're paying for it to cover the cost of goods and things like that," I should say, "Then we can win." That's how we drive top of funnel traffic for us. And then after that, we try to do everything that we think great brands should do, which is like create a beautiful website that treats their customers great, has generous returns and shipping policies as much as we can afford to do it basically, which varies from brand to brand, depending on a number of factors. Do a great job with your retention email and other automated flow stuff. Constantly testing conversion rate optimization on our site in various ways. There's just a whole bunch of that kind of stuff that we're doing on the backend of that. Andrew: We are also certainly looking to invest in other top of the funnel type metrics, our traffic drivers as well. I would think of Google search as mid funnel and Google shopping as mid funnel. So, we're definitely investing there as well. I think we'll keep doing other stuff. That won't work forever. There's going to be a cap to how much Facebook ads does the driver work and we fully intend to add to our customer acquisition approach when we can. But our goal has been to grow profitably and we think that's one of the best ways to do it right now. Andrew: The other thing is it's not just one of the best ways to do it, it's just that we also have deep expertise in it. So, I'm just a believer that do the thing you do well as much as you can. I think it works for leadership and working with teams. Just as much as we can set up our team members to be doing the things that they love doing and they're good at. As long as the things that people love doing and are good at create value for the company, then you should pay them to do it. So that's the way we look at it too. Andrew: Just coming from the agency side, I personally have managed, I don't know, 25 ad accounts, that's probably more than that. Seen a lot more of that when I was the head of strategy and working with other strategists. I don't mean that to brag. It means that now I have some intellectual capital built up on what works. So, that's what we use from there. Stephanie: Cool. To drill in a little bit deeper then for the Facebook ads because I think a lot of companies probably have looked at Facebook ads, maybe they're using it. I haven't heard of anyone growing liked you guys are growing your brands consistently. So what tactics are you using specifically, or what do you see works well? Andrew: Yeah, there's a lot I can say about that. I think this is going to sound so fishy, but if you're getting serious about that, there's a couple of things ... The thing I would actually tell you to do, if you don't know where to start and you're getting serious about it, is to go visit your admission.co. I don't know, maybe I can give you a link to this, Stephanie, at some- Stephanie: Yeah, we can link it up. Andrew: Cool, yeah. So that is CTC's education program. It's not a course, it's different than every other education thing I know of in this world. It's actually a moderated community with access to ... Taylor, the CEO of CTC is in there doing webinars like our team members, our brand managers and people like that. Also, might jump in there and do webinars exclusively for that community. What we're doing is teaching all of the things that are ... what we believe are really the best practices for Facebook ads from the perspective of creative, from the perspective of targeting, bidding, all that kind of stuff. Bringing people through all of those things and then giving them continued support with access to the actual CTC teams who are doing that same thing that I was describing, which is spending millions of dollars of other people's money, so you can have access to that knowledge set. I think it's 500 bucks a month right now. Andrew: I even say sometimes there's even executive level people who will take their whole team through it. It's not like you're going to be in it for forever. The point is that you can do that and get access to what we believe works best. We're always evaluating that. There are certainly other things to do there, but that'll give you what we ... We try to be really honest and transparent where we can about what we're seeing. So that will give you mental ways to think about that problem. Andrew: I think one of the things that can go wrong is you could listen to me talk about this, and maybe you're an entrepreneur and you hear my numbers and you go like, I'm going to go do that. You just blow money because you make simple mistakes that somebody could help you not make, if you've just got some support. There is no way to learn besides doing it really. You're going to make mistakes, it's okay. In my view, creative needs to be really product focused in the sense that it's on Facebook ads and Instagram ads. You are driving high quality traffic by giving people a clear sense of what your product is right away. Clear wins over everything else first as a baseline. Andrew: Clear doesn't make you give you the best out in the world. They're clear plus some other things do that, but clear establishes a baseline of what you can expect and at least drives what I consider high quality traffic to your side. People who are interested in you because of your product. So that's probably the first basic principle I would say is focus on being clear in your creative before you focus on being clever or funny, or any of those kinds of things. You can drive a lot of very cheap traffic to your website with Clickbait tactics, but they won't buy anything. Ultimately, it won't matter how cheap the traffic is if they don't buy anything. So that's the kind of thing I would say. Andrew: And then the other big thing I'm a huge believer in is trust the algorithm. There was a world where people talk about Facebook ads as the value of micro-targeting that was one of the phrases people would talk about. This idea that you'd go find exactly your customer really specifically target them without everybody else. I think there was a time when that was part of how you did it. Those times are gone. What I would say is what you want to do is give Facebook as much information as possible and let Facebook's algorithm predict the future for you because humans are terrible at predicting the future. Algorithms are pretty good at it. So, algorithms do a really good job of looking at the data set of who's responding to your advertising. And then going and saying, here's some more people like that to put you out in front of. So, we believe in really broad targeting. Andrew: Let Facebook have as much freedom as you can to go and find the next person to put you out in front of. Over time, not even over that much time, Facebook's amazing in this regard much quicker than Google is at this. Facebook will find who those people are. So that's the broad principles I would say is trust the algorithm, be clear with your creative. There you go. There's just so much more I could say about the Stephanie, but I'm going to stop there. So I don't take up the entire rest of the podcast. Stephanie: Okay, cool. Yeah, we will definitely link that up. I think it's a really important point too to segment a piece of your ad budget for testing. I know we do that internally as I'll tell. Our team members are like, "Hey, you have this much money. If you spend it and you just learn from it, that's okay. Versus this amount let's actually protected and make sure we drive results with it." So I think it's good to go into a mindset being okay with using a portion of ads for an R&D type testing project. So, you feel like you can learn from it, but not blow your entire budget on it. Andrew: Okay, no question. Constantly testing is super crucial. What I'd say about that is, when I want to test on Facebook ads, the place I want to test most is take big swings with your tests. The common thing you hear people say with testing, you'll hear people like, I've seen so many articles trumpeting like, oh, we changed our CTC button color or we changed it from [inaudible] now and it was a 15% lift. Andrew: First of all, I just don't believe those studies anymore. Secondly, the reason you're writing about it is because it's exceptional. It doesn't happen all the time. I just think that's a waste of people's time. But most people need to do, if they're looking to go from not successful to successful, the larger the difference in outcome you want, the bigger the change you need to make. You can't just change the background color of your ad and expect that it give you wildly different results. That's once you have results you like and now you're just dialing in and trying to grab an extra 2% of value here and there. I just rarely see that thing work. Andrew: What I would say is much better to think to test is something like, what's the offer that you're giving people? What's the product you're starting with and leading with? That can create wildly different results. We just ran something for our jewelry company that we ... 31 Bits, which is our other most recent acquisition, our fourth brand. We started with a batch of ads focusing on one set of products were necklaces and bracelets and things like that. We were getting a dollar of 50 clicks, low click through rates, et cetera, and very poor conversion rate. Andrew: We changed the product set, same exact brand, similar styles of photography, but just different products to a whole different category of product and saw triple or more the performance suddenly CTC went way down. Click through rate, went way up, conversion went way up. The reason why is really obvious, it's jewelry, some people like some bracelets better than others. If you just use the same stuff all the time, people are going to respond to it the same way over time. There's no magic to that. That's how people shop for something that you wear. It's about what it looks like. So, by changing the products that we led with that made a huge difference. So that's what I'd say is for Ecommerce consumer good people, that's the kind of test you want to be running. Andrew: Give it a whole different products out, a whole different offer, a whole different way of framing the offer, don't just change little bits of the creative and copy if you want to change your outcome in a big way. Stephanie: Yeah. I love that. People I talk to sometimes are focused on those micro adjustments that you're talking about or just the minimal incremental pieces that they could change, whether it's button colors or all that. That's a good point too. Yeah. Focus on the higher level things. But how did you decide on what new products to show? Andrew: In that case, part of it was what new products ... there's a change in our product development, that's going to make it so, or in our manufacturing that was going to make it to that, we're phasing out some products anyway. We always start by looking at most products over various periods of time. This is a simple way to start. I mean, there's not a lot of science to it in that respect. I think we're just looking around- Stephanie: Just seeing what it's doing well in the market. Andrew: Yeah. And what's done well on our side. Honestly, part of it is for a place to start your testing just like make a hypothesis and test it. I mean, it's not- Stephanie: Yeah. What timeframe are you looking at? When you do the test, are you looking at 30 days? Let's see how it does and try something new, or is it like after a couple of days you'll know and try something different? Andrew: Yeah. I'd say budget is probably a bigger factor than time. So if you're spending thousands of dollars a day, it doesn't take very long good answers. If you're spending a couple $100 a day, it takes a little longer. It also changes relative to your average order value. What you need is a statistically significant number of responses and really a statistically significant number of conversions. You can think of conversions as micro conversions as well. For example, a click on an ad is a conversion in a sense. Clicks as a percentage of impressions is a conversion. Because it's pretty cheap to run Facebook ads, you can actually figure out a reliable statistically significant performance in a click through rate pretty fast without having to see how those clicks convert. Andrew: In that case, it took us, I mean, I think we're got 100 bucks, when we knew that this new round of ads was way, way better performing because the gap and click through rate was so significant between the two. That's another core principle here. The larger the gap and the outcome, or the larger the disparity in the outcome, the more likely it is that it's a reliable result, if that makes sense. In that case, I think we spent between the two products, that's a total of 1,500 bucks. The whole goal of that was to test those while we went and ordered new products to try and start scaling a little bit for a larger test in the future. I didn't really care what the actual result was. The goal is a bigger goal to win bigger over time. Stephanie: Yeah, that makes sense. When talking about growing, I saw that you guys live by a central Ecommerce growth formula. I was hoping you could go into that a bit. Andrew: Yeah. This is changing a little bit in some ways. I'll give you the baseline version of it, which is visitors tasks conversion rate times average order value. This is actually really simple. Every business in the world only actually has three factors that make up the value that you get from a purchase, or that make up your revenue actually. The first factor is how many people come to your business. This could be people walk into your store, it doesn't have to be a website. But just never people who show up. And then you multiply that by the conversion rate. So, what percentage of those people buy something from you? And then you multiply that by how much they spend. Andrew: When you look at that, that will equal your revenue. If you just say, how many people get there, how many of those people buy and how much they spend when they do? That's the entirety that makes up the revenue. That's incredibly simple and intuitive in a lot of ways. But what I find is that in the fog of war, people lose sight of that very simple concept. So, they start making tests and changes without a really clear idea of which one or multiple of those variables they're actually trying to affect. Of course, those all relate to each other. For example, your average order value goes up, your conversion rate goes down, that's a general rule of thumb, it's true across everything. It's intuitive when you think about it. Andrew: A smaller percentage of people are going to buy a $1,000 item than a $10 item. As you drive more traffic, it's highly likely that you're driving lower and lower quality traffic. Everybody exists along in the world, exists along a continuum of people likely to buy your product and unlikely to buy your product from your mother, who's the most likely person in the world to buy your product to- Stephanie: That is number one. Andrew: Yes. To a subsistence farmer who doesn't have the internet is the least likely person. The farther you go from your mom to the subsistence farmer, the more expensive it is to acquire that customer. So as traffic grows, then your conversion rate is likely to go down. That's just another helpful concept, I think. These are rules of thumb to heuristics they're not always true, but that's a basic way of thinking about it. We think about those three levers in what we do and really try to understand when we test something at any point in our funnel, whether it's on the website or ad level or whatever, which one of those am I actually trying to affect? Where's the problem in my business? Andrew: I've talked with friends of mine who own CrossFit gyms, and I've said to them like ... I'm thinking of a friend in particular whose gym was struggling. I was trying to help him think this way, which of these is the problem for you? Are not enough people showing up to your gym? Or when they show up, do they not buy a membership? Or do they buy a cheap membership or you give them a month free and then they don't spend any money after that? Which one of these is the problem? That probably gets towards LTV as well, or CLV, Customer lifetime Value as something to think about in the midst of all this as well. This is where you can make it a little more complicated, but that basic principle is true. Across the gym, just like on my consumer goods websites, it's the same problem. You just have to figure out which one of those things has the highest upside at the lowest cost to fix next. That's where you should put your energy. Stephanie: Yeah, I love that. Have you ever pitched a brand to be taken over by a 4x400 that you believed in where everyone else on your team didn't believe in it? Andrew: Oh yeah. This is where it helps to be coldly rational. Gosh, I don't mean rational like smart, I'm always right. I just mean my approach is unemotional to a lot of this stuff. To the probably emotional dysfunction in other ways in my life or something like that, I'm not saying you should emulate this necessarily. But that's why there's therap, so it's fine. So, sorry? I know there's some noise there. A lot of times, if we're tweeting about a new brand acquisition. People will say privately like, "I do believe in this," or "I don't believe in this." I just started think that's like ... I think without having the view that I have in the acquisition process, I just don't even know what somebody is judging that on. People just go by their general sense of what they believe about if it's a good brand or not. Andrew: First of all, other people are not like you. Your subjective sense of that may not reflect at all what I brought population to potential customers is. Secondly, to me, you can validate this pretty clearly by looking at simple product market fit, things like margin is a huge question, which makes businesses work and it makes other businesses fail, is one of the problems of opening day. We made a huge mistake by just giving ourselves away too little margin on the products. Stephanie: What's the little margin, what do you consider small? Andrew: Yeah. Well, I think if you're going to try and grow a brand with ... I'll just tell you, we target 70 points plus of margin for brands that we are trying to grow with our method of growth. And then that's really important. If you have other growth mechanisms that might not matter as much. But for us, we want 70 points plus landed margin. We can deal with a little less than that, but if you're going to try and grow a brand with Facebook ads, you're going to need to be able to exist at a two to one return on your money on ads probably. It's hard to really beat that number, if not withstanding something like coronavirus throwing those small. So we target that. That becomes a big question for us, if we think we can do that. Andrew: Sometimes actually it's part of the first thing we have to fix for a brand is, we see supply chain processes that are in our view broken and we would say like, "We love everything about this brand. It's convergent on site, is great relative to its average order value, relative to its traffic sources." We dig into all that stuff, and say, "But your margin is not good enough, but we think we can solve that. W can help with getting your shipping cost down by repackaging it differently, or thinking about what products to focus on or not, or changing your manufacturer or something like that." We don't want to ever do that at the expense of giving people a good product. We haven't compromised on that at this point, which I'm happy about. But yeah, those are all the things that we can look at as potentially something to fix. But in our view, 70 points plus, makes the game a lot easier for sure. Stephanie: Got it. I like that point too about, what would someone know when they're doubting a brand? Because that is definitely a human flaw thinking about ... even when I'm thinking about those rubber bracelets from a while back, for me to say, "Oh, that's dumb," I don't need to be balanced or anything, or I need help with that. It's funny because it's like, well, apparently a lot of other people did because look how many people bought it. Yeah, I think that's also a good lesson for anyone starting something up. If they hear someone say like, "Oh, that's dumb, you shouldn't do that." Probably good to take a step back and be like, well, that's just one person's opinion and not let it deter you from trying at least. Andrew: Yes, especially relative to the set of metrics I have in front of me, which are going to tell me something a little bit different. This is one of the things that's so great about data is that I'm just wrong, Stephanie, about so many things in life, I just know I am. So having some source outside of my own brain that I can look at. When my own eyes are lying to me, humans are just biased machines. We're just machines of bad thinking about stuff. So, finding ways to be aware of my priors going into something and my bias going into something, check those against some sorts of truths that exist outside myself. Of course, people can lie with data and data can be poorly collected. There's all kinds of ways that can go wrong too. But in light of all those things, I just think that it becomes really helpful to do that, to go and have a source like that to go check in. So that's what we do in our process. Andrew: There's various levels of excitement about brands even internally. But there's no question that ... We sincerely believe it can work based on the data set in front of us and a few other old principals. So that's what we do. Stephanie: That's cool. We're mentioning data, stick with the data when it comes to it and don't just listen to unfounded opinions. What kind of metrics do you look at that you think a lot of other brands aren't utilizing enough? There's obvious ones like conversions and click-through rates and all that kind of stuff and revenue obviously, but is there anything that you look at that you think enough people aren't paying attention to? Andrew: There's no magic here. After we acquired 31 Bits, this jewelry company ... really super cool brand. This brand was started by women who were anthropology majors in college and wanted to provide good quality jobs to people who could not access them by nature of where they lived in the world. So they started in Uganda after a trip there and had these women making these really cool beads. This started in 2009. These women were out to change the world with this brand. It's just totally authentic, beautiful brand story around all of this stuff. When we acquired that, I on my podcast, it's called- Stephanie: What is your podcast? Andrew: Yeah, yeah. I feel so lame doing this right now, but- Stephanie: Oh, sorry, Andrew. Andrew: I know. There's a tangent there. But anyway, if somebody really wants to hear how I think about this question, I spent about 45 minutes with Taylor, the head of our agency, talking about exactly why we acquired 31 Bits. We did an episode about that. I'll find it and send it to you for the show notes as well. And then we interviewed the ladies from the brand for the next episode after that, so people could kinda hear why they chose us as well. We tried to be really honest about why we think it'll work and why we think it could fail. I would say the metrics related to that, that I care about, it's not just conversion rate it's conversion rate relative to average order value and relative to traffic sources. That's a huge one for us. Andrew: Conversion rate itself is actually so context specific that it's not that helpful of a metric. I mean, think about the conversion rate of a direct click. Somebody comes to the website, types in 31bits.com, presses enter. Let's take a 45 year old female on a desktop computer direct versus a 25 year old male on their cellphone through a display ad on the internet, saying conversion rates to describe what both of those people are doing and getting a baseline is not going to be helpful at all because the baseline for those two different customers of what you'd expect, they're so different. I mean, just the device issue you're twice as likely to convert on desktop than you are as mobile before you talk about any of the rest of the demographic's software or anything like that. Andrew: We try to really give some specificity of the context of something like conversion rate. Even one thing you'll see there is like, sometimes the brand's conversion rate will look low, but it's actually not low. The reason it looks low is because they're getting a ton of blog traffic via organic search SEO essentially. That blog traffic is technically on their URL, but it's not at all related to their product and it's not people looking for their product. Therefore, that blog traffic will have an incredibly low conversion rate and will therefore negatively influenced the total conversion rate. If you bucket that blog traffic out, it turns out the conversion and the brand is fine and their website works great and you just didn't realize that. I don't know if that example made sense. But there's- Stephanie: It does make sense. Andrew: ... there's just all of these kinds of contexts, things like that, that I think are really crucial to look at all the way around. We look at some other stuff like we've looked at entire funnel on our site, so we'll look at not just the conversion rate thing. If somebody doesn't buy something on your website, there's a question of why did they not buy? Because they made it to your website, so what happened next? Did they never add anything to cart or did they add to cart and then drop off once they got to checkout or did they never even make it to checkout or what? We look at each of those things and try to understand what's going on. Andrew: If somebody adds to cart and makes them check out and then drops off, why? The answer to that question is probably because you're shipping cost is too much a lot of times, or it's going to get shipped slowly, or they're not confident in return policy or whatever. So we'll look at some of that stuff too. We have a value of 4x400, which is understanding before you act and paired with that is hard problems require deep focus, or require deep work. The basic concept is like, before I go and throw out a million solutions, I want to really understand as clear of terms as possible exactly what's wrong. Andrew: When I hear somebody say my Facebook ads are broken, the thing I want to say is, "What do you mean? What's happening? What broken- Stephanie: What are you doing? Andrew: Right, yeah. "Is the conversion rate broken? Are the clicks too expensive? Where is the problem? Are you not getting a high enough AOV? When you say it's broken, what do you mean?" To try to help people answer that question because then it can guide where to think about the next problem. Stephanie: Cool. I love that. Yeah, that was a really good example. Stephanie: Are there any things, technology or otherwise tools that you're using right now that are maybe new that you're excited about? Andrew: Well, I'll tell you what I think that is, it's not the answer you're looking for, but I think it's the answer that I get. Stephanie: Go for it. Andrew: My answer is no I don't. We will get there to where we'll need to do that, but I just think this is a massive distraction for a lot of people. I think people love to go chase the next new thing. They'll even say things like, "well, my customer is on Tik Tok." I don't really know what that means. Yes- Stephanie: I don't really know who's on Tik Tok right now. Andrew: I'm 36. First all, I'm 36, I'm too old and I don't get Tik Tok. I've never had Facebook on my phone, so I'm just the worst social media marketer ever in that respect. I do not understand what's happening in the world. I just don't always know what that kind of thing means. I think your customers probably also want Instagram because there's a lot of people on Instagram. So I could be wrong about that, I guess. I'd be so happy for somebody to correct me if that's the case and reach out and tell me, "You're not looking at this right." Anyway, I just think it becomes a huge distraction for people to go and try and find another new thing to go do instead of to get really good in one or two areas. Andrew: We will expand channels over time. I think we're really trying to build out more search and shopping as a next step for us, that is not a new channel at all. It's actually the oldest digital marketing channel, search in particular,. I'm playing around with some ideas from SEO, but really I'm just trying to make my customer more valuable at this point. So, just trying to really get better via email, post-purchase, via my unboxing experience, trying to think about how unboxing and product experience creates retention in word of mouth. I'm trying to dig deeper and get better at the things I'm already doing rather than adding a whole lot, I think. Stephanie: With everything happening in the world right now, it does seem like there, like you mentioned early on the show, there're a lot of changes happening, especially around Ecommerce. I know you're talking about focusing on what's working and all that, but is there anything you're preparing for over the next three to five years that you're anticipating around Ecommerce trends? Andrew: Yeah, all right. This is my coronavirus beat right non. This is a really fun question and is a great podcast fodder. I do not fault you for asking it and I don't want you to hear my answer to this as condescending. But there's no possible way in the world that I could predict the future that far out. Here's what I believe about predicting the future. The more complex the system you're project predicting with the more inputs that there are there, over the longer the timeline, the harder it is to project. So, I might be able to give you some sense of what's happening next week, but then also last week, all these companies started saying they're going to pull their Facebook ad spend. Stephanie: Yeah. I didn't why I mention that, but I'm like well, that seems like it's a good opportunity then, like you're mentioning to get on Facebook. Andrew: Yeah, yeah. Stephanie: I think Zuckerberg even said they'll be back or something like that, which is just funny. Andrew: First of all, who could have predicted over that timeline, that kind of thing would happen? Before you even talk about Zuckerberg, who ... There's just so many elements. The system of macroeconomics in the U.S., before you even talk to the world, is so big with so many inputs and so complex that I just don't believe in anybody's ability to really predict that. So what I think is that it's not helpful generally to do that. I'll say three to five years, the one thing I feel broadly, fairly comfortable with though, I think even this has, there's some basic questions is that Ecommerce, as an industry, Ecommerce is a share of U.S. retail spending, will continue to grow. Andrew: I mean, I just have no possible way of predicting that. So I feel like it's a good place to be if you're in Ecom, I think you should be investing in Ecom broadly. I just don't think otherwise it's very possible to do that. I mean, just look at what we were all saying about coronavirus two months ago and the models that we were all looking at about what this thing could be. It's been devastating. I don't want to underplay that, but it has not been in the U.S. the millions of deaths at this point, at least. Who knows that people were predicting? I just look at that and go like, that's because predicting that many things for something with that much unknown is really, really hard. Andrew: My take on this is to go read Nate Silver's book, The Signal and the Noise and to hone your skills thinking about what kinds of things you can and can't project, and even how to think about projecting things. And then to go from there, which means the way you win is not by predicting the future, but by honing your fundamentals and carving really good thought processes. This is what I really believe in the most. To think about this all like poker, which is that good poker players don't win by winning a hand, they win by playing lots of hands really well and by making the right move over and over. Understanding the game that there are going to be times when they're going to be in a big spot with a lot of money in the pot and the card will come up and go the wrong way. But if they play enough big pots and enough money in it, the law of large numbers says that they'll win over time. I think that's the way to think about it. Andrew: Get really good at understanding something like visitors and conversion rate times average order value and asking the right questions about that. Get really good at following your profit margins everywhere you can . Get as much clarity about them as you possibly can that way you know where your money is going and where you're making money and where you're not. If you can do those things over a long period of time and just get good at finding good people to work with and get good at those sorts of things, you will win. So ultimately, I bought into the partnership at CTC with my own money, I'm not rich. Andrew: The reason I put my money into that is because I believe in the humans that are the partner group there, and I believe that those people overall given enough chances will win. That's the way I think you should think about your brand and your business is find partners and find brands and businesses that you believe will play the right hand the most times and are people of high character. That is part of the right hand of what you're play, you're going to have a relationship with these people. Every part of your business, if you can do those things, then I think over the aggregate, you're going to win. Stephanie: That's great. That actually took a very nice spin because at first I'm like, okay, no one's going to disagree with you that Ecommerce is going to grow. But I like the spin that you just took on it about what you should focus on instead. So, good answer. Andrew: Thanks. Yeah, I know. It's a compound answer in some ways, but it's really what I believe is true about the world. It's so sexy to say, okay, over the next month, this is going to happen and this is going to happen. Next time somebody on the show gives you that answer, bring them back on in six months and ask them what happened and- Stephanie: I was just going to say that. I think the world is still missing a little bit of the accountability piece because I see people still on Twitter, even the people who are talking about the end of the world, no one's following up with these people, how come this guy has had a billboard out around California for a long time saying the end of the world was going to happen, I guess, a few weeks ago, and it didn't? What now, are we going to follow up with him and be like, "Hey, what happened?" Andrew: Yeah, that's a very California story. I like that. Stephanie: All right. We're going to shift now into something called the lightning round brought to you by our friends at Salesforce Commerce Cloud. This is where I'm going to ask you a quick question and you have a minute or less to answer. Are you ready, Andrew? Andrew: I am. But this is the ultimate challenge for me. Stephanie: This will be the hardest part of the interview. Andrew: Yeah, it probably are. All right, I'll do my best. Stephanie: I actually feel like you're going to have some great answers, that's why I've been excited to get to this. All right. If you were to have a podcast, who would your first guest be and what would the show be about? Other than the podcast that you're running now, you can't say that one. Andrew: Okay. I think it would be about exploring. Does it my guess have to be a live or can I pick anybody? Stephanie: No. Andrew: Okay. I think it would be about exploring big ideas about the world like theology, philosophy kind of stuff, but for the every man or woman. So, it would try not to be too much in the clouds, my guess would be C. S. Lewis, not because he's the most interesting thinker in the history of the world, although he's a really interesting thinker, but because he says things in really interesting ways. So, I think he would be a fascinating guy to just sit and talk with. When I think of a historical person I'd want to talk with most, would be that. Either that or a baseball ball guest. Stephanie: All right. Well, that's cool. That's a good answer. What's up next on your reading list? Andrew: Books I'm in the middle of or after? Stephanie: I'd say, you can do both, middle of and ones that you're looking back on like, that was a good book. Andrew: Okay. The Color of Law is the book I'm in the middle of right now. Richard Rothstein going through the history of government and forced racism in the U.S. incredibly helpful book for me so far. I'm three quarters away through. Highly recommended to try and get your head on straight about what's going on with race in the U.S. just pure history. It's really good. And then I am reading a Christian book called Money, Possessions and Eternity about how to use your money for compassion and care for people instead of for yourself. So, that's what I'm in the middle of right now. And a baseball book called Ball Four, which is a famous book. Stephanie: That's cool. If you were to pick a country to focus on to maybe buy a new brand from, what country would you look into? Andrew: A country? Stephanie: Yeah. If you were to bet big, I'm going to go for something in India, that's top of mind right now because I just read the whole thing between India and China and turning off Tik Tok in India. So, it's very interesting to me thinking about, if you were to bet on brands from a certain country or are you looking to go international, where would you go? Andrew: I think the answer is India. I think that's probably the right answer. The cost of reaching people in India is very cheap and India's economy seems to be growing very fast. But I'm just bullish on global economy in general. So, I think you could probably broadly pick out. In the last 50 years, massive amounts of extreme poverty have been alleviated in the world thanks to globalization and technology and all kinds of things like that. The world is a much better place than people make it sound. That's another book record recommendation, Factfulness by Hans Rosling. Go read that book- Stephanie: Factfulness. Andrew: ... it will help you look at the world totally different. Factfulness. Forget my other book my other book and finish reading that one. Stephanie: I'll link of that one. Yeah, no, I think that's where I would bet too because I think I just read that, it's a billion and a half people there only a third of them, I think have cell phones right now. They're coming online at a very quick rate. So, I think- Andrew: Yeah. I mean, it's incredible how much better life has gotten in the world for so many people. There's very hard life in the world for a lot of people, so to not to underplay that. But it's just crazy and it's going to keep happening. Stephanie: Yeah, I agree. What's up next in your travel destinations? Andrew: Anywhere- Stephanie: When you can travel. I think, just outside my neighborhood. Andrew: Yeah. I like Austin, Minnesota where my family is, hopefully in a couple of weeks, but we'll see. As far as other places, I love Boston. Would like to go with my wife there. I have a seven month old though, so the actual answer to this question is probably nowhere for a while. Stephanie: Yeah. That's my life too. I have four month old twin boys and a two year old. Someone asked me like, "Oh, where are you going to go on vacation?" I'm like, "Nowhere outside of 10 miles away." It's a mess to get into the car that would be- Andrew: Four-year-old twin boys? Stephanie: Yeah, yeah. Andrew: I think it's awesome. Congratulations. That's beautiful. Stephanie: Thanks. Yeah, it's a wild ride. All right, the last one ... Yeah, you know. What's up next on your Netflix queue? Andrew: I just watch the same shows over and over again with my wife. Stephanie: Does she get to choose? Andrew: She does most times, yeah. Stephanie: So you guys are watching Selling Sunset and things like that? Andrew: No. We watched Parks and Rec, 30 Rock and The Good Place- Stephanie: Okay, those are very ones. Andrew: ... over and over and over again. That's probably all we watch. I don't know. The decision fatigue I have on this particular issues, we just created a Slack channel that worked for media recommendations because I just don't know even what to do anymore about where to look next. So, I wish I had a better answer than that. It would- Stephanie: Let us know if you find something from your Slack channel. Andrew: Yeah. It's probably another episode of The Good place. My team is really hot on Yellowstone right now, so there you go. Stephanie: Okay. I don't know what that is, that just shows I am not with it either. So I'll have to check that out. Andrew: Kevin Costner intense ranching family season three. Stephanie: Okay. I'll have to dive into that one. All right, that was a good lightning round. Is there anything that you were hoping to cover, are there any last words of advice before we hop off? Andrew: I think just that in situations like this, I always just want to say that when somebody asks you for answers on a podcast, it's super easy to make it sound easy in some ways. But it's really hard actually to do these things and to grow business and to work in a team and all these things. So, I think the parting word for me is always just to say, it's not actually as easy as it maybe. I hope I didn't make it sound like that. It's just challenging at times. So, keep at it and surround herself with good people. Yeah, I think that's it. I think I just properly took all the wind out of the point that I was making by monitoring it at the end there. Maybe out of [inaudible 01:02:52]. That's the big piece for me, is just you can do it, it is harder than it sounds a lot of times. Stephanie: Yeah, I like it. Well, Andrew, thanks so much for coming on the show. It was a lot of fun and ... Yeah, thanks for taking the time. Andrew: Thanks, Stephanie, for having me. It's super fun.

Up Next In Commerce
The Digital Transformation of Rosetta Stone: How President Matt Hulett Earned Trust Transforming an Analog Business into a Digital First Experience

Up Next In Commerce

Play Episode Listen Later Jun 25, 2020 49:24


Sometimes an opportunity comes along that’s too good to pass up. For Matt Hulett, that happened when a friend approached him about a job at Rosetta Stone. The famous language-learning company was stuck in the analog world and they wanted Matt to be the guy to bring them into the digital future. It was no small feat, but Rosetta Stone has made progress on the digital transformation and Ecommerce journey, including introducing a subscription model and overhauling its tech stack and app. On this episode of Up Next in Commerce, Matt discusses the challenges of transforming a world-famous brand, including how he chose a free-trial subscription model over going freemium, what it was like to achieve buy-in from investors, and the future of Ecommerce and why he thinks social selling still hasn’t reached its full potential.   3 Takeaways: Even the most well-known brands need to earn their stripes when entering a new space. When a previously offline product starts playing in the digital world, it has to prove to customers that their investment in this new space is worth it AR and VR are tools that Ecommerce platforms will be exploring more in the coming years. If you can provide a more immersive experience, you differentiate yourself from the competition and create more value to your customers Stay true to the brand and don’t try to compete on business models that don’t fit For an in-depth look at this episode, check out the full transcript below. Quotes have been edited for clarity and length. --- Up Next in Commerce is brought to you by Salesforce Commerce Cloud. Respond quickly to changing customer needs with flexible Ecommerce connected to marketing, sales, and service. Deliver intelligent commerce experiences your customers can trust, across every channel. Together, we’re ready for what’s next in commerce. Learn more at salesforce.com/commerce --- Transcript: Stephanie: Welcome back to Up Next In Commerce, this is Stephanie Postles, co-founder of Mission.org and your host. Today, we're going on a digital transformation journey. Matt, how's it going? Matt: Oh, really good. A little cooped up here like we all are, but I'm hanging in there. How are you doing? Stephanie: I'm doing well. Yeah, same hot, very hot. It's 92 here and the places in Silicon Valley usually don't have air conditioning so just a little sweaty in the studio. Stephanie: So I must admit, I have not checked in on Rosetta Stone in a while and when I started browsing through you guys' website, I was like, "Whoa, you all have come a long way from CD-ROMs and everything that I was used to when I was growing up and thought of Rosetta Stone." So I'd love to hear a little bit about what brought you to Rosetta Stone and your background before you joined. Matt: Yeah. It's interesting, just before I dive in, it's rare to join a company where everyone knows your brand and your product like just about everyone in the United States does Rosetta Stone. Matt: And so actually, it's an interesting story because there's not many ed tech companies that are a public companies, you could count them on your hand and the company has been a public company for over 10 years. Matt: It's been around for 27 years and it's a really interesting backstory on how the company was founded and so some of that came into play with what got me attracted to the business. Matt: So a friend of mine who's a recruiter talked to me about this opportunity and I typically do restarts, pivots as they are [crosstalk] for startups. Matt: And even the startups that I join are typically pivots. So there's kind of this pivot transformation story that typically is a draw for me for whatever weird reason why I attracted to these things and when he said, "Oh, it's Rosetta Stone." Matt: I was like, "Oh, the CD-ROM company, the yellow box." I was like, "Yeah, but they're trying to be digital." I'm like, "They're not digital yet?" Matt: And so the draw for me was typically, I take on jobs and assignments that are very difficult where I have to either completely change the strategy or get new financing on a new idea. Matt: There's generally something really, really wrong and Rosetta Stone was so intriguing to me on the surface for the intellectual reasons why they brand the product, people love it. Matt: It's not one of those iconic brands that people are afraid of. It's not like saying, "Matt, do you want to restart Myspace? I was like, "Oh my God, it's Rosetta Stone, of course." Stephanie: That's your next project. Myspace. Matt: Yeah. Stephanie: Just bring it back. Matt: Making it great again. Too soon. But what personally drew me, that's kind of the intellectual business level, what personally drew me into the company was and is the fact that I'm dyslexic, and a third of the revenue for Rosetta Stone is actually one of the fastest growing. Matt: We sell software into K-12 schools primarily in United States that help kids learn how to read, better learn how to read which is a problem. I've seen my own youngest son struggle with his dyslexia as well. Matt: And so on a personal level, it's very emotional when you can kind of tie that emotional tie to a company to its mission and vision. It's really intriguing. So it's been one of the best career decisions I've ever made. Stephanie: Yeah, that's great. Were there any universal truth that you discovered as you are kind of pivoting from different companies and trying out different roles and turning them around? Was there anything like yeah, universal truths that you saw while doing that? Matt: Well, that's a great question. Yeah, a couple things. One is it's so crazy to me, when I step into a company how basically from week one, maybe day one, no one really understands how the business works, like truly understands it. Matt: The key insight, what makes the business special, what can you do to apply capital or a time or attention to improve your strategy or your outcomes? It's just so, it's so weird when you go to a business that's operating, and maybe these are the only businesses I look at where it's not quite tight inside around the strategy and what makes the kind of the economic engine run. I think that's the biggest one that I see off the top of my head. Stephanie: Yeah, that's interesting. I can definitely see a lot of companies struggling there especially as they grow bigger and they have many business units and everyone's kind of chasing a different path, I can see people losing sight of what's important and what's actually driving this business like you're talking about and making it profitable or maybe it's not, but it's the lost leader, something that we still need. So yeah, that's really interesting. Stephanie: So when you joined Rosetta Stone, it hadn't been digital. I mean, only a few years, right? I think it stopped, maybe it didn't stop doing CDs, but it went online. Wasn't it in 2013? Matt: Yeah, I would say it was like half digital. What that means is we were selling one of the most expensive products in the App Store at the time and we didn't really have the concept of really effective sales funnels, a well thought out pricing and packaging strategy based on the type of customers that we're going after. Matt: We didn't have a lot of mobile native features and capability. So I would say it was kind of a port of the CD product in the mobile environment and that was kind of the approach. Matt: And also the approach was really not to focus on the consumer business. So not only did we make this kind of business model and digital transformation move, but also when I came into the business, the big focus was for the language side of the business was to focus on enterprise customers. Stephanie: Mm-hmm (affirmative). Matt: I thought that was actually the wrong move because enterprise is difficult, it's a smaller market, yet consumers where everyone knows Rosetta Stone, everyone likes the product. They actually remember the CD products in many cases and want to use them again, but they want to use them on your phone. Matt: So I thought, "Well heck, everyone knows who I am from a brand awareness perspective, I'll have an easier time deploying less capital against the consumer space and enterprise space." So there was not only just a business model shift, but also a strategy shift. Stephanie: Did you end up sticking with that business model shift to focus on enterprises or did you kind of make it a mix of 50/50? Matt: Oh, good question. So it is about 50/50 today, although consumers now are growing fast. I mean, we're a public company so I can only speak to our public company numbers, but in Q4 of last year, we grew the consumer business about 20% year over year and this is from a business step was growing at single digit. Matt: And then our last reporting earnings quarter, we grew the consumer business around 40% year to year and the enterprise business has struggled more primarily because of the C-19 impacts this year because obviously, we're in a never before seen macro economic headwind, but generally, it's the right decision to make and I view the enterprise business as more of an extension of what we want to do for all adult learners versus creating as a separate entity. Matt: That's a long answer to say consumer turned out to be the right move. It was not clear when I joined the company that even joining Rosetta Stone was a smart move. Matt: I had a lot of folks that I know, acquaintances more so than friends say, "Good luck. There's a lot of error in this company." And I just think it's just a really exciting problem and it's a ... Sorry to keep going because I've had maybe 80 cups of coffee today and just, I don't know. Stephanie: No, keep it up. Matt: It's like the two big verticals that are the most expensive that increased their prices to consumers over the last 50 years are healthcare and education and they have the lowest penetration of digital, and like, "Well, those are hard problems to solve. Why wouldn't you want to be involved?" So anyways, I think it's really fun. Stephanie: Yeah, that's fascinating. So when you came in, what were expectations for your role? What did people want you to do? Did you have a 90-day plan? How did that look? Matt: Oh yeah, if anyone thinks these are scripted questions, these are not scripted questions. These are very good questions. So during the interview process and I'm sure you've had this experience before, when you meet with somebody in a company, you're like, "I'm going to do whatever it takes to get this job." Stephanie: Yup. Matt: And I had one of those experiences with Rosetta Stone. I knew I wanted this job and so I came into maybe the first or second interview with a 90-day plan before I even started, this is the first or second interview. Matt: And the 90-day plan did change slightly because then I knew a little something, but I've done enough of these transformation projects, these pivots where I knew there's these basic building blocks in a format, I have a toolbox of things that I do that really didn't change. Matt: The inevitable strategy didn't know before I started, I didn't know the team members, were they the right fit or not, I didn't know any of that, but the basic building blocks I definitely put together. Stephanie: Got it. So what was on your roadmap, did you have to think about how to re-platform to support your commerce journey and shifting into enterprise and then consumer? What was on that plan that you laid out? Matt: Yeah, and I kind of learned some of this years ago when I was ... Sometimes I think my best work, I can't speak for you or anybody else, but my best work is when I'm completely ignorant of the challenges in front of me and so when I was younger, I worked for ... Well, actually, we sold our company to Macromedia and they had a division called Shockwave. Matt: And Macromedia at that point was not bought by Adobe, and this is Web 1.0 bubble, so I'm dating myself which is not legal in Washington State and these jokes have all jail time. Stephanie: [crosstalk] get us in trouble. Matt: I know. And so we step back through that experience and I learned a lot from the Macromedia Adobe kind of M&A folks about how to approach a problem. And that plus some other work experience over time really got me to the point of thinking through things from I call it the insight, the math in the heart. Matt: And no one framed it that way to me, but that's kind of how I framed it and so when I think about the insight, I think about the addressable market, the position that we are in the marketplace, so supplier's demand competitors. Matt: Then I think about what value we're driving to consumers, what value are you driving to your suppliers if you have them. And then what are the decisions you're going to make based on the strategy that you're laying out for the best outcome? Matt: So you want to grow market share, you want to grow revenue share. Do you not have enough capital? Do you actually need to raise capital and buy companies in order to get size and scale that's the outcome? Matt: So it's kind of a process that I've done over time and I want you to figure all that out, and it takes a while, maybe 90 days, maybe a little bit more, then it's really like how do you put a process together and dashboard is a little trite, but how do you actually run the business so you understand what things are working, the unit economics, what key layers of the business are you looking at, and then figure out an organization to support that and then you find the right team. Matt: And it sounds kind of exhaustive in terms of an answer, but I think too many people come in situations and they say, "Okay, I started this job, I got to restart it. What's my team look like?" Matt: And it's always I think the tail wagging the proverbial pivot dog and I typically, you can find startup people that are good at startups and sometimes, you find startup people that are good at later stage. Matt: You can find every dynamic possible, but until you do the work on, "I need this type of person for this type of growth stage, it's the right person the right time." Matt: If you don't do the work upfront, then you end up having a team that isn't the right team for the outcome that you want. Stephanie: Yup. Yeah, I've heard ... I forgot who said that startup advice where a lot of startups especially around here, are looking to hire that VIP level person, you have to pay a bunch of money to and someone was making the point of like, "Well, will they help you right now where you're at?" Stephanie: And it's okay to kind of grow out of people, but it's not okay to hire someone who's way above that actually can't get their hands dirty and do the work of what needs to be done right now. Matt: That's right. There's lots of people that have different approaches. I actually like to be pretty data driven in terms of how I think about people so I use like employee satisfaction studies and I use different personality profile tests. Matt: Obviously, you're not trying to like ... Hopefully, no one is like applying an AI filter looking at my reactions on this live video, but you can go overboard with data, but I do feel like you need to get the right alchemy talent for your team. Matt: And I've made mistakes where you have that senior person that doesn't want to get their hands dirty when you're like, "Look, I'm in build mode, I'm painting the fence, and I'm the CEO and I'm painting the fence and then I'm talking to the neighbors and driving Uber ..." Matt: The alchemy of that is hard to do, but that's a long winded answer to say there's there's a process and I think it's figuring out what's special about your company, how do you improve it, how do you run it? How did the inputs become the outputs and then what team is required for that? Stephanie: Yeah, very cool. So with the company having to shift as they did to go online and create mobile experiences, what kind of challenges did you see come up when you guys were going through that shift? Matt: Yeah, so there's multiple. So I always think about kind of the four constituents in most businesses, its investors, its customers, it's your internal employees and society. Matt: Not in that order. The order depends on lots of different things and so when I kind of checked down all those boxes, I think the big one, the first one I pick is investors because you're having to explain a model where the CD is purchased up front, it's very expensive versus you don't get all the revenue upfront, you amateurize that revenue and recognize it over 12, 24 whatever terms of the span of the subscription. Matt: So it's a change in terms of how you're reporting revenue, explain it in a consistent way, explaining the new metrics of subscription is challenged one I think from an investor perspective explaining why we have a language business, the Lexia business that I mentioned that focused on literacy is a 20 to 25% growth business, it's growing pretty nicely and language was declining. Matt: So then explaining to investors why do you still have this business and why are you changing the direction from enterprise to consumer, I think for employees. Matt: I always like to think through the employee piece, get the employee piece right, you can do anything and so getting the employees reason to believe, I was the first president to actually run the language business. Matt: It had multiple owners of the P&L and I was the first person probably since the CEO, we had one CEO that that started Rosetta Stone and took it public 20 plus years ago. Matt: I was the first single leader to ... I also tried creating a reason to believe a compelling vision, mission and culture and then when I think through kind of the customer piece, it wasn't as hard to be honest because there was so much brand equity that was good brand equity that doing little bit of things in a way that was kind of planful and data driven actually generated a lot of great outpouring of support. Matt: So the customer side of what we were doing wasn't as difficult as I would have thought and we also had an enterprise business that had already integrated things like digital tutoring with the software and demanding Fortune 500 companies. Matt: So there was some DNA in the company where we knew, "Boy, you can earn every interaction with every interaction." So that was that piece and then later, I started building more hooks into society as part of that and so I kind of view it as a self-fulfilling positive effect of you take care of your employees, they take care of your customers, the investors get great outcomes, and society benefits and you keep kind of turning this crank and you start getting much more reflective about it. Matt: And it does have, it does pay off. It takes I think, in general, I think people brag about how fast they can turn around companies. I don't know why people brag about that. Matt: I don't know, my experience is two years and taking a business from bad to like growing, at least, believing in itself is very hard and so I look at those four factors and I think the society piece is one that's super important that a lot of companies pay lip service to and there's a lot of discussion especially in Silicon Valley about some large companies that are controversial there. Matt: But I'll give you a for instance why if you can tie together the vision, mission, culture values to society, how that's self-reinforcing, we had a obviously horrible global pandemic that we're still pulling ourselves out of and everyone's kind of living through this experience at the same time. Matt: And we basically took just two days to decide that we're going to give away our software for free for three months for students. And we run a current business and selling software to enterprises and adults and we said, "You know what? We know that parents are actually going through hell because there's kind of a make your own adventure right now and schooling." Matt: [crosstalk] and I can feel it myself and we are like, "Oh my God, this is so stressful and the anxiety I heard from our own employees about it was overwhelming and I'm asking them to work harder." Matt: And so we said, "You know what? We're going to give away three months subscription and we're going to just do it and you just have to ... The parents have to put their email address in the school and that's it." Stephanie: Mm-hmm (affirmative). That's awesome. Matt: And we're not a free ... We're a paid subscription product. We're not, there are other competitors that have a freemium model and as you know, changing models or mixed models generally don't have a long history of working and we said, "You know what? We're just going to do it." Matt: And so the team decided to do it, I just said, "Yeah, let's do something." They said, "Here's exactly what we're going to do." And it was live, and then the amount of positive benefits, we got that from pure impressions. Matt: It actually helped our adult business to ... Adult language learning business. That's just one quick example of when those things all start working together. Matt: It's transparent, it's engaged and it's consistent. It becomes kind of operating leverage as well. So it's fun. It's fun to see how that work. Stephanie: Yeah, that's great. It's definitely a good reminder of do good things and good things will come back to you. Did you have any struggles with maybe like surges and people logging in and trying to get on the platform that maybe you hadn't experienced in the past? Because it was maybe a bit more predictable since it wasn't free? Matt: That's a really good question. Not on the system, the system's basis, but certainly from a support basis because we had a lot of, we outsource most of our customer support, and we debated for a while whether we we're going to continue phone support, we still do and I still debate that one, but a lot of our service providers were in outside United States and they all of a sudden had to work from home and then some facilities shut down and so we are just constantly playing whack-a-mole with our support organizations. Matt: And then also, I would say to our frontline heroes were our tutors and we employ a lot of highly educated tutors that have degrees in language learning and they all work from home primarily, they're part-time employees. Matt: And they turn out to be like our heroes because they took some support calls in addition to one-on-one digital tutoring. And so there was unique ways in which we had to adapt with the demand, but I would say more on the demand side regarding the support elements and we definitely saw a surge do the work from home trend as well, but that didn't impact kind of service levels and general software. Stephanie: Okay, cool. And I could see it being a bit tricky to develop and maintain a platform that has so many different layers to the business. I'm thinking about the enterprises who are going on there and buying seats for employees, and I'm thinking about the school is going on there for students, and then the individual consumer like me who's maybe like, "Hey, I'm going to Italy and I want to learn Italian." Stephanie: I don't know, but like it seems like it would be pretty tricky creating a platform that does all of that. How do you think about creating that so everyone gets a good experience and also being able to monitor and measure it in a successful way? Matt: Yeah, I've never seen the complexity Rosetta Stone before at the smallest scale, but what I mean by that is we have three businesses and we're a small cap public company. So that's unusual and the business was run on the language side ... Well, let me step back. Matt: So the literacy business is a business that was acquired seven, eight years ago and that's a 30-year-old company that was acquired, it's called Lexia and it works as a distinct operating unit from my business and is run by an awesome gentleman. Matt: And I use that word loosely and if he's listening, sorry Nick, he's a great guy and so passionate and his team is so good and it's ... I've never seen before a product that's built with like academic research combined with awesome data product engineering that gets results. Matt: It's just, I've never seen anything like it and they had the time to build this product over these many years, it was always digital first and so they're run separately. Matt: My language business was run on two different tech stacks. Actually, it was like five and when I started, I was like, "Well, wait a minute, why is this product that looks the same running off this underlying architecture? Why don't we move everything to react?" Matt: As I kind of went through this morass of tech stacks, it was a lot of M&A that generate a lot of complexity and a lot of tech debt. And so I would say majority of our innovation was not innovation, it was just keeping these old tech stacks up. Matt: So from an R&D perspective, in addition to all the other complexities we just talked about in this interview, I was trying to grow the consumer business, trying to change the business model, swapping out new team members for more growth orientation and doing a huge tech migration. Matt: And the complexity around that is mind boggling. We finished that late last year like de-flashing like old weird services, moving to a services architecture. All that stuff we end up doing and inevitably, the goal is to have one learner experience, just like you use Google, Google Mail for your enterprise, or personal. Matt: There were some admin privileges and other things that are associated in the back end, but in general, the product kind of looks and feels the same and that's, the inevitable goal which we're very close to execute on. Stephanie: Got it. Were there any pitfalls that you experienced when going through all those different pieces to the business or anything where you're like, "When we implemented this, or we move to this type of tech stack, this is when we saw a lot of improvements with conversions or anything around the consumer or enterprise business." Matt: Yeah, just on conversions, yeah, one thing on that is interesting is the amount of improvement we saw just with like putting different team members with specific goals and this is going to sound kind of crazy because everyone is going to like, "Yeah, he's talking about agile." Matt: Just getting very specific about areas in the funnel to improve and how to adjust the trial experience at certain times, and experiencing and showing customers different things at different times. Matt: That had like a crazy amount of upside for us. And I would say less architecturally that we see an improvement other than we had just less stuff that wasn't moving the innovation forward, but just these small things have big impacts and get and I must say like if any one of my team members is listening to this and say, "You haven't solved all that yet is." Matt: It's very difficult to take a business that is so complex, and then all sudden kind of say, "Look, we're going to reduce all the complexity, networks are innovating again." I think there's still a challenge of like, faster, smaller teams, we use a safe framework which is kind of scrum like. Matt: I don't think we figured all that out yet, but it's way different than when I came in and felt very waterfally to me. We're going to issue a press release, what this release is going to look like in one year and we're going to work back from that, I'm like, "Yeah, that's very Amazon." Stephanie: Yeah, yup. Matt: I'm like, "Well, how do you even know this is the right thing if you don't have any customer?" So there was there's a whole evolution of trying things, validating them, making sure that you're deploying enough capital against that makes sure it gets a fair shake, but not too much where you're, you're in over your head and we've had some public black eyes on some of our tests, and I don't care. Matt: We were trying some things internationally with tutoring, it didn't work out, it didn't have the capital honestly to support some of it and I kind of feel like those are good experiences to understand whether you're going to invest more in something or not. Matt: And so I think the fact that we can start doing those things now because we simplified the platform or if possible. Yeah, I think it's hard to say no to things and yes to things. And some of that discipline is easier when you're a startup because you just don't have people to outsource to. Stephanie: Yup. There's always an excuse. Nope, no one else can help us with that. Can't do it. Matt: Yeah. There's never like I'm a product manager by training and I've used every product manager tool under the sun and now I've kind of just resulted in my using Google Sheets again and what I'm trying to triage like epics and themes and stories, and I still like to play around with those types of planning elements, I just always look at all these people in these points available. I'm like, "You guys have no idea the luxury we have." Stephanie: I'm sure they like hearing that. Matt: Yeah, there's nothing more pure than a startup and it's like five people, five engineers and like a product manager that codes and the seat goes, doing UI, UX and it's ... Stephanie: Yeah, that's really fun. So you mentioned earlier a free trial which I actually went on Rosetta's website and I ended up going through the entire trial of learning Spanish. How did you all think about creating that free trial and actually convincing people to do it? Stephanie: Because a lot of times, I think I would see something like that and I'd be like, "Oh, that's too much time and I don't want to start that process right now." Stephanie: And I eagerly jumped in and started doing the lesson plan because it was engaging and fun, and it kind of felt like the real world with the person walking around and you're stopping and talking to them. How did you think about creating that? So it actually converted users into paying customers? Matt: Oh, thanks for saying that. Yeah, I think we have a long ways to go. I think in terms of what we could be doing is we're just, I just feel like we're sprinting to the start line because of the late start, but I think the core piece is for most companies and they think about like what business do you want to be in a lot of people will default to like whatever their venture capitalists said they should do from their other companies they manage or whether they read on TechCrunch or whatever, or listen to on this program is I think you have to be very specific once you figure it out the approach to the product that you're going after. Matt: Are you going to be freemium? Are you going to be paid trial? Or are you going to be for lack of a better term I call it force-trial or upfront trial and there's elements of this that change, there's kind of nuances. Because that's more of a nuanced discussion is the freemium players in the language space for instance would be Duolingo. Matt: How do you get the most amount of MAUs, Monthly Active Users and get enough of them to convert? Or the Spotify example, and you're using basically cap ex as cap, you're using your R&D to drive user and usage and that's kind of Slack-like. Matt: Slack is slightly different obviously. Then the paid trial is, "Well, I have enough of something that's good that I want a lot of people to use it, but I want the conversion to be pretty good." Matt: And so for the first one with freemium, you have to say, "Okay, it's going to be so fun and compelling and I'm going to actually invest in growth that isn't there yet because I think I have scale effects —I can crowd out everyone else." Matt: The second one is I actually have a pretty good product, I need enough people to use it and then feel like I use it enough to want to use more of it. And that's what I decided to do and I'll explain why. Matt: And then on the upfront paid thing is typical like for low ACV, Annual Contract Value SaaS companies you'd see, please just call my ... Just call us and we'll walk you through it with one of my sales reps. Matt: And we'll do a guided tour through the demo or whatever and the decision why we did the second one was it was a good decision and is people knew enough about what the Rosetta Stone brand was like that we knew people would want to try it and that for people that remember what it was like, they definitely would want to use it again and we felt like the pinch was more compelling if we gave everyone a little taste of that. Stephanie: Mm-hmm (affirmative). Matt: We could have said, "Please pay up front." And we're the gold standard and giddy up, but we felt like we needed to earn our stripes a little bit into proving to people that we weren't just like a port of a CD product. Matt: And so that's why we decided to do that and we've played along different roads before. We've never done full freemium and I would argue at this point in the market, we would not be better served to do that because Duolingo has done a really good job of growing their monthly active users and have built some advantages there and we're not trying to play that game. Matt: I'm trying to play the game of being a really good, effective language learning product and I'm trying to set the tone in the trial experience that when you're using the product, it's not going to be like a game. Matt: It's not going to be like Clash of Clans. I guess Clash of Clans is a bad example, or the jewel or like Candy Crush I guess is what I was thinking of. Matt: Every day, I collect coins and I'm collecting coins to benefit my gameplay. It's kind of how I think about Duolingo a little bit and it's ... I think they're masterful of what they do, but I think they're designed to do something different than what I'm trying to do. Matt: And if you're serious about learning a language, and you stick to what I'm doing and you do a couple tutor sessions that we offer, you're going to get there. Matt: And so the business model and what we're trying to do in terms of posture, not market share, but revenue share really drove kind of the philosophy on the trial experience. Stephanie: Yeah, it definitely, it felt more serious especially where you could speak in the language and it would tell you I guess if the tonality was right, and if you were saying it correctly, and it would keep kind of advising you on it, once I saw it had that feature, that to me was when I was like, "Whoa, this is really serious, and I better be ready to learn this language because it's not like a game, it's not just saying random words." Stephanie: You're actually kind of conversating and having to hear yourself which I think is really important. That seems like a big first step to getting people to try it. Matt: It's an interesting observation because we are very oral first in our pedagogy. We want people to engage with the product and speaking is actually just in general a really good way to learn and then the key outcome of speaking well is not sounding stupid. Matt: And so if you're trying to learn a language, you want to sound somewhat authentic. So for Rosetta Stone, I would say, for anyone that really wants to learn a language, we'll get you there, but if you're just kind of trying to build like, it's like counting your calories kind of. Matt: If you wanted to do something like that, then I would say, pick a freemium product over ours and yeah, it's not like super intense scary, but it's like, "Yeah, you better do your lessons before you do your group tutoring session." Stephanie: Yeah. No, that's, I mean, that's great to incentivize people like you're paying for this, you might as well get the best out of it. Is there, so one thing I was thinking when I was interacting with the free trial was, "Wow, this would be really cool if there was like a virtual world where you could be walking around and talking to other students who are learning." Stephanie: Are you all thinking about any technologies like that to implement or is there anything on your radar where you're like, "We're moving in this direction or planning on trying this tech out or this digital platform out?" Matt: Yeah, we've played with VR in the past. I've been kind of like bearish every time someone says, "Let's go into VR." I'm like, "This is [crosstalk 00:39:27]." Stephanie: It's a hot word for a while. VR everything, it doesn't matter to the problem. Matt: Yeah, I know and I have a lot of friends. One really good friend of ours, she has a pretty successful, his definition of success and I think it is honestly successful VR games company, but like I have a lot of other friends that went into VR that gaming or especially verticals that just had a hell of a time just because there's not enough handsets that are available. Matt: Well, we have dabbled in in terms of immersive experience. I think what you're saying is is there a way to since we're immersive, use technology to make it even more immersive and what I really want to do is enable more AR in our experience. Matt: And we have like a little feature called seek and speak where you can ... It's like an almost a sample app where you can use your phone, we use ARKit to do a treasure hunt for things around your house like fruits, objects around your house and incorporate that in your speech practice. Matt: And I always thought that was like a really cool thing for us to expand into and if we ever get the Apple visor, some AR HoloLens or whatever, it'd be cool to start interacting with your world around you, not just with translation, but also to see if you can actually interact with folks that are kind of ambient around that experience. Matt: I personally and maybe this we're going too deep here, but I always thought it'd be cool if like I can visit another country and just decide how much of the spoken language am I going to generate myself, how much am I going to have my device do it because I'm not going to spend the time. Matt: And then how can I phone a friend? How could I have my tutor or my guide integrated experience where I'm going to sound really authentic if I do this or here's an experience that I could do here. Matt: I think the goal for language learning inevitably is different based on where you are in the world, but if you're from the United States or one of ... Maybe some European countries like the UK, it's kind of like this is a cool way to get engaged with a culture. Matt: If you're not in those countries, learning English primarily is a necessity and so I think some of these AR ideas that you just mentioned would be really good and speaking more frequently to other folks that are even not native speakers, but just trying to generate language is a very good way to teach. Matt: We have a product coming out called Rosetta Stone English this summer, literally like a couple months and it is a version of Rosetta Stone for EL kids or English Learners K through six. Matt: And this product is an oral first product and this blew me away. The stat if you're trying to teach a kid English primarily from lots of different countries is written communication. Matt: It's like 20% spoken and so our product is like 70, 80% spoken because this ... And so it's just really interesting. What could you do that's more immersive using AR or VR? Matt: I think there's, I'm with you. I think there's a lot of cool things you could do and I think you could enhance the travel experience quite a bit. I think you could enhance the young learner experience quite a bit. I think there's so many cool things you could do. Stephanie: Yeah, I completely agree and there seems like a lot of opportunities there. So what kind of disruptions do you see coming to the world of ecommerce and online learning? Matt: Yeah, it's a weird market and it's weird because like depending on what we're talking about in terms of overall commerce, it's like a $6 trillion education market, 6 trillion. Matt: Consumer is probably the largest out of that and then obviously, there's higher ed, there's middle school, high school, there's elementary, and then there's adult education and then where it's coming from, is the consumer paying, is the government paying. Matt: And so take all this aside, less than 10% is digital right now and I think there's going to be this massive realization and awakening because of the C-19 pandemic of everything that I do has to be digital. Matt: And it's not that we're replacing teachers, it's how do we integrate digital curriculum and conductivity between the teacher and the student, how do I build a data layer that personalized that experience. Matt: I think that can happen between, language learning, it can happen in lots of different curriculum like reading and writing. And not having a digital enabled kind of curriculum I think is going to be like if you don't have a solution for that, if you're an education system, if you're a college, if you're whatever, and if you don't offer these types of products in the future, you're going to go the way the dodo bird. Matt: I think higher education has a wake up call. J.Crew, I like J.Crew, they're in bankruptcy now. Hertz, I used Hertz. They're in bankruptcy now and I think there's this massive pull forward right now that's happening because the product that we've been using in education hasn't changed in like 40, 50 years. Stephanie: Yup. Matt: It's the same problem. If I time warp myself from 50 years ago into most classrooms, it would look the same. Stephanie: Yup. Yeah, I've always kind of thought that a disruption was definitely coming around higher education, but this seems to have moved everything forward by many years and especially around K through 12 where that felt like it would be much harder to change. Stephanie: For colleges, it's like, "Okay, now it's changing pretty quickly with all the boot camps coming out and company's not really always requiring degrees, at least in this area." Stephanie: But K through 12 felt hard to change and it feels like this is going to be an interesting forcing function now that like you said, a lot of kids are home and parents are figuring out how to be a part of their education more in the online learning process. Stephanie: It just seems like there's going to be a lot of opportunities that come up because of this. Matt: Yeah, I agree. And I also think that now I'm sounding like the tech utilitarian, but I would say that ed tech and I'm not from the ed tech space, but I am in it now. Matt: I would say that the ed tech providers that ... We're now entering the third wave I guess is how I think about it. The second wave which is typical of most other businesses that you and I have seen before, like ecommerce or sales ops tools, now you can talk about those and go, "Remember Omniture and it was badass?" Matt: Yes, it's now part of Adobe Cloud Matt is when you talk about these generational shifts in how we think about things, I think a lot of the ed tech players, people who are selling software to schools or directly to the parents or kids or whomever, they've definitely oversold or oversold the efficacy of some of those products. Matt: And when I talk about digital transformation, I'm not talking about the ability to do things self serve, and have the teacher look at some flat experience. Matt: Right now and this is not against teachers. Teachers, they're like little mini MacGyvers to me. I mean, they're like doing amazing things streaming together curriculum on the fly. Stephanie: Yeah, both my sister and my mom are teachers and I do not know how they're doing it and how they had to pivot so quickly to being in the classroom and my sister is actually a ESL, English as a Second Language teacher. Yeah. Matt: Oh my gosh, okay. Stephanie: Yup, because I have a twin sister and she always tells me about the difficulties that she's experiencing right now trying to bring her students online and develop curriculums online and a lot of them don't have internet access and it's just very interesting seeing how they kind of develop workarounds to make it work for their students. Matt: Yeah, my criticism of education isn't the teacher clearly, a lot of it is kind of the cost basis in the bureaucracy and when I talk about ed tech, it's like I think it comes down to and this is not a Matt Hulett Rosetta Stone specific thing is educating a group of young individuals or even old individuals, it doesn't matter the same way at the same time makes zero sense. Matt: And so building in the ability for the student to do some things themselves, having a data layer so that a teacher understands the areas in which that student is struggling, and so that the instruction becomes very personalized. Matt: It is generally what I'm talking about and it's right now, I think we have a billion and a half young kids around the world that don't have access to computers. Matt: And if they do have access to computers, they're scanning in their Math homework and sending it to a teacher. Well, who knows if I struggle for five minutes on this problem versus long division versus multiplication? The teacher doesn't know. Matt: And so I think the ed tech software that I'm more in favor of what I'm speaking about is how do you build curriculum-based, efficacy-based software, not unlike what your mom and your sister think about because they have degrees and know how to actually educate someone, they're not software [inaudible 00:49:10]. Matt: And if they're wanting to provide very explicit instruction, my guess is they're really swamped. They've got other things they need to do, they're probably paying for materials that are [crosstalk 00:49:22]. Stephanie: Yup. Matt: And so I think about all these stresses and we're asking them to provide excellent education, it's just, it's too much. And so I really feel like this third wave of technology, and I think it's going to happen is it's going to integrate this we call AI and HI, how do you integrate the best of what software can do and integrate that into the lesson planning of the teacher versus let's try to create AI for the sake of AI and disintermediate teachers which I think is ridiculous is and that's what I'm talking about. Matt: Because I see a lot of tech companies playing the game of ed tech versus education companies that are actually trying to be technology companies. Matt: I think the latter will be the software and the providers that will end up actually being the most successful and the most adopted, but obviously, I'm passionate about this because I've seen this with our Lexia software. Matt: And we have like 16 plus academic studies that show that the software works and I'm like, "How is this possible that two-thirds of kids still today by the time they're a third grade or reading below their grade level that continues through eighth grade?" Matt: Two-thirds are reading below level. How is this possible? And I'm not here to tell my own software. I'm just like, "Why is this possible?" Well, it turns out we don't train teachers to teach kids how to read. Matt: There's an approach to it, and we don't do real time assessments of kids struggling, the teachers swamped, they don't know what's going on. Matt: Anyways, I could talk about this for hours, but I do think there's this world where at some point, the $6 trillion business of educating all these kids and adults and young adults will be digitized. Matt: And I think that will be an interesting space. Ed tech is that one space where most VCs wouldn't want to touch. Stephanie: Yup. Yeah, I know. It's a hard ... I mean, health care and education. It's a hard space. So yeah, I completely agree. I know we're running into time and I want to make sure we can jump into the lightning round. Matt: Okay. Stephanie: Is there any other high level thoughts that you want to share before we jump into that? Matt: Nope. I think I hit the verbose button when I answered that question, but I didn't realize you have some familiar background on education which got me going so I [crosstalk] Stephanie: Yeah, no, yeah. Matt: I will be [crosstalk] lightning round. Stephanie: Yeah, we need a whole other podcasts where we can just talk education stuff and I can have my family be the call-ins and they can give us a little advice and ideas. Stephanie: All right, so the lightning round brought to you by our friends at Salesforce Commerce Cloud is where I ask a few questions and you have one minute or less Matt to answer. Are you ready? Matt: I'm ready. Stephanie: All right. What's up next on your reading list? Matt: Words that matter. I don't know the author. Stephanie: Cool. What's up next on your podcast list? Matt: This podcast of course. Stephanie: Hey, good. That's the right answer. Matt: And then Masters of Scale. There's a new podcast actually with one of my competitors from Duolingo. Stephanie: Oh-oh. Very cool. Yeah, that's a good one. What's up next on your Netflix queue? Matt: God, it is embarrassing. Do I have to say it? Stephanie: Yes you do. Matt: Too Hot to Handle. Stephanie: Oh my gosh. I can't believe you're watching that. I'm judging a little bit, but I've also seen a few episodes. So if you were to choose a company right now to turn around, not Rosetta Stone, some brand new company, not a brand new one, but maybe one that's in the industry right now where you're like, "I could jump in and help." What company would you choose? Matt: That's a great question. WeWork. Stephanie: Woo, that would be an interesting one to try and turn around. Matt: Yeah. Stephanie: All right, next one. What app are you using on your phone right now that's most helpful? Matt: I listen to a lot of podcast, I love Overcast. I don't know if anyone ever mentions that. I just love it because I listen to things 2x. Stephanie: Yup, yeah, I know. I agree. I like that app as well. What language are you or your family working on right now to learn? Matt: Well, it's funny. I'm kind of barely competent in Spanish. My 16-year-old is actually I would say pretty intermediate level Spanish and my 10-year-old is oddly learning Japanese. Stephanie: Oh, go. Go him. A boy, right? Yeah, that's great. All right and our last, a little bit more difficult question. What's up next for ecommerce professionals? Matt: Oh boy, ecommerce professionals. I think to me it's a lot of the same topics in ecommerce have been discussed for so many years and I think that the interesting one is how do we actually make social commerce really good. Matt: And I think I spend a lot of time just, I'm not serious with it, but playing with like, TikTok and Twitch, and I think there's some elements to the social selling piece that I think are super interesting that no one's really figured out and I buy actually a lot of products off Instagram, and it's still too much friction and it's not quite working right for me. Matt: So I think there's some ... How do you integrate ecomm and then TikTok in a way that's native to that audience? I think there's some things there. Stephanie: Oh, that's a good answer. Well, Matt, this has been yeah, such a fun interview. Where can people find out more about you and Rosetta Stone? Matt: Rosettastone.com for the company and I'm matt_hulett on Twitter and it was a pleasure to talk to you today. Stephanie: All right, thanks so much. Matt: Thank you.  

Positive on Publishing Podcast
POP059: Make Your Publishing Journey Profitable and Fun

Positive on Publishing Podcast

Play Episode Listen Later Jan 14, 2020 30:21


In this episode, I release an interview I did with the Nonfiction Authors Association Founder Stephanie Chandler. We shed some light on some financial aspects of both writing and publishing. So the guest and host tables are turned for this particular episode, which is always a fun twist on a concept! I’ve provided the complete transcript of our interview instead of “fun nuggets”. I’ll also provide you with the links to the FREE courses on publishing in my Teachable school: Make Publishing Profitable and Fun Make Publishing Fun Summit I also have an excellent course (priced at $197) with 5x #1 NYT bestselling author Carol Kline for authors writing transformational non-fiction. I highly recommend checking that out if that is your genre. If you are looking for the report of the author survey which I discuss in this interview, it is contained in both of my free teachable courses on publishing, so I’ve got you covered. Here is the transcript of our conversation: Stephanie: Well. Hi everybody. Welcome to the teleseminar series for the Nonfiction Authors Association. We are excited to welcome Kathryn Guylay today and we're going to be talking about the financial side of publishing and understanding what that is all about. I am your host, Stephanie Chandler. Always happy to have you join us. As a reminder, we do have the phone lines muted and this session is recorded. This event will last 30 minutes and recordings are available to authority and VIP members of the Nonfiction Authors Association and if you're new to us, in addition to event recordings, members receive many additional benefits including exclusive templates, checklists, and other content released every week. Stephanie: Access to our active member forum on LinkedIn, free admission to local chapter meetings across the US, discounts off the Nonfiction Book Awards, The Nonfiction Writers Conference, as well as our online courses and author toolkits and discounts with our partners including Office Depot, PR Newswire, Gabby Press and VSP. For more visit nonfictionauthorsassociation.com to join us. Sorry, I'm fumbling this morning, but now I'm thrilled to introduce our guest. Stephanie: Kathryn Guylay comes to the publishing industry with a background in management consulting as well as nonprofit management, a numbers girl, she received her MBA in 1995 and went on to work with dozens of multinational corporations across diverse industries. She stumbled into the publishing world many years later after writing her first book, Mountain Mantras, Wellness and Life Lessons from the Slopes. She has since written two children's books and her latest nonfiction book was released just weeks ago and it's called Look Before You Leap: The Smart Authors Guide to Avoiding the Money Pit and Achieving Financial Success in Publishing. Her books have gone on to achieve nine awards and Amazon bestseller status. Kathryn, thanks so much for joining us today. Kathryn G.: I am so thrilled to be here. I'm a big fan of yours, Stephanie, so thank you so much for all the great work. Stephanie: Thank you for that. I love that you're helping authors understand the financial side of publishing. I think it's something we certainly don't talk about enough here. So, and you recently put together a survey to gather some information about that. Who is your audience for this survey and what was your goal in creating that? Kathryn G.: Well, yeah, I think it's important to go back to why I even started to do this project. It took three months and several thousand dollars of my own invested money in terms of some VA time and using some survey tools and advanced survey tools because it was a very in-depth survey. We got some incredible data. So my goal really was, because I'm a numbers gal, I wanted to find out if some of the horror stories that I had heard were true. So I'm part of lots of different author groups and even some masterminds where people have confessed their financial woes to me, I even heard of someone going bankrupt. So it's like really? And then Stephanie, I'm sure you've heard, you hear these get rich quick pitches from people saying, go write a book and get rich quick. Kathryn G.: So there were these two stories that I was trying to reconcile the horror stories and then the get rich quick. And so I said, you know what? I'm going to collect data that I know is real and I'm going to work with the data. I've done lots of surveys in my work as a management consultant. So that was my goal was to find out what the real truth is, and so you also asked about the audience. The participants in the survey were actually across three groups. So I did a different survey for traditionally published authors for self-published and for hybrid because the questions were a little different in terms of asking about advances and investments into the company for hybrid. And then just out of pocket spends for self-publishing. Kathryn G.: So it was about 40 authors that bared their souls. I'm deeply grateful to all of them because there was a lot of questions on the survey across eight different sections that they really had to spend sometimes up to an hour going through the survey. And the idea was that I shared all the results with everyone and we all learned a lot. So it was a great process really to get behind these big stories that I was hearing. Were they true? Were they not true? Stephanie: Wow. Interesting. Well, so let's go through some of that data. What were some of the key takeaways you got from the traditionally published authors? Kathryn G.: So traditionally published authors, I have to say that was the hardest group of authors to enroll in the survey. It was pretty evenly spaced, those 40 participants were pretty evenly spaced, but it was harder to get the traditionally published authors even though it was completely confidential. It's really tough to admit to what is happening with advances today. So I was really surprised to hear that most of the authors are not getting advances or are getting very small advances. Kathryn G.: And in general I also ask them happiness or satisfaction questions. And this is really crazy, Stephanie. I wasn't expecting this, but the traditionally published authors were the least satisfied across all three groups. And I would say what I would attribute that to is that, and this is in reading the comments, is that the expectations were really high from the traditionally published authors and what their results were in the end, probably they just weren’t as high as their expectations. Stephanie: That makes a ton of sense to me that expectations in general for authors are a tricky thing because we all want to be super successful and the reality of publishing is it's so much harder than people realize. How about the self-published authors? What were your findings there? Kathryn G.: They are the happiest group, isn't that great? I was so happy to hear that or to see that. And actually, I also asked about some time questions but traditionally published authors, I couldn't believe it because they have these huge teams behind them. They spent a whole lot more time on their book and this is across development and the distribution and the whole marketing and publicity side of things. I totaled up all the hours and considerably more hours for the traditionally published authors. So when we were talking about self-published, they're actually a little more efficient, which is amazing because I always think of self-publishing as being very entrepreneurial. And so you think it's going to be this crazy time investment and it is. Kathryn G.: It was about a thousand hours on average across all three groups. We're talking about a lot of time, but their satisfaction with higher the self-published authors, and here's the downside is that the self-publish author group, as I looked across the data, they didn't save enough money in their budget for marketing and publicity. So the self-published author groups spent the least amount on marketing and publicity and guess what? They sold the fewest amount of books. Stephanie: Yeah, that makes a lot of sense as well. It reminds me of the school science fair where your hypothesis actually matches the results. Unfortunately, that's the tricky reality of all this. What about the hybrid authors? And by hybrid, what is your definition of hybrid? It's a little different for everybody. Kathryn G.: So good to ask that first. What do we mean by hybrid because going back to, you said science, you take a red flower and you mix it with a white flower and you get a pink flower. Well, you can't really mix traditional with self and come up with hybrid. It's actually an animal of itself. I like to use publishing services company as a way to describe the hybrid. It just basically means consulting model or an author investing model into a company. And what I saw there with the hybrid group was the biggest dramatic differences. Kathryn G.: If you looked at a curve, it wasn't normal in terms of happiness factors and things like that. It was really lumpy on one side versus the other. So what I would say about hybrid publishing is that you really need to do your homework before you invest in a hybrid publishing company. There are some excellent ones out there and there were some really great stories and great results in the survey from the hybrid published group. But there are also a couple of horror stories. So it's about doing your homework really in that area. Stephanie: Did you find that some of those horror stories were with the bigger, I call them the big box publishing firms? Kathryn G.: I took out all the names of any companies or any coaches or anything that gave away anything. I took those all out of the findings report. But I know when I was doing the survey was when Tate Publishing went out of business and I knew this for a fact because I was in touch with the author, there was one author that she was just empty-handed. She had paid in already to Tate publishing. I don't know if you consider them... They are a big company, but they are financially unstable. They took no money from authors and then authors got nothing out of it. Kathryn G.: So it was one of those things where you have to really, you do your homework, you talk to people that have used the services before. You make sure that you are investing in the right company and if you can make sure that they're financially stable. And that can be true also of traditionally published authors. And this wasn't necessarily somebody in my survey, I just heard about this as a friend of mine. Their traditional publisher went out of business and so her book was no longer available. So there're all kinds of things with the financial stability of the company itself. Stephanie: So did you discover any financial traps that maybe authors could avoid? Kathryn G.: Oh definitely. And I would say at the top of the list would be to be really careful about a contract. And so that's going to be in the case of a traditionally published author or a hybrid. You are typically signing a contract upfront and I would definitely suggest that you get a lawyer and yes, that is an investment. But there was one very, very clear story from the survey where this person was trying to get out of a contract and it was costing her probably a whole lot more than if she had just negotiated an escape clause into the contract in the first place. I'll read a quote from, this is from my traditionally published author group. It says, be careful negotiating the contract. Find out all you can about using a traditional publisher before you sign. Kathryn G.: And I know the background story to this author, it turned out that she had signed a contract and they weren't going to distribute her book digitally. So her book really wasn't available anywhere as an ebook and she had to buy the rights back for her book. And so it was just a crazy story from that perspective. So contracts involving a lawyer upfront and then going really back to what I was saying about the self-publishing group, not budgeting ahead of time and not having enough for marketing and publicity. That's just another trap is that you just charge ahead and you don't do a complete budget across all the areas of publishing. And then you run out of money, and in the case of the self-publishing group who sold the least number of books, they also spent by a significant amount, the least amount of money on marketing and publicity. Stephanie: Yeah. I always think back when I got my first book deal, I got it myself and without an agent and when they sent over the contract, I wanted to literally cry. It was so overwhelming. It was 23 pages and I didn't understand half of it and I didn't know what I could ask for or not ask for. And so I ended up hiring a professional who helped me negotiate by contract. But boy, that is something you definitely don't want to navigate alone. And the same side on the hybrid publishing, you want to make sure that your agreement is cancelable. I've heard this from a number of authors who've gone with firms that even though they've paid five or 10 or even 15000 or $20000 to have their books produce, they're locked into a contract for up to two or three years, that is outrageous. So that should never be allowed in a hybrid contract. Kathryn G.: Agreed, yes. Stephanie: Yeah, for sure just great data you uncovered. What are some of the positive results for authors who invest in publishing? Kathryn G.: Oh, I got so many great stories and most of it is in the quotes and I'll just pick one. I think this is from myself published group and it starts out with go for it. And then she had a couple of other things that she put in here and then she said, "After I published my book, I had been out there promoting it. I started getting calls from people saying we're looking for someone to come speak to our organization, we're looking for the experts. You've authored a book, we want you." So the idea is that really book publishing is it changing people's lives and it's making them the authority. It's making them the experts and those are the inspiring messages that I got from the survey. And again like the science experiment that you expect it, but I wanted to see that happy satisfaction results. Stephanie: Yeah, that's exactly what we aim for in the nonfiction world here. What about setting a budget for authors who are embarking on self-publishing and traditional publishing and hybrid? Are there different types of budgets for each of those that you recommend? Kathryn G.: Yes, definitely. And again, this is based on the averages and medians and highs and lows and you're looking at the 25th and the 75th percentile and what it did in terms of book results. But I would say to create a professionally produced book, which is really the goal. If you're going to self publish this yourself, you really need to set aside around $7000 for the book development. And that's everything from logistics to the multiple stages of editing. So developmental editing and copy editing and proofreading, and then really getting a great cover and the interior design, all that needs to be budgeted. And I saw the numbers come out to be about $7000. Now if you want to get a coach that it's not included in that number, so you want to make sure that you include any kind of coaching. Kathryn G.: And I saw on average about three to $5000 in coaching across the different groups. Mostly, again, this is paid in for hybrid or out of pocket for settle. And so that's just the development side. But then as you look at the marketing and publicity, Stephanie, I know we've talked about this before and how marketing and publicity time-wise can end up being even more by a huge factor than your writing time, and I've heard everything from four times to 10 times should be spent a time-wise on marketing and publicity. Kathryn G.: Now, if I said that for cost, like you had to spend four to 10 times the budget on marketing and publicity, I think everybody would just completely shut me out because those are huge numbers. But I would say based on what I saw in the results, that if you can set aside another 7000 for the rest of your whole journey, which is your marketing and publicity and you add the website, the blogs, getting on TV, radio, that's where I saw the best results were actually about $7000 there. So we're talking about $14000 in total. Stephanie: Yeah. And I would think, especially if you're talking about developmental editing, that number could actually be a lot higher because depending on the amount of developmental editing you need, not every author needs a higher level of editing, but I've seen that get pretty expensive. So that's interesting. And the other thing about investing in marketing, I always think this is a tricky part for authors because it's really hard to earn back your investment in marketing because books have such a low-profit margin. And that's why I really encourage the nonfiction authors to think about other ways their book will benefit them. Like that comment you just read about the author who is suddenly invited to speak and got these other opportunities. I just want to call this out and encourage authors to be thinking about the ultimate goal and the bigger picture and can you market beyond your book? Are there other ways you can make it earn money? Where are you hearing from authors that any of them were actually making money? Or are there any earnings reports? Kathryn G.: Well, the sad story is that most books do not earn-out. And I have to say, we didn't even talk about the one component which people might be thinking about, and that's also ghostwriting. And so my survey data said that even traditionally published authors are spending around $25000 out of pocket and that's what the traditional deal. So that's another huge component of the budget that one needs to think about if they want to get help there. But no, the answer is that most books are not actually going to earn out on the book sales themselves. But as you teach, Stephanie, and then I hope everybody is learning today, it's all about the back end, it's the products and services that we can sell to our audiences because they really get to know, like and trust us. Kathryn G.: And that's what a book does. I always encourage people when they're thinking about their book and they get all hung up on the price of a book, I always say, you know what? You're not trying to actually just get somebody to spend $10 or $15 on you. You're trying to get them to spend maybe 10 hours or 15 hours on you to consume your content. That's actually the struggle today, so we just need to get into that mindset of it's about building relationships with our audience for the longterm and the know, like and trust factor. Stephanie: Well, and I'm thinking about our memoir authors and a lot of times they don't have companion services and things to sell. So in that case and really for everybody that's a time to focus on book sales. Can you sell a thousand books to corporations or non-profits or other large agencies that will distribute or give away your books and maybe you add their company logo to your cover, things like that. Did you happen to cover any of that with your survey? Kathryn G.: Oh, that would be the specialty sales. That wasn't in the survey, but you're right, that is whether you want to call it selling books by the truckload or just those specialty sales channels. That is really where I'm hearing again, this is more anecdotally, but then I'm hearing success stories and where people actually, when you're starting to sell books by the thousands, you make your money back, for sure. Stephanie: Yeah. What other insights have we not covered that you gained from publishing this survey? Kathryn G.: Well, I just think it's important for people when they start out, they just need to, again, I really believe that happiness or satisfaction, whatever you want to call it, it's like an equation. It's the reality minus your expectations. So if you have super high expectations and the reality is not so great, then your satisfaction is going to be low. So it's important to think about your goals, about your why in general, what your writing in your nonfiction project. But it's also important to set out your financial budget and then be visiting it, at least on a monthly basis. So I would suggest people create a spreadsheet and they say, okay, what are the parts of development whether it's coaching and ghostwriting, which are some of the big numbers to logistics and editing, and design and cover copywriting if they were going to do some of that for the back of their book. Kathryn G.: Some people hire copywriters as well for the back of their book. Just put the numbers in there, take a look at them and make sure you're okay with them. And if you end up spending that, that you're okay. And then for marketing, the website ads it giveaways, awards, review copies. Stephanie, you talk all the time and I think it's so important about, people they need to set aside a number in their budget to have books that they can give people. And that is a cost, it's actually not a soft cost, it's a hard cost. And so from the get-go, having that number in there I think is really important. And the same thing with publicity, just set it out there and you know what? If your book, it just takes off like a rocket and I'm so excited it does. Then you can adjust those numbers up, but at least you have a way to gauge, again that satisfaction equation you've set some expectations. Stephanie: Yeah. And I know you're not an accountant, but the other thing about all these expenses is that you're really creating a business. So these expenses can largely be written off during tax time. Kathryn G.: Absolutely. In fact, I think anyone that's writing a book, especially a nonfiction book, they need to be treating this book, this project, their set of books like a business. And that means getting to know the industry. When I was in management consulting, I didn't just start working on a project without really getting to know the industry well. And we always budgeted that into our whole project, and our process was spending time up front, getting to know, and if I was going into the telecommunications industry and I had just been in a manufacturing industry, I needed to know how that new industry that I was entering, how it works. And what some of the success stories are and what are the pitfalls. It's the exact same thing, if we're treating our books like our business, we need to know the industry in which we're operating. Stephanie: Yeah. And not only that but also just learning some basic fundamentals of starting a business. Because if you aren't already an entrepreneur, which many of our members are, but if you're just starting with your first book, you really are launching a business from the ground up, which has its own pros and cons. Because then you're talking about factoring in writing off utilities and things like that. If you've got a dedicated office space in your home and I think neither of us is an accountant but think that IRS will let you go for, I think it's two or three years before they start to view an unprofitable business as a hobby. So a new business is expected to lose money in the first couple of years. So that really does help to offset some of these expenses. Right, Kathryn? Kathryn G.: Oh yes. I have been in situations where I needed to do that. Stephanie: Yeah. I think every new business owner has been there and so, but that also gives you some incentive to make that spend because it is going to help you offset it at tax time and you're tracking those things and maybe you're hiring additional help with a virtual assistant and it's a great time to get a bookkeeper if you're like me and you absolutely hate numbers. Keeping track of all of that is really important. Are there any mistakes that you recommend that authors try to avoid from all of this? Kathryn G.: Well, gosh, I'm just piggyback off your comment there of finding people to help you. A big mistake is, especially if you're self-publishing is to literally think about it as self. Self-publishing, it's everything but self. Meaning you need a team, you need people to help you. You will be miserable if you try to go this path alone. And I think there is some romantic feeling around getting a cabin in the woods and writing. And we've heard about that, it doesn't work today and whether you want to look at it just like you were saying like, "Oh, I really wanted to find somebody to help me with these tasks." Kathryn G.: You can look at it in almost as a matrix. I look at things on one axis, like what am I good at? And then high, low, and then what do I love to do? High, low. And I can tell you that if I get a low in terms of I like, I don't like to do it and I get a low in terms of I'm not good at it. That's the thing to outsource, so people, do not go it alone. Stephanie: Well, not only that, but I just don't think we should be in charge of any of the protection of our own books. As a former bookstore owner, every day, local authors walked in with their books, wanting to get them placed in the store. And honestly, I think that's what led me to the path of becoming a publisher and working with authors. Because I saw so many books with homemade covers and that old saying we judge a book by a cover is completely true. That can repel readers that make it look like an amateur job and then it's skimping on the editing which will show up in reviews. If you haven't had thorough editing, people are going to notice and they're going to put it in reviews, doing your own typesetting. Stephanie: I met an author a couple of years ago who couldn't wait to show me his book at an event and I literally just flipped through the pages and there were like six different fonts used throughout the book. One paragraph was one font and the next was another font because he thought that looked good and it was so distracting, it was so unprofessional. It was not the way to approach it. So this discussion about the budget is not just a pie in the sky discussion. It's a really important one that if you want the world to take your books seriously, you have to be prepared and maybe start saving now for your future goal of getting your book produced. Would that be a safe piece of advice, Kathryn? Kathryn G.: Absolutely. And a good interior designer and having a budget line item for that would have saved that person's book. The person that gave you that book could have been saved by an interior designer so easily, so quickly. Stephanie: For sure. And I always think back, I came from the Silicon Valley, and I had just made a plan that I was going to quit my job and I was going to open this bookstore and it was a crazy plan. I could admit it looking back now, but I spent a year and a half building a business plan, putting money aside, building a budget and planning for that. And if you're listening to this and you're in the middle of writing your book right now, this is the time to start this planning and prepare for getting the best production possible for your book, and hopefully also investing in good marketing. Kathryn, this has been so helpful. Can you remind everyone where they can connect with you and where we can access your survey data? Kathryn G.: Absolutely. I'll start with the survey data. So that's at my website, makewellnessfun.com and so it's just makewellnessfun.com/authorsurvey and that actually gets you to a 40-page report that summarizes all of the data across this huge survey. And I hope everybody enjoys looking at all the nitty-gritty information there. And then I have a website, makeeverythingfun.com and there, people can access a summit with 27 publishing experts including Stephanie, some great information there and a new podcast called a Positive on Publishing. And then I've got a new course coming out that goes through some of this financial preparation, but just basically industry preparation in general. Stephanie: Fabulous. Well, thank you so much for being our guest today. Kathryn G.: Thank you so much for having me. And thank you for your great work. Stephanie: Thank you. And thanks to everyone listening, we conduct our teleseminars every Wednesday. You can check out the schedule or sign up for the mailing list to get notified about events over at nonfictionauthorsassociation.com I hope you all have a wonderful day.

The Frontside Podcast
057: Demystifying Software with Liz Baillie

The Frontside Podcast

Play Episode Listen Later Feb 9, 2017 47:43


Liz Baillie @_lbaillie | GitHub | Blog | Tilde Inc. Show Notes: 01:32 - Becoming a Developer 07:54 - Website Building 12:03 - Understanding Programming 17:34 - Coming to Peace with Ignorance 22:25 - Systems Programming 26:46 - Making Goals for Yourself 28:57 - Math and Programming 38:08 - Open Source Resources: Wicked Good Ember Liz Baillie: Journey to the Center of Ember Test Helpers Fibonacci Number Freewheel: Volume One by Liz Baillie The Flatiron School Skylight Impostor Syndrome Twilio Letter to a Young Haskell Enthusiast Hello, Con! OSCON Transcript: CHARLES: Hello, everybody and welcome to The Frontside Podcast Episode 57. My name is Charles Lowell. I am a developer here at The Frontside and with me is Stephanie Riera, also a developer at The Frontside. Today, we have with us Liz Baillie, who is a developer at Tilde. I am actually really excited to have Liz on the show. I saw her at Wicked Good Ember back in June of 2016 and her talk was definitely one of the more memorable ones. You come away from a conference kind of only remembering a certain number of talks that stick in your mind and as time passes, the messages may fade but some of the message just stick with you and the one I got from her talk was a feeling of empowerment that, even though I have a lot of experience, I could approach any code base and try and grapple with it and understand it. I came away thinking, "There are a lot of code bases out there that I don't understand but if I apply a certain set of techniques and a certain level of fearlessness, I will actually get there." You know, if I want to go attack something like I don't know like Kafka or something like that, I would feel better about that. That was actually a great feeling coming away from that, a feeling of great power so thank you very much for that, Liz. LIZ: Yeah, no problem. CHARLES: Why don't we start with a conversation of how you came to be a developer? Everybody's got kind of a unique path. What's yours? LIZ: Well, I went to art school and I studied comic books. I actually have a bachelor's degree in comic books. I was a cartoonist for a number of years and at some point, maybe like 10 years ago, I had a friend who was a programmer. He's a web developer. But I didn't even what's a web developer was. But I knew he worked at home and he made his own hours and he made a lot of money. It seemed like an awesome job so I was like, "How did you get into that?" And he's like, "I don't know. I just kind of mess around and figured it out." And I was like, "Uh... I don't know what that means." Like how do you start? I have no idea. I went to the bookstore and I look at the For Dummies books and I got Programming for Dummies or something and it was like Visual Basic, I think. CHARLES: All right. What year was this? LIZ: That's 2004. I guess, it was a little more than 10 years ago. But it didn't say that on the cover. It was like 'Programming' and I was like, "Oh, cool. I'll learn programming." I don't even know what the difference of languages was or anything like that. I did a couple of exercises in that book and I had no concept of how this would become a website ever. I was making 'Hello, World' and little things that spit out Fibonacci numbers or whatever. I kind of gave up on that and I was like, "I don't care. I don't mind being poor." I'm used to it so I kept being a cartoonist, putting out books and stuff. I did a little PHP and HTML type of stuff in making websites for myself in between but I don't really consider that programming. It didn't feel like programming. CHARLES: Did you ever put any of your cartoons on the web? LIZ: Oh, yeah. Google me. They're there. [Laughter] LIZ: I might have some stuff like my web comic, I'm not sure if it's still up. But I had a web comic called Freewheel, which was about this girl who runs away from home and joins a band of magical hobos. CHARLES: That sounds like a career change to programming. It was oddly prophetic. LIZ: Yeah. It's out there. Anyway, I got to a point where, long story short, I was tired of being broken for all the time and I have to figure out some way to make money that I like doing so I thought, "I would go back to school," so I went back to school. I didn't start out with computer science but I took some math and science classes and I got really into math a lot. I really enjoyed math so I started looking into what careers can I do that are math-y. Somebody said, "If you enjoy the problem solving aspects of math, you'll love computer science," so I took a Computer Science 101 class or something like that and I got really, really into it like I just killed it. I just loved it. It was awesome. But I still didn't understand how you made that a website. In the back of my mind, I was like, "We did this thing --" We learned Python in my class so there's some program we had that like move a little turtle around and do pictures or something. I was like, "I don't understand how this makes a website." CHARLES: You got to move that turtle around a lot, especially like account for the kerning in the fonts and stuff. LIZ: Yeah. I have no idea how you make that a job, like the stuff that we were doing like spitting out Fibonacci numbers and making a little adventure game or something but how does that translate into anything else. That was in 2014 and that was around the time that web development bootcamps were starting to be more of a thing. I heard about a school called the Flatiron School in New York which is right at the time and I thought, "This sounds great. In three months, they'll actually teach me how this makes a website and finally know how does this make a website?" I applied in kind of like on a lark. I don't think I'll get in, I didn't know how can I afford it or anything and I applied and I got in. I was really lucky that my stepdad help me pay for it so I don't have to worry about it. I did that in three months and then I got a job. In November 2014, my first web job and now I know how those codes make a website so here I am today. CHARLES: What a journey. LIZ: Now, I live in Portland, Oregon and I make websites. Not really, I work on web apps, I guess is more accurate. CHARLES: So you actually went straight from the Flatiron School to working at Tilde? LIZ: No. I was in New York at the time and my first job was at an ad tech company called SimpleReach and I worked there for a little over a year before I got the job at Tilde, then I move to Portland. A year ago yesterday was my first day at Tilde. CHARLES: Fantastic. Knowing that company and knowing what they do, they must have you doing some really, really fascinating stuff. LIZ: Yeah, I do a lot of typical web stuff. I work on the Ember side of our app, Skylight. I also, more recently have been working on Rails engine that's also a gem that spits out documentation automatically, which is pretty cool. CHARLES: Now, is this documentation for the product or is it just documentation for any real site? LIZ: No, it's for our products specifically but I don't think it would be very difficult to alter for someone's personal needs, other than ours. But it's basically like if someone can write a markdown document, then we'll parse it and spit it out into HTML and all these different places so that it just updates the whole documentation site around our products. CHARLES: Basically, there's an infinite amount of stuff that has to happen to make a website because there are literally so many moving parts. What's been your favorite kind of area, I'll just say the whole website building because that really is like the tip of the iceberg. The actual iceberg goes way, way, way beneath the surface. But what's your favorite location on the iceberg so far? LIZ: I kind of like the middle, I guess. I always feel bad saying it because everybody talks badly about CSS but I just don't like it. I tried it really hard. One of my resolution this year was I'm going to try really hard and I'm going to like it more. But what I like the most is whenever I get to do pure Ruby. I learned Rust in the last year or two and anytime I get to make the stuff behind the visual aspect work or kind of like meta stuff. I'm saying this and it's totally wrong but I did my first meta programming the other day or last month. The metaprogramming that I did ended up getting cut out of [inaudible] but I got to do it before it got deleted. It was pretty cool. CHARLES: That's generally how it works. Metaprogramming is the program we do that we end up hating ourselves later for but it's really fun. LIZ: Yeah, they're like, "This is cool but this is not the most efficient to do this." It's like, "I guess, we don't have to dynamically create methods based on all our filenames. CHARLES: As far as the CSS goes, I actually see CSS like raw kale. It's actually really good for you, if you like to it eat in large quantities and it's like fantastic but it's not always the most pleasant going down. LIZ: It tastes bad. It has a terrible feel. It's like eating rubber. I am really lucky, though that I worked with a couple of people who are incredible at CSS and when I get to pair with them, it's like watching magic happen. CHARLES: Yeah, you realized, for all its quirks and strange ways that you approach it, is an outlier but it is kind of a fully-formed programming model that has a lot of depth and a lot of people have really, really generated some pretty neat abstractions and ways of dealing with CSS. But it is like, "I just want to fix this one thing," and it's basically a sea of things that I have no idea how to navigate. LIZ: It's one of those things. I always think it's funny, anyway that I come from a visual art background but the thing I like about programming is anything visual. CHARLES: That is actually really is fascinating. LIZ: Yeah, when they hired me here they're like, "You're going to be really good at design," and I'm like, "I just want to do programming." CHARLES: Like never the temptation, like this is just because you've actually kind of drank your fill of that in a past life? LIZ: I think I've talked to my coworker, Kristen about this because she actually has a design background and we paired together all the time. She's one of the people that I was talking about who are geniuses at CSS. She's a genius at it. She has a design background. We've talked about this how art and design are kind of different, like the brain stuff that I use to make a comic is really different from designing a book cover or designing an experience. It's all part of the art side of the brain but it's different compartments of the art side of the brain. I don't really have a design background as much as I have like a narrative and a drawing background. STEPHANIE: That and your interest for math that probably has a factor. LIZ: Yeah. STEPHANIE: Going back to your journey, I wanted to ask about it seems like it took you awhile to knock on different doors and finally feel like, "Now, I understand. How do I work with what I have to create a website?" We have similar backgrounds in that. We didn't start off in programming and I also went through a code boot camp. But mine was a little different where when I finish, I didn't really feel I understood what programming really was. I still felt like I understood a primitive level like just building something, just a 'Hello, World' using HTML CSS. When I finished, it took me a year and a half to actually get a full time programming job, like a legit job. Before that, I was scrambling doing three part time jobs and lots of WordPress grunt work. Even though I thought it was actual experience, it was enough experience but I feel like a lot of the programming concepts that I've had to learn and just basic functional programming, I've learned it on the job. I don't yet feel like I am a legit 'real programmer'. We were talking about the Pinocchio thing like, "I'm a real boy." But I want to be a real programmer. [Laughter] STEPHANIE: What I'm curious about is at what point did that happen? When did that click and when did you stop having -- I'm sure at some point you had -- impostor syndrome? When did that just evaporate and you're okay? LIZ: I still have impostor syndrome all the time. It's weird that it's like I have a sense of, "Oh, I can figure anything out." At this point, I know who to ask or where to look and I could figure anything out if I really wanted to. But I also feel like everyone else is better than me. I get impostor syndrome in that sense, not that I'm not a programmer but that everyone else is better than me. When did I start feeling like I was a real programmer? Definitely not at my first job. When I started my first job at SimpleReach in November 2014, I had two months in between bootcamp and the job. In that time, I made some weird little apps but nothing super serious. I made an app that I use the Twilio API to anonymously text Seal lyrics to people. It sends either lyrics from Kiss From A Rose or a fact about Kiss From A Rose. You can choose which one. I made stuff like that. CHARLES: [Singing in the tune of Kiss From A Rose] There's was so much in app can tell you so much it can touch. Okay, I'll stop. I'll stop right there. I promise. LIZ: Yeah, so I did stuff like that and I sort of wrote my own crowdfunding to go to RubyConf because I gotten an opportunity scholarship ticket that year. But I couldn't afford to go otherwise. I did a little crowdfunding thing but I did little things like that. I didn't really feel like I understood everything so I was looking on other people's code and forking stuff to make all that happen. Then I got my job and it was small-ish start up at the time and they didn't have a whole lot of on-boarding at all. It's kind of like I showed up, they gave me a computer and it took me three or four days to get their app running locally. It was just a lot of leaving me to my own devices a lot of the time in the beginning and I was kind of like, "I don't know what I'm doing. What do I do?" It took a while. As the company matured and as I matured as a programmer, they kind of develop a little more infrastructure, I guess for supporting junior engineers. As time went on, I became better and they became better at mentoring me. I don't know when I felt like a real programmer, probably sometime in the middle of that job. I gave my first technical talk, I guess or conference talk at EmberConf in 2015. I gave a lightning talk at the behest of the Leah who is now my boss. It was a five-minute talk on why testing an Ember sucked at that time. It sucked for me to learn and it was really hard. I wanted to learn it but it was really hard. Then after that, people started talking to me. They came up to me after and they are like, "Oh, my God. Blah-blah-blah." I was like, "I don't know half the stuff these people are saying. I don't understand what you're talking about." I'm going to smile and nod. But maybe a little bit after that, I kind of started feeling more that I could solve problems. I think public speaking actually helped me a lot with that like when I realized that I had something to say and that people want to hear it, then I could help other people feel empowered to learn stuff, I think that was part of it as well. CHARLES: Yeah, I really like that. Obviously, I'm going to push back a little bit on Stephanie, just in terms of the day-to-day. You definitely deliver daily as a programmer so you can look at that. You've mentioned this at the very beginning of your answer and it almost really sounds like what you came to be was more of a kind of a peace with the things that you didn't know, rather than feeling confident about the things that you did. You said something and I'm going to paraphrase it but it's like, "I got to the point where I became sure that I would be able to figure it out." Or, "I had strategies for being able to figure it out." Maybe we can unpack that a little bit because I feel that's actually very, very important and that's a skill that's important to have at any level of experience in your career, whether it's one year or whether it's 20. Certainly, that message when I saw you speak that's something that I took away as a very experienced developer. I felt actually empowered by it. What are some of those mechanisms to feel at peace with your own ignorance? LIZ: I think part of the problem for me, I started learning how to program before I went to dev bootcamp or whatever, that I was really good at stuff. I actually think that was a problem because I was used to succeeding immediately or like always doing everything right so it's hard when you start learning something and you don't realize when you first start learning programming and it's not supposed to work immediately, like you're starting with something that's broken and you're making it work. CHARLES: Right. In fact, 99% of the experience is like every time I look at a piece of software, I'm like, "Someone sat with the broken version of this for a year and then it work and that's what I got." They got to live with the working version for two seconds before it came to me and they spent the rest of the time, totally broken. LIZ: Yeah, totally. It's hard when you're used to creating something from scratch like doing comic books and like writing stories and stuff. It's never broken it's just blank and then you add to it so I'm used to that sort of workflow. Then I started in this new field where Rails is new or whatever then it's just errors as far as the eye can see until you fix it, until you configure it, you made it work. It's hard to change your mindset into that. It's easy to feel like a failure when all you see is errors and you don't know that that's normal. I helped a couple of my friends to learn to program and I think the biggest hurdle is just mentally overcoming that it's not you, you're not a failure. It's just that everything's broken until it's done. STEPHANIE: I can definitely relate to that. I was always one of those overachievers, straight A, AP class. I'm not even kidding. In my high school, they called me Hermione, which for those that don't know, that's the girl from Harry Potter. It's like you take it really personally when you feel like you're a failure. You feel like you can't deliver, you don't pull your own weight. For me, it's actually so overbearing that it can even inhibit you from doing things like public speaking or other activities. But one of the reasons why I do like to teach whenever I can is because that's when you realize, "I do know a lot of things," like how to do stuff on Git and just basic things that you don't even think twice about. I volunteered for this these high school girls and no one really gave me any instructions and I just rolled out of bed for this thing and just have them build a basic cute little web page with their picture and this and that. I had to really think hard to how do I put just a regular image tag and I had to peel back all the old layers of stuff that I don't do anymore. You don't think about those kind of things in Ember or JavaScript frameworks. I caught myself in keep on saying dom and this and that and they were like, "What is a dom?" And I'm like, "Urghh." But then I realized, I do have all this context, I guess I don't appreciate it or something. LIZ: I think talking to beginners when you're slightly above beginner-level in helping other fresh beginners is one of the best things for you as a new developer because you realized, you're like, "I actually know stuff." STEPHANIE: Yeah, that's usually the type of advice I like to give to other aspiring junior programmers. I also wanted to ask about it seems like now you're going through something similar because you tweeted or you're asking about systems programming. What's that like? LIZ: I'll start at the beginning. When I started at Tilde about a year ago, I knew that we use Rust, which is a systems programming language, a lower level language than Ruby or JavaScript. We use it for some aspects of our stacks. I thought, "That's really cool. I want to get into that nitty-gritty type of stuff so how do I learned that?” I started learning Rust but I didn't really know how to apply that knowledge. I wrote like a little adventure game in Rust and it was almost exactly the same as when I first started learning about web development, it's similar to how does this become a website, instead of like, "How does this become a computer thing?" I don't even know what systems programming is but I hear Rust is a systems programming language so I want to learn that stuff, like what is that stuff? A couple months ago, I think it was, I tweeted like, "Anybody have any probably three systems programming resources so I could learn more about systems programming?" And I got huge amount of responses. Everybody was super kind and helpful but a third of the responses were like, "Well, what kind of systems programming?" And I was like, "I..." [Laughter] CHARLES: "The kind that happens on a system?" [Laughter] LIZ: I don't know. It was kind of the same thing. I think I used this metaphor earlier but it's similar to when I first started learning programming it was like I was standing at the front of a forest and I knew that the stuff I want is in the forest but I don't even know what a tree is, you know what I mean? Eventually, I learned what a tree was then I learned what a map was and I learned how to get through that forest. But then in the middle of that forest, I was like, "Oh, there's a tunnel," like there's another stuff. "I want to get on to this tunnel," but I don't know anything about living underground, you know what I mean? Like, "What do I need? What even is there?" I have no idea so that's kind of how I feel about systems programming. At the moment, I'm trying to go into this tunnel but can I breathe down there? I don't know. Where does it lead? CHARLES: I feel like at that point when you're about to enter into the tunnel, can you intentionally apply filters for information that at that point is not useful like the difference between a stalactite and stalagmite is not useful when you haven't even gone into the cave yet and you're just like, "How do I actually just get down there with a flashlight?" How do you go about deciding which information is useful and which is not at your particular stage? Because obviously, it's all going to be useful at some point but at what point it becomes useful and what point do you just catalog it and put it for later? I feel like that's very, very hard thing to do. Do you feel like you're able to do that? LIZ: I'm not sure. I think I said this earlier but I feel like I can figure most things out at this point like if I really want to. One of the things I learned just from talking to people on Twitter about systems programming is like, "Oh, some examples of systems programming are operating system," or like a browser engine because I'm still learning Rust and I gotten to write as much lately but I know that there is servo which I believe is a browser rendering engine written in Rust, it's something like that. CHARLES: Supposedly it's going to powering Firefox at some point. LIZ: Yeah, stuff like that, I think is really interesting but now I know a little more about what to look at in terms of as far as I understand, there is probably an infinite amount of different kinds of systems: operating systems is one, maybe a browser engine is another. I can't remember the others but I'm sure people tweeted it out to me. STEPHANIE: I feel like we touched on something which is it can get overwhelming when you're starting off in something new. Trying to understand what you don't know that you don't know. LIZ: Yeah, that's the hardest thing. STEPHANIE: How can you make tangible goal marks for yourself if you don't even know what you don't know? When I first started off, when I would pair with someone that was more advanced, I remember having a realization that every time I would look for an add-on or I'm looking at someone's repo, I would take my time to read everything about it, all of the Ember documentation and I need to know everything. Then later I realized that is totally not the case. Like Charles said, people develop this filter for noise and only focusing on not the entire tool box but that one tool that they need for that one specific thing that they're doing and I realized it only when I was pairing with people and seeing that. They go to this repo, skim it, "No, this is not what we need. Let's go to the next one. Let's try to find a method that what we need," and then they would just search on the page. "Oh, this looks kind of similar. Let's plug this in," and I'm just like, "What? You can do this? You can just copy/paste someone else's stuff?" and it was amazing. But when you're starting out, you don't know all of these things and unfortunately, kind of waste a lot of time thinking that you need to know everything and you don't. CHARLES: Yeah, Cheating is totally a virtue in so many cases. [Laughter] LIZ: Totally, for sure. CHARLES: Just being like, "I don't need to understand this," but I just know that it works. You pushed at what point that happens like further and further back but that boundary of understanding is just simply always going to be there. No matter where you are, that kind of veil of ignorance, you can push it out but it's just can be further away. I am actually curious, you mentioned you got really into math, this is when you went back to school. What drew you to that and how have you applied, if you've applied? Have you found it to be an asset in your development career? LIZ: For sure. When I first went back to school, it was with the idea that this is totally different now, obviously. I thought I might become a veterinarian -- CHARLES: You need a lot of math for that, right? LIZ: Well, it's like a lot in biology and there's a lot of math and science and stuff. I had to take a bunch of science classes and take biology and chemistry so that involved taking some pre-calculus and calculus and more calculus. What I realized, though was that I hated biology and chemistry but I love the math that I was learning. I loved the process of problem solving and just figuring out puzzles. When you get into calculus, how you solve problems, they're similar to how you solve problems in programming where you have sort of a framework like I have this certain language which would be the different theorems or whatever in math and you can just pick and choose which ones will fit your problem and if you're taking a calculus test, you could be sitting next to the same person and you might come to the same answer in different ways so it's similar in programming where you have all of this documentation, you have these languages, you have use other frameworks and you can solve the same problem in a million different ways. But in terms of how people talk about needing math for programming, I don't necessarily think you need math for programming but if you already like math, it's definitely sort of a happy path, I guess because you get the same joy out of programming that you get out at solving calculus problem. But if you don't like calculus, it's okay. I don't think it's necessary. CHARLES: One of my favorite blog posts of all time is this letter to young Haskeller, I don't know if any of you guys have ever read that. It's fantastic and it's an experienced person in the Haskell community talking to someone who's just coming in and it's incredibly empathetic and wonderful. I think it's a message that needs to be heard more generally. I think it's ironic coming out of the Haskell community as it does because they definitely have a reputation for being a little bit salty and a little bit exclusive. But it's actually a very inclusive message. One of the great points they make is they say we've got the whole equation reversed. It shouldn't be, "Math is hard, therefore programming is hard." It should be, "Programming can be really fun, therefore math on which programming is based, can also be really fun." You can go both ways. If you find math fun, you can find programming fun and if you find programming fun first, you can later go and have fun with math. You can pick and choose which parts you want. I think it's a great message that needs to get out there. LIZ: I think it's also really, really important to note for anyone who might be listening that is getting in to programming, that is scared of math or has had a bad experience with math that it is not necessarily to love math. I think that scares a lot of people away and a lot of the stuff that people learn when they're first learning programming are math based. When I was in the Flatiron School, Some of the exercise we did in the beginning with just pure Ruby were Fibonacci sequence. They were sort of math-y and that turns a lot of people off and makes people scared. If someone is hearing this and has experienced that, don't be scared. You don't need to worry about it. But if you love math, then it's great but you don't have to. STEPHANIE: I'm one of those people that always had this mental block of like, "I'm not good at math." I was good at everything in school. I excelled at everything except math. I think a lot of it came from my struggle when I was a kid so you have this self-perpetuating thought that you aren't good at something. Every time you take a final or something, you blank out because you have this mental wall in your mind. What I found weird was I was doing the exact same thing. I was taking calculus for bio-sciences and physics too at the same time. In physics, I loved that class. It was so awesome and I realized that half the stuff I was doing was going backwards in all of my problems and it was fun for me. Eventually, I was taking a final for my calculus class and I didn't remember the equation that we needed for that class so I took out all the variables and I solved it as if it's a physics problem and I got the same answer and I was correct. I realized at that moment, if you just remove the negativity from your mind and you try to apply yourself in the same fashion as you would in something that you enjoy, you'll just forget for the moment that it's math, that it's something that you 'suck at'. You actually could do good in it and not get stuck. I realized I actually do like math when it's veiled as chemistry or physics. LIZ: I think a lot of people have that experience with math. They have a really bad experience when they're young and then they get stuck and they feel like they're just not good at it like somehow, on this subatomic level, you just can't change it or you're not good at it. It's not really true. STEPHANIE: Yeah. CHARLES: I actually love that example because it is, it's all integrated. We are constantly doing things like math without even realizing it. Actually, one of the things I love about the Montessori education is that's the way they actually teach it. They have all of the different great lessons, they want to convey to the children which is things like courtesy and grace, things like taking care of your things, things like music. But for all, I think they've got a bunch of different categories but they make sure that they always intersect with each other and you get that in surprising ways to make sure that if a child likes music, use the music as a way to introduce them to arithmetic. If they like arithmetic, use that as a way to introduce them to music. If they have things doing design, I don't want to say, interior designer or clothing design but practical life stuff and if that's something that a child really is drawn to, then they'll use that as an introduction to music or geography. There's all these parallels that are constantly there and you can ride whichever rail works for you to whatever area that you want to go. There is no set way to approach math. You literally can find a way that works for you. STEPHANIE: The subjects aren't mutually exclusive, "Because you're not good at this, probably you shouldn't become a programmer." CHARLES: It's not expected that every child will grow in one subject at the same rate that they'll grow in every other subject. They just let the children explore the area that they're interested in and let them go crazy. If they're really into art, they just let them explore and learn as much as they can and then slowly entice them and just show them the connections that art has to courtesy and grace to math to music to other things and let them see those connections and then follow them on their own. That's why they call it -- the kind of grown up in there -- the guide. It's really there. The way that they push is by showing them the connections but then using the kind of internal motivations of the children to move. I actually have some pretty strong feels on this. I feel like our education does leave a lot of people behind because there's this expectation that in every single subject, everybody will goose step forward at exactly the same rate and that's just a fable. It's not real. It's not how the human mind works. LIZ: Yeah. CHARLES: But yeah, I actually think, certainly for me and my connection to math has been helped by the fact of programming and now, later on after having done a lot of programming, so much more is interesting to me about math and I can see beauty in it, I think where I didn't see beauty in it before. STEPHANIE: For one of the projects that we've been working on, we have been doing an Ember upgrade. I basically needed to get some changes for one of the dependencies and I have no experience in open source, whatsoever. That happened for the past two weeks. I was making a lot of PRs to two different dependencies and that was my first experience with open source. It was less scary than I had imagined and I actually got a lot of great feedback from it. Now, I realized that it wasn't as hard as I thought it would be and most people are very receptive to your PRs or if you have questions about their open source because they need help, they need people to help them tackle all the issues that they have so I'm curious, do you have any advice for people that are interested in contributing to open source but they may find it daunting and they don't want to look dumb or do things the wrong way? LIZ: One of the things I've been interested in since I started learning programming is open source because I enjoy collaborative atmospheres and just the idea of a big group of people coming together to solve problems. It was something that I wanted to do since the beginning but it's super intimidating because when you think of people who are open source maintainers, at least to me in the beginning, they seemed way above me like Gods so I'm like, "How can I possibly be useful to these Gods?" At my last job, my manager was like, "I got a couple of goals for you and for your career." One of my goals was I want to contribute To Ember CLI Mirage. That was a goal. I just thought, "This is a great add-on. This is a great project and everyone uses it and I love it and I would love to contribute to that." I made it a goal but then in that in the middle of that time period, I got a job here at Tilde and I went to Portland. Shortly after that, I went to the repo and I was like, "I'm going to do this thing," because one of the reasons why I chose it as a project to contribute to is because I heard Sam is a really nice guy. One of the things was that I was really intimidated by the people maintaining projects is like, "Well, he's not intimidating." I feel okay about this so that's a good first step. The second step is let's find a thing to do so I look at all the issues on the repo and I find something super simple which is just adding in-line documentation. That's what I did and I was like, "Can I pick this up?" I was feeling super shy so I didn't even want to put it on the issues so I think I just pinged him on the Ember Slack and just like, "Can I help with this?" He's like, "Yeah, yeah. That's great," so I made a bunch of in-line documentation additions to the project and I made my first PR and it felt like such a way that it's not as scary at all as I thought it would be so I started contributing to other projects, things that just came up. Not so much like in your situation where it was a dependency I was using but more like I saw somebody tweet about it and like, "I just made this project and I think there's a bunch of typos. Can somebody just spell-check this for me?" I'll go in and do a couple of typo fixes. Another situation when I was reading through a repo because I want to learn and there's a project called intermezzOS which is Rust operating system, like a tiny operating system. I was just reading the code and I was like, "There's a couple of typos. I can fix this," and stuff like that and I found, through that experience, that open source maintainers are super happy to have you help in any way that you can, even if it's a little things. In the last couple of months, I started my own project which is like an app -- it's not an add-on or anything. I actually got my first couple of PRs from other people and other people are helping me build it. I don't think I've ever met but every time I get a PR, I feel like I won a prize. Every time someone contributes and I'm like, "Thank you." I cannot give you another -- [Laughter] LIZ: I love that you're helping me. You know, like I only have one hour a day to work on this thing so anything, anyone people can do to help me is so great. Now I have the experience of being on the other side and I can attest to the fact that most open source maintainers are incredibly stoked for any help they can get. Even if you're new, just find someone who's nice and ask them how you can help. STEPHANIE: Yeah, that was a realization that I had because I was communicating directly with this person in the Ember Slack as well. I had submitted a PR and later he was like, "Hey, while you're at it, do you mind adding in this one property that's missing?" And I'm just like, "All right. Sure." Later he offered if I wanted to become a collaborator because I was putting in so many PRs and like you said, he hasn't had the time to cut out a new version or to fix the things that you keep in your head, "Okay, I'm going to go back and fix this," and then someone else is like, "I want to fix this thing," go for it. That's the best. LIZ: Yeah, totally. It's a great way to learn more stuff too. CHARLES: I like the point about choosing a project that you know is not intimidating because unfortunately, there is a lot of negativity that happens out there. LIZ: Totally, I knew that and that was a big blocker for me, for a long time. CHARLES: Yeah but knowing that there are actual, I would like to say, a majority I don't know if that's true but it can feel like it's enclaves, just because negativity has a way of clouding everything and propagating but there are certainly areas where we put that way and it's very healthy, it's very collaborative and welcoming and making a definitive effort to first know that they're out there because if you have a negative experience, you make sure that you don't bounce off of that and then define them. I really like that, how you were deliberate about that. LIZ: Yeah, it seems like the most important thing, if you're a new programmer and they're like, "How do I get involve in open source," and your first advice is like, "Find someone who's really nice." It doesn't sound like the right advice but I think it is the right advice. CHARLES: That's because that's where you'll stick. LIZ: Yeah and you'll want to collaborate with that person and that project because you're not scared of being insulted or something. CHARLES: Well, that was fantastic. We can wrap it up. LIZ: I have two talks this year so far coming up. One is going to be in Toronto at the end of this month at a new conference called 'Hello, Con!' I built a type space adventure game in Rust and I built it side by side with the same game in Ruby so I can learn Rust by doing the same thing on both sides. I'm going to be talking about the similarities and differences and things I came across learning Rust as a Rubyist. I also have a similar talk in May at OSCON in Austin about learning Rust as a Rubyist but at a slightly different, longer talk. I did a version of it at RustConf last year. It's kind of in comic book form so it's all of drawings and it's sort of a story about going to a place called Rustlandia as a Ruby person and how you literally navigate that world, not just everything is sort of a metaphor. I'm getting that talk again in a longer form at OSCON in Austin in May. CHARLES: Well, fantastic. You have to stop by the office and come see us. LIZ: Yeah. CHARLES: But thank you so much -- LIZ: Thank you. CHARLES: -- Liz for taking the time to talk with us. This is a great conversation again. You know, I feel like I'm going to come away feeling that I've got more tools to deal, certainly with my daily struggles -- LIZ: Yeah, get pumped! CHARLES: -- In programming. Yeah. LIZ: Programming! Yeah! [Laughter] LIZ: -- One of the Mortal Kombat music comes in -- Tun-tun-tun-tun-tun-tun-tun-tun-tun... [Laughter] CHARLES: I remember actually seeing Mortal Kombat in a theater and I actually getting up and dancing in the theater and then the rest of the movie just sucked. It was like they spent the whole budget on the first 20 seconds of that movie. Anyhow, all right. That's it from The Frontside. Remember to get in touch with us at Frontside.io, if you're interested in UI that's engineered to make your UX dreams come true.

Speaking of NEC: Necrotizing Enterocolitis

Laura Martin. Photo courtesy of Laura Martin. Episode 6 features Laura Martin, expert parent, mom blogger at Joseph at Home, and the Director of Parent Communication and Engagement at Graham’s Foundation—a non-profit organization that supports parents of premature infants. During the episode, Laura shares her son Joseph’s story of prematurity and survival including his near fatal bout of late-onset NEC and the multitude of life-long complications that have resulted. She discusses: The extremely premature birth of her twin sons, Joseph and Campbell, at 24 weeks—four months early, and Campbell’s passing at 23 days of life, How Joseph developed late-onset NEC and lost two-thirds of his small intestine, Several of Joseph’s secondary diagnoses including Short Bowel Syndrome, Auditory Neuropathy Spectrum Disorder, Eosinophilic Esophagitis, and multiple food allergies—all resulting from NEC, How hers and her family’s experience with prematurity led to her work at Graham’s Foundation, Her personal blog where she documents her daily life as an expert parent of a child with special needs. Copyright © 2015 The Morgan Leary Vaughan Fund, Inc. This episode was produced in part by the TeacherCast Educational Broadcasting Network. [powerpress] STEPHANIE VAUGHAN, HOST: Welcome to Episode 6 of Speaking of NEC—a free, audio podcast series about Necrotizing Enterocolitis. Produced by The Morgan Leary Vaughan Fund, and funded by The Petit Family Foundation, Speaking of NEC is a series of one-on-one conversations with relevant NEC experts—neonatologists, clinicians and researchers—that highlights current prevention, diagnosis, and treatment strategies for NEC, and the search for a cure. For more information about this podcast series or The Morgan Leary Vaughan Fund, visit our website at morgansfund.org. Hello, my name is Stephanie Vaughan. Welcome to the show. I’m the Co-founder and President of The Morgan Leary Vaughan Fund. NEC is the leading cause of Short Bowel Syndrome or Short Gut Syndrome. The amount and location of intestine lost can result in life-long medical complications. Up to now, we’ve discussed NEC and its most common complication from the perspective of the neonatologist or surgeon. However, I feel that it is equally important to share the parent’s perspective. I’m privileged to have one such expert parent as my guest today. Laura Martin is the mom blogger at Joseph at Home, and the Director of Parent Communication and Engagement at Graham’s Foundation. She is also the parent of a fellow surgical NEC survivor. Laura will share with me today her son Joseph’s story of prematurity and survival including his near fatal bout of late-onset NEC and the multitude of life-long complications that have resulted. During our conversation, she will discuss in varying degrees: The extremely premature birth of her twin sons, Joseph and Campbell, at 24 weeks—four months early, and Campbell’s passing at 23 days of life, How Joseph developed late-onset NEC and lost two-thirds of his small intestine, Several of Joseph’s secondary diagnoses including Short Bowel Syndrome, Auditory Neuropathy Spectrum Disorder, Eosinophilic Esophagitis, and multiple food allergies—all resulting from NEC, How hers and her family’s experience with prematurity led to her work at Graham’s Foundation, Her personal blog where she documents her daily life as the parent of a child with special needs. With that in mind, let me introduce my guest today. This is Laura. Hi, how are you? LAURA MARTIN, GUEST: Hey, good. How are you? STEPHANIE: Good. Thank you for joining us. And Laura is a blogger at Joseph at Home and the Director of Parent Communication and Engagement at Graham’s Foundation. So I will let you introduce yourself and talk to me a little bit about your experience with prematurity and Necrotizing Enterocolitis. LAURA: Yeah. Our twin boys were born at 24 weeks gestation on Halloween morning in 2009. It came as a big surprise. It had been a perfectly clean, normal pregnancy. I had just had an appointment three days before, woke up with a dull backache about midnight. And Joseph was born first at 7:41 and his twin brother Campbell at 7:42. No rhyme or reason for the prematurity. It just happened. Campbell, unfortunately lost his battle to prematurity after 23 days of life. He just had a lot of complications from prematurity that he just couldn’t have overcome. Joseph went on to spend 228 days in the neonatal intensive care unit before he came home. He is now five and a half. He just started kindergarten. But it’s been a long journey to get here. We were two days from coming home when he was 5 and a half months old. He was about eight weeks adjusted. We had everything set up at home. We had oxygen. We had G-tube equipment. We had everything. We were ready. His room was ready. All of the clothes were washed. Two days before discharge, we got a call from the NICU that he was gray and bloated. And they were putting him on a ventilator. Let me back up a little bit. A few days prior to that, he had been showing some signs of infection. But nobody really knew what it was. He just had vaccines. He was running a little bit of fever. We contributed it to that. This pushed discharge back a little bit. But just two days before the initial discharge, when they called and said he’s gray and bloated, and they were putting him on a ventilator. You need to get here immediately. Our world kind of turned upside down, because we thought we were two days from home. And here we were not knowing what was going to happen. This was a Saturday, the day before Palm Sunday, 2010. And we didn’t know what was going to happen. The doctors kind of watched him throughout the Saturday, were taking X-rays every few hours. A little bit after lunch that day, one nurse practitioner came and said, his X-ray looks a little bit like NEC. Do you know what that is? And we said, of course, we know what that is. We’ve been in the NICU five and a half months. But he’s eight weeks adjusted. Why would be looking at NEC? We’ve been told once you get to your due date, you cross that off your list of things to worry about. And so, as the day went on, the night went on, it became very evident that he had Necrotizing Enterocolitis. They had seen this one other time in the NICU with a baby this old. He went through Saturday night. Things were not looking good. And on Sunday morning, the surgeon came to us and said, I’m going to take him to the OR. I’m going to open him up. And I’m going to see what happens. We don’t know what we’re going to find. So, on Palm Sunday, 2010, the surgeon took him to the OR. He was gone for several hours and came back halfway through surgery and sat us down in a room and said, here’s what I found. He has 41 centimeters (16 inches) of salvageable intestine. He said, he has 28 centimeters (11 inches) below his stomach, and he has 13 (5 inches) above his colon. Everything else in the middle is completely gangrenous. He said, we can take out the gangrenous intestine. And he’ll have two stomas for a while. Then we’ll go back in and reconnect. But he also looked at us and said, we don’t know what life for him is going to be like. It’s probably going to be very rocky. He may die before the age of two waiting on a liver transplant, because he’s going to be TPN dependent. If you want to close him up and let him go, I’ll respect your wishes. And, of course, we looked at him and said, no way, we’ve gotten this far. We’ve already lost one kid. We’re not doing this again. Go in there. Do what you have to do and save his life. So he went back. He was gone for several hours, came back to us. We saw Joseph, and it was amazing. Even though he had stomas, and he had just lost two thirds of his small intestine, he looked so much better than he had right before he went, because the infection was gone. A few days after that, they went in and placed a central line, because he was, of course, totally TPN dependent. He already had a G-tube before NEC, because of aspiration to his lungs. So we were fortunate with that that he already had the G-tube. But, as the weeks wore on, they were able to slowly decrease TPN, increase feeds, and decided after four weeks, he was ready for intestine reconnect, which was shocking. Nobody expected after four weeks he would be ready for intestine reconnect. So four weeks later, they went in, reconnected the intestines, told us we would probably be in another two to three months. He again amazed everybody—came off TPN very quickly, increased G-tube feeds to the point that they pulled his port before he came home. He never came home with a central line. And four weeks after his reconnect surgery, he came home—after 220 days in the NICU. STEPHANIE: That’s amazing. LAURA: So that’s how NEC came to be. Again, the hospital had seen one case of that. And it had been years and years and years. And people say, are you sure it’s NEC? Are you sure it was NEC? Yes, pathology confirmed that it was NEC. But who knows? Who knows why he had it at five and a half months old. STEPHANIE: Right, right. So just to back up, I’m curious what you knew about NEC before his surgery. You know, you had said that you had been in the NICU for now almost five months. And he reached his due date, so you were crossing it off the list. So I’m just curious, in general terms, what you knew up to that point. LAURA: NEC was one of those things that I remember learning about really early on in our NICU stay. Having 24-week twins, we knew that it was a very rocky journey. They both had less than 50% chance of survival. But my husband and I were the type that we wanted to know everything. We wanted to know what are things we have to look out for. What are things we need to be worried about? What are things that we don’t have to worry about? And it was within the first 24 to 48 hours that the nurse said there’s a thing called Necrotizing Enterocolitis. It doesn’t happen a lot. But it’s one of these things we watch for. We stay on top of it. So we knew about it from the beginning, but we had always been told that once you reach the gestational due date, you didn’t have to worry about it anymore. And while that is so true 99.999% of the time, there is a very small chance that it can happen later. And it’s almost one of those things I wish we had never been told—oh, yeah, you don’t have to worry about it when you hit 40 weeks. Because we did—we had completely crossed it off Right. So we know about it. And we knew what the warning signs were. We knew what to look for. Yet, again, when we look back on it, he had some of these warning signs two to three days before he got really, really sick. But why would—none of us thought it could be NEC. We thought, well, he’s had some GI issues. He has the feeding tube. He’s had his vaccines. It could be any other bug he’s picked up. He’s still in the NICU. But we knew what it was, but it was still just a huge shock that—I mean, he was 13 pounds at that point. He was a big kid, you know, for being in the NICU. STEPHANIE: Right, right. So he came home now, you said, four weeks after he had been reconnected. So talk to me a little bit about, I guess, those first days and first months when he was coming home—you know, again, sort of thinking from the perspective of things that we want to let parents and caregivers know, questions to ask, sort of things to look out for—so anything that you want to talk about, you know, his transition home and getting settled. LAURA: Yeah, he came home on complete continuous feeds via G-tube. So he was on feeds 24 hours a day because, of course, having NEC left him with short bowel syndrome. So he had a lot of dumping episodes, where it was out of control at times. We couldn’t really go anywhere because of the dumping syndrome. As the days went on, the weeks went on, the months went on, that got a little bit better. We were in and out of GI every 8 to 12 weeks, just checking in, making sure he was gaining weight. But a lot of doctors also didn’t really know what to do because he wasn’t TPN dependent. A lot of kids who come home with short bowel syndrome are TPN dependent. But here you have this kid who has only a third of his small intestine, but for the most part he’s tolerating formula well. He’s tolerating G-tube feeds. He’s gaining weight. He’s not going to need a port. Everybody was convinced he would have to have his port put back in. He never did. So that was actually, to be honest, a frustration for the first several years, is finding doctors who understood that, yeah, he is doing well. But he’s also not doing well. He only has a third of his small intestine. His weight gain is very slow. He still has periods of severe pain even today, from school. He still has periods where his belly is very distended. It took some time to find doctors who really wanted to help and say, yes, there really is still a problem here—with a kid who only has a third of his small intestine. That first year that he was home, he was rehospitalized five or six times, most of those with a GI bug. If he got any sort of stomach bug, we were in the hospital, because his body just couldn’t handle it. And so we were back in. Usually it would lead to a respiratory infection. He would spend a good week, 10 days, in the hospital. That was the first year. After that, I quit my job teaching, because we knew he had to stay home. He had to be healthy. And he had to grow. And as he’s gotten bigger, he’s gotten healthier. He has not been in the hospital for a GI bug in 3 and 1/2, 4 years. It’s been awhile. STEPHANIE: Oh, that’s great. LAURA: Yeah, now his body can tolerate it. You know, it’s not pleasant still. But we know what to do. But, as he’s gotten bigger, it’s gotten better. So, yeah, that was the first few years out of the hospital. STEPHANIE: We don’t have nearly the after-effects, but I remember Morgan’s transition home was pretty chaotic. LAURA: Yeah. STEPHANIE: His brother came home after 85 days, and I’m guessing was a much simpler transition, even just holding him in hands-on care and changing diapers. Morgan was very traumatized, I think, from being in the hospital and having the surgery. And we saw a big, big difference between him and his brother. So it was very scary as a parent that even simple things that you have to do was traumatizing to him. LAURA: Right. And then they can’t communicate with you to tell you that. And that’s what was so hard to watch early on, was you knew he was hurting. You knew he was in pain. But I didn’t know what to do to help, you know. So that was hard. Yeah. STEPHANIE: So, I guess, now that he’s getting a little bit older—you said he started kindergarten. That’s great. So how is he doing, I guess, developmentally? And are you seeing anything—you know, secondary diagnoses, I guess, maybe, strictly because of NEC or because of the short bowel or other issues that he’s having? LAURA: Yeah, he has several things that are going on. He did just start kindergarten. He’s in a special needs kindergarten. As a result—well, when he had NEC, he had to receive Gentamicin, which of course is an ototoxic drug. And the surgeon said, if we give this to him, he will probably lose all of his hearing. But if we don’t give this to him, he’s not going to live. Well, of course, it was a no-brainer decision. Before that, he had not passed his newborn hearing screening. But a lot of preemies don’t. So we kind of thought, well, we’ll get out of the NICU, he’ll pass it. He never did. While he was still in the NICU—this was in between NEC and the reconnect surgery—he was diagnosed with Auditory Neuropathy Spectrum Disorder, which is a hearing loss that comes and goes. It’s almost like you’re trying to tune a radio and there’s static. And that was what his hearing was like. So he received his first cochlear implant when he was three—three months after he turned three—because his hearing was rapidly deteriorating in his left ear. Just, not even two weeks ago, he received his second cochlear implant in his right ear. And we always go back to say, his hearing probably would have never been that great. But it’s definitely a lot worse post-NEC, because he had to receive the Gentamicin, the ototoxic drug, in order to kill the bacteria. Some other things that he has—July of 2014, he was diagnosed with Eosinophilic Esophagitis, which has been in question for several years. And we could not get the GI doctor to agree to do an endoscopy. He hated to do the endoscopy, because it meant putting him under sedation. Due to asthma, he didn’t want to do that. But at the same time, we’re battling with this increased amount of food allergies, knowing that that has to be a problem. Finally, they agreed to do the endoscopy. And it was clear that he had Eosinophilic Esophagitis. As a result of that, he has 15 food allergies. I’m happy to list them all if you want. But it includes all of the top 8 plus beef, chicken, rice, potatoes, watermelon, strawberry, pineapple, and a whole slew of medications. And I always tell people asking—it’s hard to know whether he would have had that regardless. Probably not. But having the Short Bowel Syndrome made it worse. He would not have had Short Bowel Syndrome if he didn’t have Necrotizing Enterocolitis. So to me it’s all sort of related. STEPHANIE: Right. Right. There’s definitely a domino effect. LAURA: It’s a domino effect. One thing has led to the other, which has led to the other. So it’s hard to know, some days, if you’re battling GI issues because of Short Bowel Syndrome. Or are you battling GI issues because of the Eosinophilic Esophagitis? Or are the white blood cells growing because he’s eating something he’s allergic to? Is there a new allergy? So some days we really struggle knowing what is what. And then you’ll have periods where he does great. And he’s like a normal kid. He does still have a G-tube. We were told he would lose the G-tube by two. But here we are almost six, and we still have the G-tube. Many days I wish we didn’t. But there are many days we couldn’t do without it. And if he doesn’t feel like eating or he’s in pain, we have the G-tube. And it’s literally been a lifesaver. And if he’s been sick, we can always get fluids in him. I would love to see it go. But I don’t see it going any time in the future. He doesn’t know life without it. He’s had it since he was four months old. To him it’s second nature. He gets his G-tube feeds at school. He gets them at home. They travel with us. But it’s truly a lifesaver for him. But it helps him gain weight. It’s what helps him actually be on the growth chart as a short-bowel kid. Many short-bowel kids, I think, are failure-to-thrive. He has never even been remotely considered failure-to-thrive, which is huge. So, yeah, there’s a lot of complications as a result—what I feel like, had he not had NEC, wouldn’t have led to X, Y, and Z probably. He does have development delays. But a lot of it is that he spent so much time in the hospital. Then there was the hearing issue, but he could not get a cochlear implant because he wasn’t healthy enough to have surgery. So it was just sort of this domino effect, and a spiral of getting out of it, and getting him healthy enough to be able to have surgery. And then you’re trying to catch up. You’re trying to catch up with language, fine motor, gross motor, it all, as well. But the kid we were told would never walk or talk, walked into kindergarten last week. So there’s so many things to be thankful for, and so many things that he’s doing so well on, that those are the days you really have to hold onto on the days he’s feeling really, really bad. You have to know that he’s going to get through it. Life will turn around, and it will get better. It’s just going to be interesting to see as he continues to grow, how much of this is just going to continue to get better. Will there be a decline at some point? We don’t know. Nobody really thought he would even make it to this point. STEPHANIE: Now, I’m just curious, sort of, personally, but also as a fellow parent of a NEC baby, have you talked to him at all about being in the NICU? Has any of that come up yet? I mean, I know he’s still sort of young. But I’m just curious. LAURA: Yeah, he knows he was in the hospital. When we drive by the hospital where he was born, he’ll say, that’s where I was born. That’s where my sister was born. He has seen pictures. He’s seen videos. But I don’t think he quite cognitively wraps his head around it. When he had a cochlear implant put in 10 days ago, it was at the hospital where he had NEC. And so we were able to kind of say, you were in the hospital here when we are a baby. A couple of the nurses stopped by to see him—they took care of you when you were a baby. But the cognition is just not quite there too. He sees his pictures. And he’ll say, I was very sick. And, yes, you were very sick—because he knows that his baby pictures look very different from his sister who was born full term. So he knows. He knows he has a G-tube. She does not. And so he’s starting to really realize those differences. STEPHANIE: Right. Yeah, I don’t think we’ve quite reached that yet. Shaymus deals with asthma. So he gets his puffs and he has, you know, different things. But I don’t think they’ve really lined up and taken notes on, you know, your picture has this. And my picture has that. Or you have this and I have that. But, yeah, sort of, it’ll be interesting to talk to them about it when they start to ask. Like, they just figured out that they’re twins this year. LAURA: Oh, that’s so funny. And my husband and I have talked about it. Gee, at what point in their life are they going to realize everything that they went through as a baby. And all these odds that were stacked against them. And all the times that they shouldn’t have lived. And will they be teenagers? Will they be adults? Will it be when they have their own children? My husband and I talk about this a lot. It’s just going to be interesting to see at what point do they kind of go, oh, wow, yeah, that really was what mom and dad went through and what I went through. It’s just fascinating. STEPHANIE: Yeah. So I would also like to let you talk about the work that you’ve done now because of having preemies and Joseph’s diagnosis. So you are the Director of Parent Communication and Engagement at Graham’s Foundation. So I’m happy to let you plug them away, and also to talk about your blog, which is Joseph at Home. LAURA: Yeah, I'll start with Graham’s Foundation first. I started working for them, gosh, about three and a half years ago in a different capacity. And it was one of those things that I was staying home with Joseph. And I was trying to figure out a way that I could give back to the preemie community. But I knew I couldn’t go into the NICU, because here I was with this child who got sick easily. And I knew that that couldn’t happen. So I started working for Graham’s Foundation, which was such a great outlet to be able to connect with other preemie parents, and sort of share stories—share stories with families who lost their child, with families who went through a long-term NICU stay, families who went through a short-term NICU stay. People will say, well I was only in the NICU 10 days. You were in seven and a half months. One day is one day too long for anybody to be in the NICU. And that’s what I always say to people. Nobody should have to go there. And if I can provide any sort of “it’s going to be OK,” I would love to do that. And so now, I serve as the Director of Parent Communication and Engagement. I do a lot of the writing for the blog for Graham’s Foundation, which is something we’re really trying to get off the ground. And through that, I also serve as a NEC mentor. So if parents come across our website and are looking to talk with someone who has experienced NEC, in no way am I a medical professional but I'm able to say: This is what we experienced. This is what we’re experiencing now. These are some questions you might be able to ask the doctor. And it’s been really nice to connect with people. Also, being five years out, to say, I promise you are going to get through this. When you’re dealing with, all along, doctor’s appointments, and you feel like you’ve got 18,000 things going on in one week. I’m here to tell you that I promise you, it gets better. The appointments get less and less and less. And it’s been so nice to connect with parents, and to offer that support from home, while I can still stay home with my kids and be able to work from home. And then also I have my personal blog, josephathome.com, which I started when I found I was pregnant with twins. I didn’t even share the blog address with anybody. My husband and I thought, oh, this will be great. We’ll update it. We’ll send it to friends and family. So as the pregnancy rocked along, I would sort of update it. I could never send out to anybody. And then when they were born Halloween morning, 2009, at 24 weeks gestation, I knew I didn’t have the energy to tell the same story over and over and over about what was happening. The texts were too long to send the information of what was going on. We had two of them, and I just couldn’t do it. And I was, like, oh, I’ve got this blog. This will be a great way to update people, so the long days of sitting in a hospital, my husband worked on our family tree. And I worked on the blog. That is just what we each sort of did to take our mind off of what was going on. And it was a great way, if somebody asked me a question, I would just say, read the blog. It’s on the blog. Just read the blog. I could share pictures—it just—because I wasn’t really in the mood to talk. We would talk to family, immediate family, and share with them what was going on. But it was just—it was so draining to tell the same story over and over and over. And if I just wanted to get something out there quickly, I would put it up. So, when Joseph came home, and I thought, well, I’ll keep it going. We’ll see what happens. It’ll probably die by the wayside. Well, five and a half years later—it’s almost six years later—it’s still going. And I write a lot now just about, of course, about prematurity, but also raising a special needs child and what that looks like, because we’re in this short-bowel world. We’re in the eosinophilic world. We’re in this hearing-loss world. We’re in the cochlear-implant world. We’re in the vision-impaired world. We’re in the mild cerebral palsy world, food-allergy world. And it’s just been nice to be able to connect with other parents and just to write about our real life and what it’s like. What it’s like. How do we deal with insurance? How do we deal with medical supplies? How do we travel? How do we do this, that, and the other? And it’s just a great outlet, too, just for venting, you know. And if I don’t want to talk about it, I can write about it. So we’ll see where it goes. It’s been a really nice outlet. But it’s also a great way to show Joseph, hey, this is where you started. This is where you are now. And it’s almost like a scrapbook, really, of his entire life, because it started the day he was born, and has everything. I just hit my—over 1,100 entries on it. STEPHANIE: That’s great. I commend you on that. I attempted, when I first came home from the hospital, to start recording things. And, I think, honestly, it was just too hard. I sort of thought to myself, I don’t want to remember this piece of it, so I sort of stopped. And I had scraps of paper where I would write down stats every day. You know, they gained this, and literally had, like, a pile two inches thick, by the time they came home, of daily weights and charts and things. Yeah, I mean, I’ve seen many of your posts. And I think they’re great. And I think it’s a great outlet. And, again, sort of that you’re not alone. And, you know, people are better off than you. People are worse off than you. And everybody’s sort of on their own journey. And I know preemie parents tend to minimize amongst other people, but your struggle is really your struggle and your family’s struggle. And no one should have to struggle. LAURA: No. And that’s what I’ve always said to people is, somebody out there always has something worse going on. Like, on Joseph’s worst day, somebody else has something worse going on. And that’s what I always say to people is, yeah, this is just our life in a little nutshell. But we’re so thankful for what we have. And, again, it could always be worse. You can just turn on the news every day and see that. But if it’s just, you know, if it can help one parent to say—and even sometimes I think people don’t like to say, well, this is not fair. You know what, sometimes it’s not fair. And it’s OK to say that and have a little pity party and then move on. And I enjoy being able to say to people sometimes. STEPHANIE: That’s great. So, I guess, is there anything else that you would want to mention if you had somebody in your position, however many years back, thinking to ask the doctors about, or transitioning home—coming home—how you sought out your specialists, if you’re not getting the answers that you think you should, how you proceeded, any sort of big-sisterly advice. LAURA: Yeah, I know, really. I think the big thing is to trust your instincts if you know that there’s something not right. We’ve gone through our fair share of doctors. Because if I feel like my child’s not getting the care that they need—and any parent would feel this way—I’m not going to settle for mediocre. I’m not going to settle for “he’s going to be fine” when you know in your heart that there’s still a problem. We were having some issues last year around the whole eosinophilic diagnosis. And I felt like we had run out of options where we live. And so I reached out to a doctor eight hours away. And he said, if you’re willing to travel, I’m willing to see him. I said, of course, we’re willing to travel. And so we did. He got us in. And we made the trip. And it was so nice to just connect with somebody who was a specialist in that field of Short Bowel Syndrome, to be able to say, yeah, he’s doing OK. I see that there are some problems. But you’re doing the right thing. And I think that’s become sort of my mantra is, don’t stop until you have the answers that you need. And there may not be answers. But I am not going to rest until I know that we have the answers we need. Like, we’re having some eosinophilic issues, so we’re working on getting into a top eosinophilic clinic. I don’t care how far we have to travel, because that’s what Joseph needs and it’s what’s best for him. And that’s what matters. It matters him feeling good. It matters him being healthy. It matters him growing. And he deserves to have the best life absolutely possible. And that’s what I would tell somebody if you’re just coming home. If you feel like something is not right, keep going and keep going and keep going. Yes, it’s exhausting. I think there are many days I’m asleep before my head even hits the pillow. But you have to do what’s best for your kid, because they can’t do it for themselves. You are their advocate. And that’s one thing that the NICU nurses taught us really, really early on—is you have to advocate for your child. Nobody else is going to do it for you. They can’t do it for themselves. You just have to keep going. And, again, it’s hard. You may hit brick walls here and there. Because goodness knows we’ve had our fair share with doctors. And it’s OK with doctors to speak your mind and say, you know, I don’t think you’re right on this. I think there’s more to it. You may upset them a little bit, because there’s no doubt I’ve upset a few. But it’s OK. It’s OK. Yes, they’re doctors. But they don’t have all the answers. You’re the parent. You live with your child day in and day out. You know their idiosyncrasies. You know what’s right and what’s wrong with them. And I think standing up for yourself is so important. And that’s what I would tell somebody coming out. You can’t be shy when it comes to advocating for your child who has special needs. STEPHANIE: I would agree. Yeah, we’re transitioning through preschool. And the boys were kindergarten eligible this year. But they’re actually being given an extra year of pre-K. And we had sort of that, uh, I’m not sure about this. I’m really not sure about it. I’m really not sure about it. And in the end they saw that—their teachers agreed with us. And the educational system agreed that, yeah, they’re a little bit immature. And probably going to kindergarten isn’t the best idea for them. And they really need the extra year. You know, they’re smart. Yes. But good enough isn’t good enough. We don’t want them to sort of eke by. We want to give them the best opportunities that they can have. So I agree with you wholeheartedly. LAURA: And it’s tough as a parent. I’ve had this conversation with a lot of people. My husband’s a teacher. I’m a teacher also. I’m not teaching right now. Hopefully one day I will be again. But it’s hard as a parent. It’s hard as a parent-teacher to have a child who has special needs and who needs that IEP (Individualized Education Program). It’s tough to sit on that end of the table as a parent. I mean, I’ve sat on the other end of the table as a teacher countless times. But, as a parent, it’s a tough pill to swallow, to say—and we know—I mean, Joseph started kindergarten. But we know full well he may need to repeat kindergarten. And while that’s tough to say, it’s a reality. We hope that he does great. But he may need to repeat. And if that’s what’s best for him, then that’s going to be what’s best for him. It’s tough to sit in an IEP meeting and hear how far behind he is. Or these are all the goals. And up to 21 pages now of his IEP. But it’s what he needs. And it’s what’s best for him. But I always go back to the day when one of our favorite NICU nurses—this was a long time ago—said, you know, one day he’s going to pull out a picture of him with all those tubes and wires and on a ventilator and say, see, mom, you remember this. And I have to think back to that, because, yes, it’s hard. And I kind of want to wallow in self-pity about, oh, I wish he was just in a regular ed class. He shouldn’t even be here. And that’s what I have to remind myself is, we had many days where we weren’t even sure we would see pre-K. And I know you’re the same way. We weren’t even sure he would see kindergarten. But here we are. And let’s just make the most of it. He’s loving every second of it. And that’s what matters. And so, being a preemie parent, as you know, it’s a journey that I never expected. But at the same time, I’m grateful for it, because it’s opened my eyes to a whole new area of life. STEPHANIE: Right. Well, I really appreciate you talking to me. And I think you’ve given some great advice—preemie parents or not, and NECs parents or not—on advocating for your child, and in every facet. So I really appreciate your time. And thank you so much. And if there’s anything else that you want to add, feel free. LAURA: If anyone wants to contact me personally, I’m happy to answer questions if there’s something that anybody wants to know more about. STEPHANIE: So great. Thank you. Thank you so much. LAURA: Thank you. STEPHANIE: For more information about Laura or to follow her blog, visit: josephathome.com. A direct link can also be found in this episode’s show notes. You can also email Laura directly at: laura [at] grahamsfoundation [dot] org. In closing, I’d like to share a few thoughts about today’s conversation with Laura. According to Dr. Besner, with whom I spoke about Short Bowel Syndrome in Episode 1, “if we estimate that a newborn baby has approximately 200 centimeters (78.74 inches) of intestine, they have to be left with at least 40 centimeters (15.75 inches) in order to be able to nourish themselves and get off TPN.” As a result of his bout with NEC, Joseph had only one centimeter (0.4 inches) more remaining. So first, I would like to take a moment to celebrate Joseph’s survival, courage, and strength. And that of his family. Both Joseph and his parents have shown remarkable resiliency while dealing with the daily effects of his bout with NEC. Second, I would like to reiterate that I strongly believe that a cure for NEC, once found, will have a far reaching impact not only on Gastroenterology (the digestive system and its disorders) as a whole, but also all of the patients like Joseph, and families like Laura’s. Show your support for our smallest and most fragile babies, those who have the greatest risk for developing NEC. Show your support for continued research in NEC. And join our effort to raise awareness about, and funds for research in NEC by making a donation to Morgan’s Fund at morgansfund.org/donate. If you’ve had a personal experience with NEC and would like to share your story, or have a question or topic that you’d like to hear addressed on our show, e-mail us at feedback@morgansfund.org. We’d love to hear from you! Copyright © 2015 The Morgan Leary Vaughan Fund, Inc. The opinions expressed in Speaking of NEC: Necrotizing Enterocolitis (the Podcast series) and by The Morgan Leary Vaughan Fund are published for educational and informational purposes only, and are not intended as a diagnosis, treatment or as a substitute for professional medical advice, diagnosis and treatment. Please consult a local physician or other health care professional for your specific health care and/or medical needs or concerns. The Podcast series does not endorse or recommend any commercial products, medical treatments, pharmaceuticals, brand names, processes, or services, or the use of any trade, firm, or corporation name is for the information and education of the viewing public, and the mention of any of the above on the Site does not constitute an endorsement, recommendation, or favoring by The Morgan Leary Vaughan Fund.

director halloween president home foundation engagement palm sunday campbell fund copyright gi nicu gee iep nec gastroenterology laura martin tpn eosinophilic esophagitis parent communication short bowel syndrome necrotizing enterocolitis gentamicin host welcome laura it laura yeah both joseph laura so stephanie yeah stephanie so stephanie oh stephanie vaughan stephanie for stephanie right shaymus
Speaking of NEC: Necrotizing Enterocolitis

  Episode 2 features Dr. Adam Matson, attending neonatologist at Connecticut Children’s Medical Center-Newborn Intensive Care Unit (Hartford, CT) and Assistant Professor of Pediatrics and Immunology at the University of Connecticut School of Medicine (Farmington, CT). During this episode, Dr. Matson provides a comprehensive overview of NEC as it relates primarily to very low birth weight babies, those weighing less than 1500 grams (3 pounds 4.91 ounces) and who have the greatest risk for developing the disease. He discusses: * The early warning signs of NEC, what steps are taken when NEC is suspected, and how X-rays are used to diagnose NEC * How a premature baby’s immune response to the microbiome (bacterial communities) of the intestine appears to play a role in the development of NEC * Known risk factors of NEC, and how they may affect the intestinal microbiome * His current research focused on innate immune signaling in the developing intestine as it pertains to the development of NEC * Current prevention strategies for NEC * Additional research trends in NEC, and the importance of efforts to prevent prematurity Copyright © 2015 The Morgan Leary Vaughan Fund, Inc. This episode was produced in part by the TeacherCast Educational Broadcasting Network. [powerpress] STEPHANIE VAUGHAN, HOST: Welcome to Episode 2 of Speaking of NEC—a free, audio podcast series about Necrotizing Enterocolitis. Produced by The Morgan Leary Vaughan Fund, and funded by The Petit Family Foundation, Speaking of NEC is a series of one-on-one conversations with relevant NEC experts—neonatologists, clinicians and researchers—that highlights current prevention, diagnosis, and treatment strategies for NEC, and the search for a cure. For more information about this podcast series or The Morgan Leary Vaughan Fund, visit our website at morgansfund.org. Hello, my name is Stephanie Vaughan. Welcome to the show. I’m the Co-founder and President of The Morgan Leary Vaughan Fund. Today, my guest will be Dr. Adam Matson, attending neonatologist at Connecticut Children’s Medical Center-Newborn Intensive Care Unit in Hartford, CT, and the Assistant Professor of Pediatrics and Immunology at the University of Connecticut School of Medicine in Farmington, CT. Dr. Matson will share with me today a comprehensive overview of NEC as it relates primarily to very low birth weight babies, those weighing less than 1500 grams or 3 pounds 4.91 ounces, who have the greatest risk for developing the disease. During our conversation, he will discuss in varying degrees: Early warning signs, Steps that are taken when NEC is suspected, Diagnosis, Risk factors, Prevention, Current areas of research, and The importance of efforts to prevent prematurity He will also discuss how a premature baby’s immune response to the microbiome or bacterial communities of the intestine appears to play a role in the development of NEC, and his current research focused on innate immune signaling in the developing intestine as it pertains to the development of NEC. With that in mind, let me introduce my guest today. Welcome, Dr. Matson, thank you for joining us today. I’m very excited to talk to you. DR. ADAM MATSON, GUEST: Thanks for having me here. STEPHANIE: As you know, we’re talking about Necrotizing Enterocolitis, but I’d love for you to tell me about your experience in the NICU and then in the NICU in relation to your experience with NEC. DR. MATSON: Okay, well, I am an attending neonatologist at Connecticut Children’s Medical Center, which is located in Hartford, Connecticut, and there I’m involved with taking care of premature babies and infants with other types of medical problems. And unfortunately, Necrotizing Enterocolitis is one of the disease processes that does affect premature babies in our unit as like many other NICUs around the world. In our NICU, we average probably about 14 cases of Necrotizing Enterocolitis, or I’ll refer to it as NEC, per year, so it’s a major medical problem for these infants. As I mentioned before, it’s unfortunate that I do have experience in managing these infants. STEPHANIE: So what can you tell me as a parent about I guess signs and symptoms and what you guys as the doctors and clinicians and nurses are looking for that’s, I guess raises a red flag for you that this baby might have NEC? DR. MATSON: Sure, so NEC is most common in the very small premature babies, particularly those that are with birth weights less than 1500 grams (3 pounds 4.91 ounces). So these are infants that are typically being fed by a feeding tube that’s introduced into the nose and goes down to the stomach, or into the mouth and goes down to the stomach. Usually these babies are too small or weak to eat on their own. And it’s a gradual process. We start with small volumes of feeds and increase them gradually. And the types of symptoms that babies can start to develop when this process begins can sometimes be nonspecific. They can have decreased activity, they may have increased apnea spells (moments when the baby stops breathing) is something that we’ll see. Their abdomens can become more distended. One of the things that we’ll frequently check for are something that is referred to as aspirates. This is when a nurse is going to give a feed with feeds being given every three hours. They will check the stomach to see how much of the prior feed has actually gone out of the stomach and into the intestines. So often times if the intestine is starting to not feel too happy, that feed can sort of back up and that’s called an aspirate. If the volume becomes excessive, one of the measurements that we’ll use in our unit is more than 50% of the prior feed, that’s a red flag for us. STEPHANIE: Okay, actually that was the first symptom that Morgan had was his aspirate they said was tinge green which was an immediate red flag and x-rays were taken bedside and that’s—rapidly they discovered that he had NEC and that’s when he had his surgery. So that was definitely a red flag with him. DR. MATSON: Sure, those signs occur particularly when the aspirate turns green, as you had mentioned for your son that indicates that bile that’s being emptied into the intestine is not emptying down into the more distal portions of the intestines. So for his bile to start backing up, that’s absolutely a warning sign. STEPHANIE: Okay, thank you. So is there anything else that would be a good warning for parents or questions that they should ask if something’s maybe not looking right? DR. MATSON: Well, as I had mentioned, many of the signs can be nonspecific and they can actually often occur very fast as well. You know, we do monitor as I had mentioned for those things, bloody stools as well. And if those sort of warning signs come up, typically we’ll end up holding some feeds for a while to not overwhelm the stomach or the intestine with additional food, and as you had mentioned, we’ll end up doing x-rays and that’s the primary way that Necrotizing Enterocolitis is diagnosed. Really what we’re looking for with those x-rays is a finding referred to as pneumatosis intestinalis. And what that is is part of the pathophysiology of NEC is as bacteria are starting to invade through the intestinal wall, they can start to produce gas and make gas bubbles, and when we do x-rays looking for NEC, if we visualize those gas bubbles in the walls of the intestine, that’s diagnostic that the process is indeed happening. STEPHANIE: Okay, so can you tell me a little bit on the flip side of your experience with NEC on the research side? DR. MATSON: Sure, you know, perhaps I should talk a little bit about in that regard on what we think actually causes NEC. And I think that the answer to that right now is that we don’t know exactly. But it appears to be a rather complex interaction between bacteria that are inside the intestine, and exaggerated or overactive immune response that’s happening inside the intestine. The whole hypoxia or decrease in oxygen within the intestine also probably plays a role in some cases. But studies have indicated at least in many cases of NEC it’s not—it doesn’t appear to be attributable to a single bacterial species like E. coli or Salmonella. But it appears to be more related to bacterial communities or what we would say is the microbiome of the intestine which can be influenced by certain things that we know to be risk factors for Necrotizing Enterocolitis as well such as formula feeding, where breast milk—human milk is protective, excessive use of antibiotics, antacids, those sorts of things are thought to disrupt the microbiome and result in overgrowth of different species, particularly gram negative bacteria. And when there’s an overgrowth of those types of bacteria in the intestine, those appear to activate certain receptors that are inside the intestine— this is getting into a little bit of the research that I’m involved with, because these receptors primarily in premature infancy appear to be very sensitive to a large number of these gram negative bacteria, and as they start to become activated, they start to break down the intestinal epithelial lining and this results in trans-location of bacteria through the intestinal mucosa—the protective barrier, and then activation of immune cells in the deeper layers. Another feature of the premature infant is that they’re really not able to control that immune response in their intestine very well, so they end up with a very profound inflammatory response in their intestine. That’s really what Necrotizing Enterocolitis is. It’s the most common gastrointestinal emergency in premature babies. It occurs primarily in premature infants. It’s characterized by diffuse inflammation and necrosis, or tissue death inside the intestine. And it’s also associated with very significant morbidity and mortality. About 15 to 30 percent of infants who develop NEC may ultimately die. So it’s a major problem for this population. STEPHANIE: And can you tell me, I guess a little bit more about what the hospital’s doing in their research? And more specifically, what other areas you’re researching? DR. MATSON: Sure, so our hospital, we have a number of different projects that we’re involved in. We have a very active lactation program where we’re looking at different aspects of human milk. I had mentioned before that one of the main risk factors for Necrotizing Enterocolitis is diet and formula feeding, and we do know that providing human milk reduces the risk of NEC by about 50 to 90 percent providing a diet of exclusive human milk. So we are currently looking at factors inside of breast milk, macronutrients and how they affect the bacterial populations inside of the intestine and how that may ultimately contribute to infants developing this process. More specifically in terms of laboratory work, we’re now working with some collaborators at UConn Storrs as well and we’re doing a preemie poop project where we’re collecting a lot of fecal samples from babies inside our NICU. And we’re doing a real detailed analysis, molecular analysis where we sequence out basically all the different microbial species or bacterial species inside the intestine. And one of our hopes with this study is that we’re able to identify how diet and exposure to medications affect the bacterial populations inside the intestine, which we know has a very strong role in Necrotizing Enterocolitis. I also have a laboratory at UConn Health Center in the department of pediatrics and we’re looking a little bit deeper at some of the receptors inside the intestine. There’s a group of receptors that I refer to as toll-like receptors, and these recognize molecules that we refer to as pathogen associated molecular patterns or PAMPs. So these are the receptors that are on the surface layer of the cells that line the intestine and respond to these different bacteria. And I think this is the type of research that tying in aspects of clinical care with breast milk to knowing what’s actually growing inside the intestines in terms of bacterial populations, and then looking at more detailed molecular aspects of immune signaling inside the intestine and what’s ultimately controlling the inflammatory process. STEPHANIE: That’s very interesting. Is there anything else that you would like to add about research specifically? I know one of our major goals is to help the doctors and researchers advance research through funding. So can you talk to me a little bit about funding for research within the NEC community? DR. MATSON: Sure, well I think that one of the areas that would likely help the most is more funding to look at causes of premature birth. This continues to be a major problem in the United States and elsewhere. Up to ten to eleven percent of infants are born premature. And a significant number of those babies are the very premature infants that are at the highest risk for developing NEC. So I think that I need to mention that as really one of the primary areas because there’s a lot of different challenges that these babies face, and the more that we can prevent preterm birth, I think that would be advantageous for them. The other aspect I think would be important to look at is in terms of diagnosis or earlier diagnosis. Being able to identify which babies are starting to develop some changes in their intestine earlier. I have a colleague that I work with who often says that it’s when we’re diagnosing by x-ray, it’s almost like arriving at the crime scene after the crime has already been committed. STEPHANIE: Mm-hmm. DR. MATSON: The care that we implement at that stage is really is very supportive in terms of holding feeds, antibiotics, bringing the suction tube into the stomach, getting frequent x-rays, getting the surgeons involved to help follow the infants, and in many ways, the time that we’re diagnosing these infants at this point is the process is already much too far ahead. STEPHANIE: It’s definitely a complex disease, and I know that with Morgan, I think within a span of five hours or so he was diagnosed and in and out of surgery and in recovery, so I know that it’s a rapid time frame. But I appreciate all of the information that you shared with us today—I think you’ve given a really good perspective on causes and signs and symptoms, and if there is anything else that you’d like to add in any area for parents that might be listening to this from your perspective as a doctor talking to parents, please feel free. DR. MATSON: Sure, so I could mention just a little bit more about prevention of Necrotizing Enterocolitis. In some diseases, an ounce of prevention’s worth a pound of cure. When we’re looking at certain populations in the NICU, we often classify premature infants according to their weight. Those at highest risk of developing Necrotizing Enterocolitis are what we would refer to as very low birth weight infants, and those are less than 1500 grams at birth. STEPHANIE: And that’s about three pounds? DR. MATSON: Yes, pretty close to that. And I had mentioned efforts to prevent prematurity is a major goal, also diet. The American Academy of Pediatrics came out with a statement in 2012 really encouraging the provision of human milk to all of these babies. We do know that human milk does help protect against Necrotizing Enterocolitis. And if mom’s milk is not available for these infants, many units including ours are now using pasteurized donor human milk. It’s a very safe product, and that has been shown to help as well. Other potential preventative measures is—one would be using a standardized feeding protocol. There is very good data on that. That means really sort of having a very strict protocol for each size baby and how much milk you start with with the feeds, how rapidly you advance them, and what sort of warning signs that the healthcare team should be observing for. So that has been shown to be very important. Limited use of antibiotics appears to be very important. It’s a difficult task for us while we’re inside the Newborn Intensive Care Unit because these babies are at such high risk for infection. But one of the things that data has shown is that the more antibiotics, the more unnecessary antibiotics, that these babies receive increases their chances of getting Necrotizing Enterocolitis, so that probably relates to overgrowth of gram negative and other bacteria inside the intestine that activate the inflammatory cascade. There’s a few interesting other preventative measures that are topics of conversation within our field and one is using probiotics. There is good data out of other countries. So, I should say that probiotics are live bacteria. They’ve been using older children and adults for some time for various reasons. Bifidobacterium and Lactobacillus are the most common probiotics. Those are bacteria that are typically found in the stool of breastfed infants. And many units outside of the United States are now giving these probiotics, which they’re giving them to extremely premature infants in an effort to prevent NEC from happening. And the thought is that these help to prevent some of the pathogenic bacteria from growing, they also help to mature the intestinal barrier inside the intestine. At this point in time in the United States, however, there has not been a—at least to my knowledge—there has not been a properly randomized, controlled trial to study these here. And also another major issue using probiotics in the United States is how are they regulated by the FDA as they’re considered a food. So really you can go to GNC or CVS to buy probiotics over the counter. So with that type of designation by the FDA, they don’t have the same oversight as a drug would, and one of the concerns with many of the NICUs in using a product like that is it doesn’t have the same consistent quality oversight, meaning that we don’t know how pure it is or how consistent the actual dose would be that we’re giving to premature infants, so hopefully some research down the line will help answer those questions. STEPHANIE: Well, I think you’ve given us a lot of information, a lot of really good information I think, and a lot of really relevant information for parents that will be listening. So I really appreciate you sharing your time with us, and joining us today. And so with that, I will let you go. And… DR. MATSON: Okay, well thank you very much. STEPHANIE: we will talk again. DR. MATSON: Sounds great. STEPHANIE: Thank you. DR. MATSON: Okay, take care Steph. STEPHANIE: Thank you. STEPHANIE: For more information about Dr. Matson and his research in NEC, visit: connecticutchildrens.org. A direct link can also be found in this episode’s show notes: http://www.connecticutchildrensfoundation.org/document.doc?id=402 In closing, I’d like to share a few thoughts about today’s conversation with Dr. Matson. One of Morgan’s former doctors described NEC to me as “an inflammatory response gone haywire.” That simple, but vividly descriptive, phrase gave me pretty quick understanding of the disease that nearly took my son’s life. The inability of a very premature baby to regulate their immune response, and in turn their inflammatory response, appears to be a crucial factor in the development of NEC. And as Dr. Matson mentioned, understanding not only how diet and exposure to medications affect the bacterial populations inside the intestine, but also understanding the immune signaling inside the intestine and what’s ultimately controlling the inflammatory process are critical to fully understanding, and preventing, NEC. Show your support for our smallest and most fragile babies, those who have the greatest risk for developing NEC. Show your support for continued research in NEC. And join our effort to raise awareness about, and funds for research in NEC by making a donation to Morgan’s Fund at morgansfund.org/donate. If you’ve had a personal experience with NEC and would like to share your story, or have a question or topic that you’d like to hear addressed on our show, e-mail us at feedback@morgansfund.org. We’d love to hear from you! Additional Information You can make a donation directly to Dr. Matson’s research in NEC at Connectiut Children’s Medical Center by visiting https://www.connecticutchildrensfoundation.org/giving/nec Copyright © 2015 The Morgan Leary Vaughan Fund, Inc. The opinions expressed in Speaking of NEC: Necrotizing Enterocolitis (the Podcast series) and by The Morgan Leary Vaughan Fund are published for educational and informational purposes only, and are not intended as a diagnosis, treatment or as a substitute for professional medical advice, diagnosis and treatment. Please consult a local physician or other health care professional for your specific health care and/or medical needs or concerns. The Podcast series does not endorse or recommend any commercial products, medical treatments, pharmaceuticals, brand names, processes, or services, or the use of any trade, firm, or corporation name is for the information and education of the viewing public, and the mention of any of the above on the Site does not constitute an endorsement, recommendation, or favoring by The Morgan Leary Vaughan Fund.