Crafting Code Podcast

~/podcast

$ cd episodes/007-building-communities

~/podcast/episodes/007-building-communities $ ls -1a
. .. episode-summary.txt references.txt themes.txt transcript.txt get-mp3.sh
~/podcast/episodes/007-building-communities $ cat episode-summary.txt

Communities of professionals don't just spring into being on their own. In this episode we welcome a special guest, Mike Clement, to talk with us about his experiences in starting and building communities. Meeting with a group of kindred spirits can make a huge difference in your career.

~/podcast/episodes/007-building-communities $ cat references.txt ~/podcast/episodes/007-building-communities $ cat themes.txt ~/podcast/episodes/007-building-communities
$ cat transcript.txt

[00:00:00] Allan Stewart: Welcome to Episode 7 of the Crafting Code Podcast, where we discuss the importance of doing the right thing at the right time with the right tools. I'm Allan Stewart, a software architect, and lately I've been trying to make significant changes to our code base in very, very small steps.

[00:00:17] Dave Adsit: I'm Dave Adsit, CTO, and lately I've been thinking a lot about competency-based education programs.

[00:00:25] Matt Baker: I'm Matt Baker, software architect. Lately, I've been thinking about data integration patterns and distributed systems and how to appropriately compare and weigh the trade-offs in each.

[00:00:36] Allan Stewart: Our episode topic today is building communities. With us, we have a special guest.

[00:00:42] Dave Adsit: Joining us today is Mike Clement, who I have known for a decade. And we met in a local software development community. Which I soon learned Mike had started because he couldn't find one that had the characteristics he liked. In the years since, we have been involved in many software development communities together. And Mike has literally gone around the country and started a few. I have definitely done that.

[00:01:15] Matt Baker: Confirmed.

[00:01:16] Dave Adsit: Awesome. So, a decade ago, I don't know exactly the date, but I could probably find it. I... I was looking for a software craftsmanship meetup. Some people, like-minded people I could talk to about agile software development, test-driven development, concepts that were very important to how I was doing my work. But I didn't feel like I had a good handle on all of them. So, I did some research and I found that there was a meetup specifically for software craftsmanship in the... Salt Lake. Salt Lake City area. And I went to, I think, probably the third meeting and all of the meetings after that. And that is where I met Mike and several other people. That meetup led to a lot of other opportunities for me, including the longest job I've ever had, which was as a lead architect at Pluralsight. But also from that point, Mike went on, moved across the country to Atlanta, Georgia. And started another software crafters group out there. So, Mike, why do you keep starting software crafting groups?

[00:02:33] Mike Clement: So, I have, like, the story that I normally tell people about how the group started. As I was kind of preparing for today, I went back and actually looked at some of the, I guess, historical record around the starting of the group. I wouldn't say that they necessarily conflict, but it definitely added a little bit more color to what I normally see. How I really thought about it at the beginning was, what I remember, anyway, was I was attending the .NET user group, Utah.NET, which no longer exists. It kind of fell apart at a certain point. There is a new Salt Lake City .NET user group, which I think kind of took over the torch from them. But at the time, there was the Utah.NET user group. And there was a month. There was a month where the speaker fell through. And so, instead of just canceling, they decided to do, like, a roundtable discussion. And so, there were, I don't know, 20-some-odd of us. And we actually got in a circle. We started to discuss things. Like, the organizer started to talk about, like, you know, how could we, you know, make this more of a community. Kind of was asking for suggestions. And I explicitly remember asking or suggesting that, you know, hey, well, maybe. It would be a good idea if, like, people, as they came into the community or showed up at the meetup for the first time, that they introduce themselves. And that immediately got shot down. There was this assumption that if you came to a user group back in the day, that you could just anonymously slip in the back, just sit there for the presentation, and then slip out. And that really, like, got me thinking, like, what is it that I want out of a user group experience? There was a Google group around software craftsmanship. Google groups still exist. I don't know how active they normally are anymore. But I went back in there, and there were a couple people on that group who were from the Utah area. And one of them was Brandon. And he started another Google group and posted in the original Google group that I'm going to start this Salt Lake Software Craftsmanship Google group, and maybe that will end up with us meeting. That was in early 2010. And we ended up trying to meet. In May. And we actually got together in May. There were about, like, seven people who said they were going to come, and there were three of us that actually came. We discussed how we wanted the format to be and kind of our ideas around what the community could be like. And then we promptly never met for the rest of the year. As some of these things go, right, you have all the best intentions. I don't know if I'm giving anything away, but I know you guys with the podcast tried a couple times, had a couple false starts. You know, global pandemic and all of that.

[00:05:27] Allan Stewart: Yeah, there was this weird virus thing that started going around and kind of disrupted our beginnings.

[00:05:32] Dave Adsit: I don't know anything about that. Everything that we've started, we've stuck to, and it's been perfect from the beginning in every way. Right, Matt?

[00:05:41] Matt Baker: Dave's a liar.

[00:05:44] Dave Adsit: Don't worry, I'll edit that out.

[00:05:46] Matt Baker: Don't.

[00:05:49] Mike Clement: You can just say it a couple more times. I'll say Dave's a liar. Yeah, yeah. So yeah, so we met, we decided we're going to try to meet again. And then, you know, it just didn't happen. Then finally, January, again, this was kind of going back and looking at the messages that went around. In January of 2011, so about 10 years ago now, we had our first monthly meeting. One of the other founders, James, he worked at AdvancedMD and offered up a conference room for us to meet in. And again, like you said, like we pretty much... We have met monthly since then. I think we've taken a couple July 4th's off because we usually meet near the beginning of the month. And so times July 4th ends up being on that day. But pretty much consistently since then, I know the Utah group has continued to meet. One of the things that I really focused on early on with creating that group, I saw other user group organizers start to get burned out. Right? And that's what eventually happened to .NET User Group. And who was kind of the heart and soul and kind of the person who took that forward, like just got burned out. Because it's this constant grind of finding speakers every month and making sure you have sponsors and you make sure you have all of those things in place that people expect from a group like that. And I was like, well, if I really want this to endure, I'm going to have to make this simple. And so pretty early on, I think we maybe tried to get pizza at the beginning a couple times. Then it came to us. It kept falling through. And eventually we're just like, let's not worry about it. Let's not make that principal concern. I think a couple times maybe we ordered stuff and just all pitched in some money for it. But out of that grew this tradition of going out to dinner afterwards where we kind of have the after party of that group. And then the other component was to not have a speaker. That it wasn't like an expert coming in to tell us this is how it should be. It really was building off of that. It was building off of that principle of building a community professionals and having it be learning that was peer based. And so one of the rituals we developed was at the end of each meeting, we would ask for volunteers to do the coding exercise for the next time. I think early on, we even tried to get the lightning talks early on and then had somebody maybe even facilitate the reading discussion. But I think over time it became like the coding exercise was the main thing. The other things could almost facilitate themselves. And people generally came up with lightning.

[00:08:24] Allan Stewart: And that format has basically survived this whole time. What you just described is what I experienced some six years ago when I first attended. And it's been the mode ever since.

[00:08:39] Mike Clement: Yeah. So I think we originally had it a little bit shorter. But where it ended up settling was a two hour meeting with three components, three main components. We did start doing at some point an opening circle fairly consistently. Going back to that idea of making sure that we're introducing ourselves because it's not a group that for better or for worse doesn't foster anonymity. Right. You can't slip in the back. The format is do an opening circle. Basically, everybody introduces themselves one at a time. We usually have some sort of fun question to kind of bring out people's personalities. And then we do, I would say, zero to three lightning talks. It's like if nobody wants to give one, then that's fine. But we do up to three. And then in the current iteration, we basically limit it to five minutes for lightning talk, which basically anybody can talk about anything for five minutes is what I've observed. And they don't even have to take the full five minutes if they don't want to.

[00:09:41] Dave Adsit: Some of us can talk about nothing for a lot longer than that.

[00:09:44] Mike Clement: This is very true. Then we have a reading discussion that usually is about a half hour. So there's some sort of assigned reading, again, in that idea of continuous learning. And then the. The last hour. I really was wanting it to have a hands-on component where we actually did code as part of the group meetings. I felt like that was a really important thing that I didn't see in any other group that I had attended.

[00:10:10] Allan Stewart: I've really enjoyed it. I feel like it's a nice combination of things going on. It's maybe not as anonymous as slipping in the back and never being seen or heard. But it's also pretty welcoming, right? Like the barrier to entry is not. It's not very high. You just need to know what your name is and what kind of programming you like to do, where you work, and maybe something fun like your favorite superhero or. Candy bar. Candy bar or Thanksgiving tradition or something like that, which gives people an opportunity to engage. Sometimes people come in and if they don't want to engage as much, it's not a very high bar, as I said, but it keeps going.

[00:10:51] Mike Clement: I think over the last couple of years, I've gotten to where. I've changed my language around it to be that I invite people to share something like invite people to participate in the opening circle. They really don't want to. I mean, I don't know as if I've had anybody that hasn't been willing to. But I have tried to bring that down a little bit. Mostly based off of one experience I had. So this was in Atlanta. So as Dave mentioned about six years ago, now I moved to Atlanta and maybe I'll get into that story a little bit later, but as part of the group that I started here. We had these two, I think students come in and they came in as we were doing the opening circle and they came in and they're like, oh, hi, you know, is this the group? And we're like, yeah, this is the group. And they're like, oh, we just want to like, you know, sit in the back and just observe. And I ingest said, he was like, well, this is not that kind of group. And at the same time, walked out of the room to go grab the time timer for the lightning talks. And when I came back in, they had left. Oh, no. I was like, where did they go? They're like, they left. I'm like, uh, that was not what I intended to have happen there. But it was just kind of funny.

[00:12:06] Dave Adsit: That's too bad. Yeah. That's actually one of the things that I really appreciate about the way the community works is that everyone of all skill levels is welcome. It seems like just about every month we have somebody who just started their very first programming class or bootcamp. Or they think they might be interested in getting into programming and they don't know anything about it really yet. And they want to see if this group is the kind of people they want to become. And then we also have some people who've got decades of experience who show up and they are still eager to learn something new and eager to share something with somebody around them. And so I really appreciate that about the community.

[00:12:50] Mike Clement: Yeah. I was pretty sad that they took off. They could have really gotten something useful out of the community.

[00:12:59] Matt Baker: We used to do it out in Boston, the Software Crafters Meetup. I lived out there for a little while. And something about that story, Mike, brought one to my mind. We did serve pizza out there and that had mixed results, but we also served beer and wine so people could show up and have a drink as we got settled in. And I think we stopped doing that. And it was because a guy showed up and got really drunk and got aggressive with people programming. If you can imagine going to that group and sitting down to pair with someone and then being like an aggressive drunk telling you how stupid you are, that at least might sour the meetup for you. So I think not doing food is a smart thing just because it's a headache. And from that experience, I learned like, man, maybe don't do booze.

[00:13:41] Dave Adsit: Maybe not.

[00:13:42] Mike Clement: Alcohol-driven development doesn't sound like a thing.

[00:13:45] Matt Baker: Yeah, for some people it was fun. Other people, not so much.

[00:13:49] Dave Adsit: You know, I've worked in a code base that had comments at the top of some of the files that said things like, this is a not a drop file, as in do not code, do not make any changes to this class if you have had even a single drop of alcohol today.

[00:14:06] Matt Baker: Yeah, maybe we should start calling the meetup not a drop.

[00:14:10] Dave Adsit: Not a drop.

[00:14:12] Mike Clement: The no food was, so moving to Atlanta, I didn't end up. I started out with that rule, but then I realized that, you know, the reason the rule was there was because it was a pain in the butt. But at the point where I was in Atlanta, I was the owner of the company that was hosting the meetup and therefore could just pay for the pizza. And so we just did that. And then I didn't have to worry about people showing up hungry or anything like that. And we didn't have a place to go afterward that was as convenient as we've had. The Utah locations. Originally, we went to Village Inn up in Sandy or South Jordan. I can't remember exactly where it was, but I think, again, based off of my spelunking through the old Google groups, I think we used to meet on Tuesdays. And at some point we moved to Wednesdays because Wednesdays was free pie night at Village Inn.

[00:15:08] Dave Adsit: This is how I remember it as well.

[00:15:12] Mike Clement: So there was some food and motivation. I think about lazy programmers, I think.

[00:15:16] Dave Adsit: Yeah. So there's a lot of different characteristics that we've talked about in these communities, right? And I like going to a meetup where somebody gives me pizza, but I also don't go to a meetup for pizza because I can have pizza anytime I want. I can't necessarily have the community of professionals anytime I want.

[00:15:36] Mike Clement: There was an aspect of that there in the original thinking as we kind of transitioned away from trying to do food. We don't want... Like, we specifically didn't want... We didn't want people coming just for the food because there were people who would meet up hop basically as a meal plan. So one of the levers that I think about pulling in terms of these types of meetings is how inclusive are you of certain elements, right? Maybe elements is not the right word, but along certain axes. For example, this. You guys didn't post a Zoom link and let anybody who wants to show up jump into the podcast do that, right? It's you three. You specifically. You invited me. You know, and maybe at some point you'll have an audience, a studio audience to do your podcast in front of. But being intentional about some of those design elements, I think is really important when creating a community.

[00:16:32] Dave Adsit: So speaking of communities and design elements, you and I participated in other communities together as well. You mentioned the Utah.net meetup, Utah.net user group, I think is what it was called. Went to that one for quite a while. The Salt... Salt Lake Agile Roundtable is one that we both participated in for quite a while. I assume that there are others that you participate in there. I know that there are some that I've gone to the Ruby, the Salt Lake Ruby users meetup and the occasionally the Java user group. And each of them has their own characteristic, their own, their own flair, right? Yeah. What are some of the things that you've experienced at different meetups that you'd like to bring into a community? If it doesn't already exist there. I guess maybe a better question is what draws you to a community of professionals? And that for any of the three of you, like, why do you, why do you want a community of professionals and what does it give you?

[00:17:33] Matt Baker: Oh, goodness. I, for me, I know that the answer to that change is based on where I'm at in my life and more particularly who I'm working with. You know, I have great memories working with Allan and Dave having, you know, awesome conversations while we're sitting there coding. Getting into some things because we're, you know, we're into a lot of the same stuff. We read the same books. We're following the same software, maybe approaches or methodologies. But sometimes you don't have that. And when you don't have that, you can start to feel like you're on an island. And if it goes on long enough, you can start to feel like there's not a lot of validity to what you think. You know, you start maybe questioning, well, these approaches, maybe they are this, that or the other, because everyone's telling me that. Right. And so it's nice to come to a community where at least for a little bit, people are going to be more eye to eye with you and you can start to explore these topics. Like it's, it's hard for me to find someone that will talk about TDD for four hours. Not hard in this group. In fact, it would probably be hard to keep it to four hours in this group, you know, and that's a reprieve sometimes. So different times in my life, it can be just a place to go hang out with some people I like to hang out with other times. It can almost be therapeutic for me. Yeah, I agree.

[00:18:42] Mike Clement: Yeah. I think that just thinking about your question, Dave, like thinking about going into other communities, right? Like I don't feel like it's my job to bring anything other than myself to those communities. Like in terms of if I were to go to the JavaScript meetup here in Atlanta or the Java user group here in Atlanta, but kind of to Matt's point, right, there's different purposes and different things that I get out of those different groups. The reason I really love the software crafter community is that it is that place where I can kind of geek out on test-driven development. On why do we test, you know, refactoring techniques, you know, increasingly things like domain driven design kind of play into it. And even kind of a lot of the incremental and iterative software development techniques that we talk about. And so having that space is great, but then also going and looking at what's going on in these other communities is very interesting for me to see, huh, okay, this is how they're approaching this same problem because we're all encountering a lot of the same problems, right? Right. Right. While potentially approaching them differently.

[00:19:49] Allan Stewart: It reminds me, I remember when, before I started coming to the craftsmanship meetup, I felt like I was very alone when it came to certain types of topics because a lot, a lot of these groups didn't really have the same appeal to me because either they were using a different technology that I wasn't using, or in some ways I feel like the, the more technology specific it gets, the less interested I become because it's like, oh, they're going to talk about, um, But then I move on and I don't go back and refer to it. But there's other books and similar with meetups where it's very general. That's one thing that I've really liked about the craftsmanship group is because when I first started coming, I was starting to tap into something that I hadn't had before. At the place that I was working, I could learn pretty much anything that I needed to learn as far as a specific technology. I had access to books. I had access to online tutorials and all kinds of different things. But I didn't know how to talk to my coworkers about unit testing. And I felt like I was dragging them, kicking and screaming all the time into doing some of these things that our CTO was telling us, yeah, you should be doing those things. But nobody really had a working knowledge of how to actually make it happen. And so coming into the craftsmanship group, I started seeing, oh, here's people who are kind of a kindred spirit. They're having similar problems that I am. And we can talk about solutions. We can talk about ideas. That aren't specific to a technology. So somebody who is working in a JavaScript shop can talk with somebody who's working on mobile development and somebody else who's working on embedded systems or something. And they're all going to have some similar threads as far as, oh, well, yeah, we all have managers that we've worked with. We've all experienced deadlines for getting code done. We've all experienced times when it was really hard to work in a piece of code. And it was interesting to me to get into that. That type of a discussion that carries across very broadly, touching almost everybody's experiences rather than it being a very specific technology. Yeah.

[00:22:18] Mike Clement: A couple of things that came to mind. Like one of the things about the coding exercise component of the groups is that it is language agnostic. And so oftentimes, you know, you'll end up maybe pairing with somebody who's doesn't know the language, you know. And so you either get a chance to teach or you get a chance to. And so you're going to have to learn and probably a little bit of both because it is useful to not to stay too siloed in your one community. You know, those talks that you referred to or those user group presentations that like are so specific. Well, and Falco refers to those as API talks. It's like, here, I'm going to tell you the API. And increasingly, those are less and less relevant as conference presentations or as user group presentations for two reasons. One is that like there's so much out there in terms of content that a lot of people are putting out to the point where one of the guys I work with, like always looks at the meetup toppings like, well, I could probably find a better YouTube video on that topic. It's probably shorter and just better instead of going to this meetup. Yeah.

[00:23:22] Allan Stewart: Watch it whenever you want.

[00:23:24] Mike Clement: Yeah. It's on demand. You can go back and watch bits that you want to do multiple times. You can pause, you can, you know, all of that stuff, right? You can watch it at two X speed. And so the part of those groups that becomes. Yeah. Increasingly important is the connection with the other attendees. It is one thing that I, I do worry about a little bit with a lot of these groups going virtual where they are kind of speaker presentation base. It's like, well, you show up and you listen to somebody speak. It's like, well, I could have watched a YouTube video. And then increasingly a lot of the, these groups are just posting their stuff on YouTube. And so why do I show up at a specific time to do the thing with other people where I'm just watching a. or will people find that I will fire people or will people find that I will fire people

[00:24:17] Allan Stewart: or will people find that I will fire people or will people find that I will fire people or will people find that I will fire people or will people find that I will fire people or will people find that I will fire people or will people find that I will fire people or will people find that I will fire people or will people find that or will people find will fire people will fire people will fire people will fire people will fire people and has kept me coming back. Sometimes the coding exercises are fun. Sometimes I'll get an interesting idea that I hadn't heard before, but it's those interactions with people that I think have really made the difference for me. And so it makes me think, for people who are looking for something like that, or people who are working through kind of the tail end of this pandemic, and they're seeing changes happening to groups around them, if they're interested in starting up something, how difficult is that? What does it take to build up a community? You talked kind of some about the format, Mike, of the craftsmanship meetup that you've done and how that has worked out. It's endured, but what does it take to get started? What are some of the challenges or some of the benefits that you've seen as you've been trying to be the one, the person to say, hey, I would like to talk with other people about this. How do you get that started?

[00:25:31] Mike Clement: Well, as they say, it's dangerous to go alone. So especially like with Utah SC, again, I wasn't necessarily the one that even had the idea of meeting first, but I found other people who were interested in meeting, which kind of emboldened me to take charge, I guess, a little bit, because like the other people were there and they, I guess, for lack of a better term, gave me the courage to like start. And then eventually they kind of faded out, no longer involved with the community. But that being said, they were replaced by other people who were attracted to that initial group. You know, like Dave said, he was one of the people who came on very early on and finding that core group of people is super important. I think the other component is that it's a lot easier now than it was 10 years ago. Like I said, we started off with a Google group and we had to do a lot of legwork going to the different meetup communities and contacting other organizers to be like, hey, there's this new thing. If you want to let your people know, that'd be great. But right now, like it requires a little bit of financial investment, but you go to meetup.com and say, I want an account and I want to organize a group and you can put it on there and see. And meetup does a lot of the work for you in terms of attracting an audience. You know, I mentioned we started with the Google group. And again, I went back and looked through some of my historical records and found that like the first time we were on meetup was in May of 2013. And it was for a combination of factors. One is I was getting really tired of sending the reminder emails every month. And I was like, if I could pay somebody else to do that, that would be great. And then the other component was that it was kind of in the kind of gold rush era of meetup where specifically like the, there was a Utah JavaScript meetup. They were probably characterized as a user group, but they weren't on meetup. And then somebody else went on to meetup and created a Utah JavaScript group. And it was like, hey, anybody want to get together and kind of organize this? And the other community was like, we're here. We're here already. And so it was kind of like getting on a new social platform and claiming your username. It's like, well, I gotta get in there fast. Part of it was doing that, making sure that the community didn't unintentionally at least splinter as well as just the convenience. And so it's really quite easy now. Especially if you're willing to use meetup and put a little bit of money into it. Because meetup will largely find a lot of the kindred spirits for you. If you're not that, participating in other communities, like those people that I found, some of them I found through global groups or around software craftsmanship at the time. There were a lot of people that I met through, maybe somebody at your work. Maybe you have just one other person that you're able to talk to these things about. That or you're like Allan and Matt said, and you're the lone person in the wilderness just sort of wandering around. But if you can find one other person and you can schedule a time, that's all it takes to get started.

[00:28:38] Allan Stewart: Looking back at the software craftsmanship manifesto, where it talks about not only individuals and interactions, but also a community of professionals. I don't know what I thought when I first read about that, but a lot of my experiences had been working with people just as part of a company, right? So it's like, this is where my job is. These are the people that I talk to. And I think that there can be a very valuable group of professionals there. Especially if you're, you know, of kind of similar mind and you want to talk about those things. But I really like the concept of building out community, right? Community isn't a thing that just happens on its own. It happens because multiple people get together over some kind of shared interest or shared cause. And it does take some effort. Even just as an attendee, you've got to put forth a little bit of effort. But for me, I found that I've gained a lot more than I put into it. I put in a little effort, to go and participate. Sometimes I put in more effort and help with facilitating a coding exercise or giving a lightning talk. But even when it's just the effort of be there at the particular time and show up, I almost always get more value out of it than I could have realized on my own. And that I think is where a lot of the big value comes in because you put forth that effort, you're meeting with people. And if all you can meet with is, you know, the people who are interested in a similar topic, in your job, well, then that might be fine. And there's certainly plenty of big companies where you can have like, you know, brown bag discussions and other things where you're getting people from multiple departments that you haven't talked to very much. And there can be a lot of value there. But however it is you do it, I think getting those additional perspectives, getting people to challenge your assumptions, getting people to tell you about how they're doing something that's a little bit different can really open up your mind and give you a way to improve how you look at software development as a whole.

[00:30:39] Mike Clement: Yeah. I think there's a lot of value in that getting out of your company echo chamber. To that end, a couple months ago, I mean, this is kind of interesting, right? In terms of, again, those levers of how public or private or open or closed a particular group is. But I decided that I thought it would be valuable for me to get perspectives of people that were outside of my company on just topics that were going on, in the company. And, you know, obviously respecting privacy and, you know, confidentiality and things like that. I was able to assemble a group of engineering leaders in different organizations. We meet actually weekly and it's six of us. And we just bring, hey, here's what I'm thinking about. Here's what I'm dealing with. We're able to follow up with each other. And it's been super valuable. And again, to your point, Allan, about what you put into it, it's a whole Ikea effect, right? Where you value the thing that you put together more than you value the thing that was put together for you. With that, that was somewhat intentional with the software crafters community. It's like you came, you give a lightning talk, right? Which involves you, kind of pulls you into the community, makes you part of the community. Other people are doing coding exercises, right? You might have the same person facilitating the whole meeting, but like each individual part is really led by those that are in the group. And which really gives that greater sense of ownership of the group. I found that that's been a super powerful element of it. I can't really take credit for it, but I do feel a certain amount of pride in the fact that the group has endured six years past me leaving, right? A lot of these types of group don't survive when the founder of the group no longer participates. And I think a large part of that is because there was, a significant feeling of investment by at least a core group of people in the community that this is valuable. And we want to make sure that this keeps going. In addition to the monthly meetups, right? Those are super important and they help provide a sense of cadence. One of the things that was super useful early on with the Utah SC group was that we did have that Google group. There were conversations that were going on asynchronously or at least independently from the, the actual meetups. We eventually migrated to Google plus communities, which isn't a thing anymore. And at a certain point, I think after I stopped participating, the group has moved to Slack. And that aspect of it, I think it's been super useful in terms of, you know, when somebody sees an article, they can post it. When somebody has an idea or a thought that they want to get feedback on, they're able to post it. And it's also been a way that I've been able to continue to participate somewhat in the community, from a distance.

[00:33:37] Allan Stewart: Yeah. I've really enjoyed the asynchronous nature of the Slack group. And as people have moved jobs over time, relationships that have started either because they, they work together with some people who are part of that community and then became part of the community themselves, or, you know, you met somebody at a meetup and then they've moved from job to job in a lot of the prior communities that I would participate in. And that would be the end. Now they're gone and you just don't see them anymore. But that asynchronous platform, you know, whether it's Slack or Discord or a forum or something else does provide a nice way to keep in touch and keep the discussion going with people that you don't see as often.

[00:34:22] Dave Adsit: Yeah, I really, I really value that Slack channel because it helps me stay more engaged throughout the month. But I also know that there's a lot of different ways that communities work and behave and things that communities do together that may be more or less valuable to people than a monthly meeting with a specific format. In the past, the Utah SC group has participated in Global Day of Code Retreat repeatedly. In fact, the last Global Day of Code Retreat, we treated the Atlanta group as our sister city and we met up during the middle of the day to talk about how the Code Retreat was going. We've also done several workshops or trainings and we use the community as a launch point for those. You know, the Absolute Beginner's Guide to TDD as a workshop is a low stress way to get somebody bootstrapped into that kind of a practice. We've also brought in speakers. For example, Woody Zuhl came through Salt Lake and he met with us and helped us out. And I think we even had Llewellyn come in and talk to us. It's an opportunity for a community to be bigger than just a monthly meeting. And that is a way for different people to be involved based on their level of interest and ability to engage. And so I really like it. You know, for a long time, we intentionally did not put the meetup online through, I guess it would have been Skype or Google Hangouts at that point. And now that we've kind of been forced to, we have participants from different cities, and time zones and places, you know, it's made it easier in some ways for people to be involved while also, you know, reducing that cost in a way that may in fact make it less valuable. It's hard to say. We used to have a group of college students that would climb in their professor's van and drive four hours to come to the meetup every month. And since we went online, I don't think I've seen them participating. We had one member, who would drive halfway across the state every month to participate and then later got a job and moved so that she could participate more easily and also have a better job in a bigger city.

[00:36:47] Allan Stewart: Which I think was in some ways, it's kind of a success story of these kinds of communities, right? You meet people, you learn some new things, you get connected with others that might help you with new opportunities. I think I know the person you're mentioning, she and her boyfriend, they would always come up and they both ended up getting new and different jobs through that. She always wanted to work at Blizzard and she went on to do that. And I think that a lot of the things, the connections and the learnings that she got through the group helped her to be able to do that.

[00:37:18] Dave Adsit: Yeah, I think the community is an opportunity for us to give service to others, but also receive benefit of our own in a lot of interesting ways. And I valued it for all of these reasons for a long time. It's definitely changed the course of my life to be participating actively in a community of professionals who care about the kinds of things I care about.

[00:37:42] Matt Baker: Yeah, I wanna piggyback on that. I can remember finishing Clean Code. And I think it's in the back of Clean Code. Robert Martin recommends finding a community of professionals and recommends the software. Was it what was at the time, software craftsmanship groups now, the software crafters groups. So I Googled it, found the Salt Lake City one. I remember the website, it had the interesting, I don't know if it was the Salt Lake website or just the software crafters website, but I remember the scroll with like the creeds on there and everything. But anyway, I came to the meetup. It's where I met Allan. That's where I met Dave. And then by extension, Mike, it's where I met you. And it helped me find a job that was just a big impact on my career. And I learned so much there and it's just been a lot of good. So I'm grateful for both the community and Mike, while we have you, grateful for what you did. Your idea to start a little, I don't mean that in a demeaning way, to start a Google group, to start talking about crafting software went through a lot of growth and a lot of changes. And one of the things it did is it brought a lot of good things into my life. So thank you.

[00:38:51] Mike Clement: I mean, hopefully this inspires other people to go out and do similar things in their local areas. And one of the things early on that inspired me was the biggest community around, in the world, I think still is in London and talking to Sandra Mancuso, who kind of started or organized that originally. And seeing that happen was super inspiring to me to like, okay, this is something that can be a big thing and it can be something that has a powerful impact in people's lives. I think also in the spirit of connecting, I maybe came off a little bit negative on the whole API talk thing. I'm not necessarily saying that those aren't valuable because you need to know your tools. And one of the things that I know we do in Atlanta now is at the end of each meeting, we ask if anybody has any announcements of community events that are going on. So, if there's a Java group that's meeting or having, there's a Java conference or a JavaScript conference, or there's CodeCamp going on or all of those different things that might be able to connect you, potentially, to a group, or will be able to fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up or fire people up It was a thing that some of the organizers of the .NET user group were also organizing. I remember distinctly going to one of them and encountering a lot of these API talks and realizing that, you know, those were interesting, but nobody was talking about, you know, unit testing or test-driven development or a lot of these things that I was kind of starting to understand better. And, you know, kind of in the spirit of, well, if I walk into a community, how can I add to it? I guess nobody else is going to do this talk. I guess I can do it. And that launches a whole other potential conversation about speaking at conferences. But again, kind of goes back to just having a little bit of courage and like, just like try it out and see how it goes. And, you know, maybe it's your thing to start a group and then hand it off to somebody else. You know, again, I go back to Brandon and James who were there at the beginning. Like it wasn't for them. I don't know as if it would have started, but, you know, they haven't continued to be as involved, but, you know, they were instrumental there at the beginning. I do think it's important as you build a community to have kind of that core group, to have some consistency or else it can feel like that's just a random group of people every month or in general. And so by having that core group, you generate consistency for both. You, but for other people, and that helps to, to build confidence as, as people come into the group, like, oh, look, these people actually know each other and they enjoy being with each other. And it's not like a bunch of strangers that have come in. And, you know, as we talked about earlier, making sure that that's also inclusive, like, Hey, come be one of us. And I think that's a super powerful way to, to build community. One other thing that would be useful. If you're looking to start specific. A software crafters community is there are, there's kind of a sub community of organizers of these types of groups. Don't be afraid to reach out to me if you'd like, or an organizer of another community to get ideas. Cause we're always looking to help to build up communities wherever they need to grow. So, like I said, with my conversation, like with Sandra, like it was getting incredibly encouraging. It was a good way to get ideas and to learn. But Zach was one of the founders of the Boston group. And he and I would talk early on and kind of trade ideas on different ways to format the meeting. Even having that be a collaborative exercise at the organizer level has been super beneficial and kind of having that community as well has been useful in growing the other communities.

[00:43:21] Allan Stewart: Thank you, Mike, for coming. And joining us on the podcast today is really interesting to me to hear some of the history, some of the ideas and concepts that you had as you're forming this group and to see how much it has impacted people. I'll definitely echo Matt and Dave and saying that it has made a significant difference in my career, being able to be part of these groups. So thank you for helping get it started. And thank you for everybody who participates in these kinds of groups, whether it's at the Utah SC group, the Atlanta one, Boston. We recommend that you join up with a community of professionals. And if you don't have one around the area that you're in, maybe just take a little bit of that courage that Mike was talking about and give it a try. See if you can find a few other people who are interested in talking about software with you and see where it goes. And if you would like to meet up with others who are in an established group, the Utah SC group can be found at UtahSC.org. And currently their meetings are virtual. Maybe we will see you there.

~/podcast/episodes/007-building-communities $ cat ../../copyright.txt

Copyright © 2026 - Crafting Code Podcast