The Stack Overflow Podcast

How product development at Stack Overflow has evolved

Episode Summary

We chat with Adam Lear, staff software engineer at Stack Overflow, about the evolution of our company's approach to product development over the last decade. Also discussed: anti-patterns, documentation, developer profiles, and tokenizing reputation.

Episode Notes

If you're full up on technical content and just want funny retweets, follow Adam on Twitter here

If you're interested in learning more about tag pages, check out what the community created for Rust.

Thanks to Peter Cordes, our lifeboat badge winner of the week, for answering the question: How can I accurately benchmark unaligned access speed on x86_64?

Episode Transcription

Adam Lear How do we expand what StackOverflow can do for people? How do we go beyond just questions and answers, but without actually ruining the q&a experience, right? Because that is still a core proposition of what we do. And the thing that we're very passionate about and things to believe in. But you know, times are changing, Stack Overflow has been around for what? 13 years now, give or take, like, it's a long time! And so trying to do better, more current, more interesting things, I think is always going to be a win for us.

[intro music]

Ben Popper Build your health app on the most accurate data available. The Health Care Locator SDK instantly connects your apps to the world's leading health care database. Add provider names, locations, and specialties in just hours, visit healthcarelocator.com to download today. 

BP Hello everybody! Welcome to the Stack Overflow Podcast, a place to talk about all things software and technology. I am Ben Popper, the Director of Content here at Stack Overflow. And I am joined today by my colleague Adam Lear. Hi Adam. 

AL Hey Ben, how's it going? 

BP Good. So for people who don't know, tell them what it is you do at Stack Overflow, sort of like, how long you've been around, I know you had a fun journey into the company. So give them a little bit brief backstory, give me your short bio.

AL Sounds good. So I've been here for about nine and a half years at this point, I started as a community manager, and then I switched over to the development team. So I've been working on various incarnations of the public platform, our public q&a on Stack Overflow and all the other Stack Exchange sites. So that's where I am.

BP And these days where you sit. Are you an IC, team manager? Like, what's your sort of like roles and responsibilities?

AL Sure, I am currently, my official title is the Staff Software Engineer. And I'm also currently acting as the tech lead for our team. So that basically translates into working closely with product managers, ensuring that everything we do is technically feasible, you know, make sense. I also bring a lot of product knowledge to the whole thing. But technically, I'm still an IC.

BP So does that mean you get in on like a, like an early roadmap discussion? Like you said, figure it out, right, even from like talking to the architecture team? Okay, this is what we want to do. What's feasible. This is how we should you know, design the amount of time we're doing it, and these are the deliverables? Do you get involved in that?

AL To a point, I definitely participate in preliminary planning discussions, before we bring roadmaps to the rest of the team. And then the team gets involved as well. 

BP Alright, so let's discuss that. For people who are in engineering or engineering adjacent, maybe they work in marketing or design, they have to work closely with folks on the dev side, what is our approach these days? And has it changed from you know, nine years ago, or five years ago? Like, when we sit down are using the same tools, GitHub and JIRA? Are we using different tools and you know, has like sort of the approach whatever you want to call it, I don't know if it's gone from waterfall to agile, describe to somebody else or just, you know, like, even if we don't, we don't need to use like the fancy, you know, terminology, we can just talk about the practicality. What is it like today? And do you think it's changed significantly in the last five years?

AL Oh, it's changed a ton. You know, back in the day, we had, pretty much every developer in the q&a area worked, everybody worked on the same thing. Now we have multiple teams. I mean, we're working on, you know, different products that we have, have, which public is one of them. And so for us, we have, let's see, what do we use? GitHub, JIRA, that's the current state of affairs, back in the day was Trello, Google Docs, lots of Google Docs. For most of our specs, and whatnot. What we do now is definitely more structured than it used to be. Now we have, you know, a product manager, or two, they really have kind of our long term goals in mind, and they work with our senior leadership, to make sure that that you know, fits within the company strategy, fits within the community strategy, we still work very closely with the community team as well, and get ideas from them. And they get their ideas from either their own experience or from our users. So we kind of bring it all together and figure out what we want to do and go for it.

BP Right. So yeah, my impression of Fog Creek and then into Stack Overflow. And maybe Trello was part of this too, is that yeah, it was that engineering. Engineers founded it, you know, developers, people who write code founded it. And then as you're sort of saying, like, get all the devs. And we're all working on the same thing. And everybody gets to input ideas, and you're all working on it together. So maybe in some way, that was a little bit more, I don't know, competitive, jumbled, overlapping. And now like you said, we're broken out into different departments, product teams, you know, there's a PM who sort of guiding it as opposed to the people who are, you know, day to day during the code structured and compartmentalize. Is that fair?

AL Oh, yeah, I think that's fair to say. And there's definitely some trade offs between both approaches, right, like, back in the day used to be if somebody from the community team wanted to get something done, they really had to find the developer to kind of champion it and also advocate for it and be like, yes, that sounds like a great idea. I'm gonna go and implement this thing. Now that the, you know, the site is a lot more mature. Now we can't really do that anymore. You know, we can't just be doing random things that somebody just said. Like who are good idea, and then you know, never look at, you know what that actually did. And also, you know, we grew a bunch of systems over time that maybe need attention that maybe need to be maintained and improved over time. So now we really look at it more like, what are our priorities? What do we actually want to accomplish? Who are we building it for? What problems are we trying to solve? So it's definitely a lot more deliberate. But on the flip side, that means sometimes we have less time for things that maybe are, you know, don't fit within those priorities, but still would be good to do.

BP I guess, you know, one of the things I wanted to chat a little bit about, you came in through the software engineering Stack Exchange, right? Like you were early on involved in that before Stack Overflow.

AL Yeah, yeah, I got into the software engineering Stack Exchange at the time, it was called Programmers and it when the site went up, it was really going to be, you know, the softer side of things. So Stack Overflow is all about code. And programmers, software engineering was really more about practices. And I was new in my career at the time. So I felt like that was a lower barrier for entry, I definitely had a lot of freshly formed opinions on how to do things and I went to a lot of meetups and all of that kind of stuff. And so I got really involved there, and I became a moderator. We elect moderators, from the community, or I guess the communities elect their own moderators. That's really the way to put it. And from there, yeah, that was my path back into Stack Overflow proper, where I also became a moderator. And I was a moderator for all of I think, two months before I got hired, and had to stop doing that, and became Community Manager. 

BP But yeah, like, as you're sort of saying, and this is interesting, that was intended to be you know, the lighter side of things maybe a little more conversational or practice oriented. And now has it solidified as many things, I guess, on Stack Overflow do, into like, a bit more restrictive? In terms of like these, you know, this is an acceptable question. This is not or like, this is a question with an objective answer. And this is not like to drive out some of the more open ended discussion?

AL It's kind of hard to say, in part, because I honestly haven't really been back in like, very recently, I periodically checked back in, but I really dropped off in participation in recent years. But the early days, were definitely just a complete free for all. It wasn't you know, any question that doesn't fit on Stack Overflow. Let's put it over here. One of my favorites was, somebody came in to ask, you know, "I'm a programmer, and I just got this new cat. What should I name my cat?"

BP I like that. The meta, the meta we've always wanted. [Adam laughs]

AL Exactly. Just on an actual main q&a site.But yeah, so that type of thing definitely dropped off. And it really became more about things like, you know, how do I write my unit tests? How do I, what design patterns should I use, like in this situation? So it's definitely still somewhat subjective, but the site still definitely looks at, you know, can you actually back up your opinion with something? Can you describe the why?

BP I'm seeing some stuff on here? And when I click the hot tab, the one that has the most views and the most answers with an accepted answer is "why reproduction steps helpful for fixing software bugs" which I think is, obviously you could bring some technical and objective insight to that, but also a bit open ended, like, what steps are helpful, and you know, people will probably have a set of different processes, you know, there could be multiple answers to that question. So I like seeing that when it's issue tracking bug report, technical support. That seems like the kind of question. And I know, I'm not, you know, I'm going against the green here. Obviously, I'm a former journalist and the content director, but I love seeing questions like this. I love it. When there's like, a slightly more open ended discussion and people are sharing, well thought out, as, you know, sort of opinions and almost like little mini essays. That's my favorite kind of question on the network.

AL Yeah, absolutely. Mine as well. My one other favorite is really where you can have multiple, not just multiple answers, but multiple answers that maybe provide different viewpoints on the same thing, it's not just people adding to one giant list of things that, you know, match the question, but it could be, you know, how, how do I unit test private methods? And there's few people who I think offer ways to do that. And I think my answer was, well, you don't, that's just not a thing that you do. You know, because that's just the that's a part of it. The implementation is supposed to be kind of hidden people who use you know, publicly available methods of your API or interface or whatever you're providing, you shouldn't be testing that that is the behavior that works and how its implemented. While that's relatively irrelevant, so you should never be in a situation where you just need to do that. That's the kind of stuff that I personally find interesting.

BP There's another one on here 10,000 views out of, you know, within, I guess the last, you know, month or so, from June 16, "is denormalizing a database for speed and anti pattern?" What's an anti pattern?

AL An anti pattern is more or less what it sounds like it's what you shouldn't do, you know?

BP So patterns and then good because you can repeat an anti pattern, not good because—

AL Yeah, pattern is usually you know, something you repeat could also depending on the situation, maybe they somebody calls it like a best practice for something. You know, if you find yourself in this situation, this is what you should be doing. And then antipattern is the flip side of that if you find yourself in this situation, you're tempted to do this thing, maybe don't do that. You will have a bad time. 

BP Got it. Yes, I'm actually I'm really interested to see what happens with Articles on Stack Overflow. And where that goes, we just launched Collectives. And there's going to be two of them one for Google Cloud. So questions related to a cluster of technologies and tags there and one for GO, GO Lang. And the questions of a cluster of, you know, sort of question tags and technologies there. But we're going to give people the opportunity, I guess, to write articles. And, you know, we'll have to see how it works out between the moderators and the client and us. And also, you know what the approach is, but it's gonna be interesting, because at the very least, you're going to be able to organize knowledge on Stack Overflow in a new way. So something I heard a few times, and I would love to get your take on this is like, people are using their Stack Overflow for Teams instance, internally, like, for example, we didn't want something with Doctorly, like a big French health, health tech provider. And they were saying, you know, the biggest, the most popular questions always the ones that are like for the new joiners, how do I set up my development environment? I'm getting this error, what should I do? Right? Like, that's always gonna be the most popular because everybody who joins is gonna have the same question, you're gonna, you're gonna need to answer every new engineer you bring on. And so then they do an article, okay, you're gonna run into these 10 common errors here, they all collected and, you know, stepped out and somebody else recently were talking to the podcast was saying, oh, I wanted to get, you know, React Native onto my machine and new machine or new version of it, and I brought it on, and I just kept getting error after error after error, I would Google each one and end up at Stack Overflow, but disperate questions, you know, spread out, not like threaded. So like, the simplest, you know, application of an article that makes sense for q&a is like, you're going to go through a process, and there's gonna be a bunch of discrete steps, each one of them could lead you to a problem. There's an article that puts all the questions together. But I guess, you know, from your perspective, are there other things that you could think of that might be useful, like other ways that you like to use documentation that would fit kind of within our q&a format?

AL Oh, that's a very interesting question. You may recall, we had actually a project called Documentation about five years ago.

BP That was pre—I know, it was, I know it was here. I know, it was the other touchy, it came. It was pre-me, so I don't have all the emotional baggage. [Adam laughs] You're welcome to share on the podcast, this is a good place to tell people. What was Documentation? What happened?

AL Oh boy. We're gonna need to, you know, a whole hour for that. But no, the Documentation was kind of one of our attempts to bring a different content type to Stack Overflow to address kind of similar things to what you're talking about. Right. So the way we envisioned it, we would have, let's say, for the C sharp tag, you'd have documentation that includes things like, here's an introductory topic that really teaches you, you know, what the language is about, how to get started, what do you need to install that sort of thing. And then you would have more specific topics on how to do certain things. And so we wanted to go beyond, say, just typical documentation you will find on the internet that will say describe every like method that's available in the language. Well, that's cool. But it doesn't necessarily teach you how to solve specific tasks. So we kind of figured that would be kind of more oriented that way, ultimately it didn't really work out. There's a lot of kind of reasons why I honestly don't remember many of them at this point. It's been a while. But we had some trouble kind of finding the right approach and the right niche. So I'm really curious to see how articles can work for that I'm actually really excited to see that come to the public platform as well. I'm hopeful that maybe someday we'll see it as a more free forum kind of thing. Maybe it's no longer just, you know, has to be a part of a collective. Maybe anybody can submit articles down the road, maybe we even move beyond Stack Overflow to other sites as well. One thing that we've seen so far that some sites have done, and I think this also exists on Stack Overflow, some tags actually, like so we have a concept of tag Wikis. So a tag can have a description, what do you use it for? What is it about? And so some, some of them on Stack Overflow are incredibly detailed. And they do you go into a lot of kind of the introductory steps. I think Python was a good example for that. Here's, you know, all the learning resources. Here's where you can look for other help.

BP Yeah, no. So those are like, kind of hidden, not everybody knows about them, but they're actually really awesome. And we were doing a series just like better know language on Stack Overflow, the content side and social media side, taking the ones that ranked in the top, you know, five from our annual dev survey. And basically, for the rest of them, we were just like, here's the Wiki, you know, like, we added a few little things. But we could have just said like, here's the link to the Wiki. And that stuff, because I think there's always, you know, new joiners and new people coming into the world of software, usually ends up being super popular like that they get a ton of readership not because necessarily, they're like, the most interesting or they're bringing fresh stuff. But because there's always a growing number of people who want to learn Python, learn Go, learn JavaScript. So yeah, those are actually really cool. For people don't know, I'll put a few in the show notes. But they're kind of fun. And yeah, they're a way to sort of break out, break out of the mold a little bit and get that stuff on there. And that's, that's personally, yeah, what I'm also really excited about, you know, like we and this company Prosus, that has an intention to acquire us, that'll probably happen sometime in the third quarter. And they have like a big portfolio of edtech companies. And we've actually been working with Codecademy, and we just put up their live lessons that they have once a week on the blog. All of a sudden that you know, that goes on the right hand rail, and it's like a chance for you to dive deeper like you're on psycho. We're looking at q&a, you say oh, there's going to be something about you know, creative coding, you know, like, maybe I could check it out, like, you know, it could be for me or like, you know, data science with Python, like, you know, I might want to do that. So it feels like yeah, like, we are probably the biggest, you know, the biggest website, the most visited for any and all kinds of software development, but like expanding sort of the idea of what kind of content can be.

AL Absolutely, I'm actually very excited to see what we can do with some of the other companies within the Prosus portfolio for basically the exactly the same reason that you just described. We've tried some previous collaborations, I think our like developer story integrates with Pluralsight, there's a test you can take over there. And like you can put kind of your, you know, outcome, the score you got on it developer story. That is also another one of those things that's super hidden. Nobody really uses any of that. I mean, people do, but it's compared to me compared to just raw q&a. It's a fraction of a fraction.

BP Yeah, the the sort of interesting opportunity is how do you take the like, raw daily traffic from the q&a, and give people at least avenues and opportunities to explore stuff more in depth or create something more in depth or profile. If they want to.

AL Yeah, that is one of the more interesting things I think we think about just on a daily basis, how do we expand what Stack Overflow can do for people? How do we go beyond just questions and answers, but without actually ruining the q&a experience? Right? Because that is still a core proposition of what we do. And the thing that we are very passionate about, and things to believe in. But you know, times are changing. Stack Overflow has been around for what? 13 years now, give or take a long time! And so trying to do better, more current, more interesting things, I think is always going to win for us.

BP How's it going on the the Stack Overflow coin? I know, you and I discussed this once [Adam laughs] you're, you're harboring this idea. So you earn the rep. And then you can use the rep coin to do well, obviously, the first thing you can do is you can put a bounty on something so like you can give rep to earn rep. I had this question answered, yeah. But why don't we just stick it on to by binance and let people stake it and let the market decide what rep is worth? Like why do we have to decide? We don't need to. Let them trade it for what Dogecoin or whatever they want!

AL I mean, periodically, somebody comes through on our meta site and says, you know, can I like trade rep for money? Or can I get, you know, can I pay somebody to, you know, answer my questions or whatever. And there's, you know, there's a lot of potential issues with that there's a whole thing with you know, intrinsic versus extrinsic motivation, you really don't want to mess too much with why people do the things that they do.

BP Yeah, we don't want people rep farming, I guess once once it's worth, you know, asking answering questions.

AL We already see a whole bunch of voting fraud and people inflating their reputation, and it actually doesn't have like a tangible value attached to it. But that still happens. And I'm always a little bit curious why people do that.  But, you know, it is what it is.

BP For their resume, or I don't know, that's a good question.

AL Yeah. I mean, I think I put my Stack Overflow rep on my resume... once? To be fair, I mean, I've only had three jobs in development. And this is my third one. So I didn't really have a lot of opportunity to take it for a test drive. But I see it sometimes on the resumes that we get here as well.

BP Yeah, I'd say like 20, 25, you know, 30% of the time when I when I looking at somebody, and you know, an actual developer, I want to get them on the show, or I read an article they like I go to their profile somewhere. And it's like, yeah, they got their Stack Overflow, their GitHub, their Twitter, their LinkedIn, those are some of the most common ones I see.

AL Oh, yeah, for sure. And it's always nice to see, you know, to actually just browse somebody answers gonna see what are they passionate about? What is interesting to them? What kind of, you know, knowledge do they have? What are they sharing? What makes them tick? definitely better than you know, I don't know, I see a lot of, well, when I did a lot of resume reviews, I would see people put their GitHub profile on, and then there would be actually nothing on it. So it's kind of like this automatic thing. I guess everybody thought that you should have a GitHub and you should put your profile on your resume. But I think nobody actually tells people that maybe you should have a project. [Adam laughs]

[music]

BP Okay, so awarded two days ago to Peter Cortez "How can I accurately benchmark unaligned access speed on x86_64" How do I say x86_64 like that, or is there some shorter way? 

AL Oh, I think x86_64. I think that's it. 

BP Yeah. x86_64. Alright. If you want to know how to actually benchmark those unaligned access speeds, we have the answer for you. And we'll put it in the show notes. Thanks to Peter for winning a lifepo badge. It's somebody who got an answer score of 20 or more on a question with a score of negative three or less to get an answer, got it up to a score of three or more.

AL Amazing. 

BP Yeah, I know right? Saving it from the dustbin of history fere. I am Bob Popper, Director of Content here at Stack Overflow. You can always find me on Twitter @BenPopper, email us podcast@stackoverflow.com. And if you're listening and you like the show, leave a rating and a review. It really helps. Adam, who are you? And where can people find on the internet if you want to be found?

AL I'm Adam Lear. I'm a developer and tech lead on the public platform team. And you can find me on Twitter @AALear but don't expect any major technical content. I mostly just retweet from things that I find amusing. [Ben laughs] 

BP Okay. Speaking of which I learned today that you can now download Android apps from the Amazon store and run them on your Windows PC. So have fun with that, Android apps on the new version of Windows. What could go wrong?

AL Do you want the whole list or just like a couple of top items? [Adam laughs]

BP 15 minutes long. Thanks for listening, everybody. We'll talk to you again soon.

[outro music]