On today’s episode of The Rabbit Hole Podcast we are talking guilds. What are guilds? Are you a part of one? Why should you join or form one? We’ll asking and helping you answer all these questions and more! We discuss how guilds can work to your organizations advantage and look briefly at the example of Spotify and their success with the concept. We also look at how they can be run and common practices such as the use of Slack as a platform. An interesting part of the concept lies in its nuts and bolts, how these guilds can be formed or come to and end, who should be the guild master and what differentiates a guild from other bodies within you company. In this episode we break all of this down for your listening pleasure, so tune in and get it as we go down the rabbit hole!
Key Points From This Episode:
- What do we understand by the term ‘guild’.
- Frameworks and the extent of potential guilds.
- The example of Spotify and how they use guilds in a very large organization.
- Where the communications of your guild can be housed.
- Guild masters and good potential candidates for this role.
- Organic formation and dissolution of guilds according to interest and need.
- Challenges facing the running of multiples guilds within an organization.
- How to choose which guilds to join and not overdoing it.
- A comparison to chapters, squads and tribes and how guilds fit in.
- A Docker teach and learn from Michael.
- And much more!
Transcript for Episode 61. Guilds in the Workplace
[0:00:01.9] MN: Hello and welcome to The Rabbit Hole, the definitive developer’s podcast in fantabulous Chelsey Manhattan. I’m your host, Michael Nunez. Our co-host today.
[0:00:09.8] DA: Dave Anderson.
[0:00:10.8] MN: Our producer.
[0:00:12.0] WJ: William Jeffries.
[0:00:13.6] MN: Today, we’ll be talking about engineering guilds. How to create one and what are some of the challenges once you have created one.
[0:00:21.2] DA: Yeah, what is a guild?
[0:00:22.7] MN: I mean; I guess this is the topic. I am actually really interested because I have never had the opportunity to create a guild and would love to discuss. Anyone want to start on what is a guild, besides that of a world of Warcraft group of people where you go into a dungeon with 40 individuals and slay a dragon.
[0:00:43.3] DA: Yeah. Just running instances.
[0:00:44.0] MN: Man, nostalgia, let me go, be right back, going to go open an account again.
[0:00:51.1] DA: No, don’t do it.
[0:00:52.5] MN: Bye guys, sorry, got to go.
[0:00:55.6] DA: Please, stay with us.
[0:00:56.4] WJ: Yeah, I think a guild is a collection of artisans who work together. I think that you know, the term originated a very long time ago, I associated mostly with the middle ages. But it has been adapted for the tech industry in order to describe groups of engineers that have been subdivided in ways that are useful.
[0:01:15.7] DA: Yeah, I like the phrase, community of practice. It sounds like more neutral and business like. Guild sounds very like, medieval and fantasy like we were talking. But give me a practice to kind of describes that same thing pretty well because it’s a group of people in a community that have a common set of interests and practices that they’re sharing.
[0:01:38.1] WJ: Yeah, I also associate guilds with bad behavior like setting prices, like a cartel, yeah.
[0:01:46.3] MN: Wait, how?
[0:01:47.1] WJ: Like you know, back in the day when if you were on the guild’s bad side, they would come and ruin your business.
[0:01:54.1] DA: Like the stone masons, they had all these secrets about the angles and stuff. How to cut the stone, they wouldn’t tell you.
[0:02:03.2] MN: All to themselves. Is that normal for an engineering guild to keep all the secrets, is that how it works?
[0:02:10.1] DA: I think that’s probably not a best practice.
[0:02:13.1] MN: Step one, if you’re going to create a guild, do not keep secrets., it’s not good.
[0:02:17.1] DA: Yeah, I think an open forum is a pretty good way to do it. Like where it’s people with shared interests so anyone who has that interest should be able to participate in the guild.
[0:02:29.1] WJ: yeah, it’s a great way of breaking down silos between teams.
[0:02:32.9] MN: Okay.
[0:02:34.3] WJ: Let’s say you have an engineer who needs to know a lot about Postgres and there happen to be engineers that have that expertise on other teams but because they’re busy with their team’s work, they don’t really have much time for Bobby here who needs some help with his Postgres instance.
If you have a guild for Postgres, you know, like a database guild then there’s a regular meeting, there’s an open forum where Bobby can go and get help with, his database issues from some of the more experienced DBAs.
[0:03:08.6] MN: Right, this includes people who may not be in his engineering team per se.
[0:03:15.2] WJ: Right, because often, it’s impractical to get a senior DBA on every single team or a senior React developer on every single team. Whatever the technology is that you want to build a guild around, it could be hard to get people with serious expertise on every team that needs it.
Let’s say Bobby’s working on React and he’s relatively new to it and he wants a code review but nobody on his team has the expertise to get him a good one. He could go and post his PR in the guild channel for react and get some tips.
[0:03:50.7] MN: Yeah, that’s true. You want to share their context too? Like you don’t want everyone to be like reinventing the wheel in silo, you want to like, have a forum for a communication, for everyone to get together and you know, if you solve a really good problem with your database or with React, like you’ll make a really awesome component that sells so many cool things then you got to let the world know, what better place to share it than with a guild.
[0:04:17.7] WJ: Yeah, I think it also have to view later on we’re going to do rotations because if everybody is using similar patterns since they’re communicating via the guilds then a Ruby person in one team is going to be able to quickly get up to speed if they move to a new team with another code base since a lot of the patterns will be the same.
[0:04:40.4] MN: Are guilds normally made around a particular language or like framework? Is that the idea?
[0:04:46.9] WJ: I think it depends on the size of your organization.
[0:04:49.1] DA: Yeah. Spotify wrote a lot of white papers on this and in those white papers, they describe their way of doing guilds and obviously Spotify has grown very quickly and it’s a very large organization. They have the ability to have very granular guilds that cross cut across a lot of different teams. I think we were looking at this picture before, there’s a very pretty picture, maybe we can link it in the show notes of like how Spotify does guilds.
There’s a lot more going on to t heir organizational structure than just the guilds.
[0:05:23.2] WJ: Yeah, I haven’t worked on a guild in an organization that large, large enough where that’s necessary. I think that if you have - if you’re a smaller startup, then you’re probably going to want pretty big, generic topics for your guild, a front end guild and a back end guild or like maybe three, four, five guilds for the key technologies you use.
[0:05:49.3] MN: Right, with those guilds in mind, this is a group of individuals who wish to seek out information depending on the guild that they’re in. As you mentioned before William where an individual who may not be well versed in React who wants some tips in their poll request can share that poll request in the react guild that will then get feedback about the work that they have committed.
[0:06:19.6] WJ: Yeah, I think you’re also going to want some guild masters.
[0:06:21.8] MN: This is sounding way too much like WOW now.
[0:06:25.9] WJ: Well, I mean, I think you need somebody who is in charge of making sure that guild meetings happen and that people are finding it useful and shutting it down if no one is coming.
[0:06:36.7] MN: I see, they get to actually deprecate the guild whenever it’s no longer in use?
[0:06:41.6] WJ: Yeah, I mean, I guess it depends on your company culture. If you’re a really flat organization and people have an easy time of maintaining initiatives as they strive themselves and maybe you know, maybe you don’t need a guild master, but it is a common pattern.
[0:06:55.3] DA: I think that’s at Spotify as well, they have someone who is responsible for the logistics of it. Making sure there’s a room booked for the meeting and facilitating discussions.
[0:07:06.1] MN: Can guild interactions happen only on Slack?
[0:07:09.4] DA: No, like Slack is pretty great for guilds because like there’s kind of a natural ability to create a common space for people to communicate to each other, like on a very regular basis.
Like we’re talking about before, it’s nice to have like a regular reoccurring meeting where you can talk about the larger issues that maybe people on the day to day, like, they can’t get engaged in the slack conversation because they’re getting their job done and doing work. So it’s nice to have some time carved out for like a larger discussion or like kind of a recap on discussions that we had over the course of time.
One potential challenge here is that if your organization is growing and you see the need for more guilds and subdividing it further and further, where you once had like a front end guild and now you have a React guild and you know, a redux guild and whatever else like, it’s going to be really hard to be present and a part of all those conversations.
It could be something that’s like really hard to scale.
[0:08:15.7] MN: William mentioned earlier that guild masters may be necessary to grow like certain guilds, how does that happen? You guys have any experience on getting that started?
Like what kind of guilds in the places you guys have worked in and grown t hose guilds? What are your thoughts on that?
Does it happen organically on guild master just says, “You know what? I want to be responsible for the react framework and how we do things in react so I’m going to ban the group of people together and create this guild.”
[0:08:44.5] WJ: Yeah, I think it partially comes from expertise like in order to be the guild master for particular topic, you probably need to have more expertise at least than most people in the organization, on that particular topic. And I think also it’s a sort of a professional development opportunity like if you are looking for more leadership opportunities in order to move up, in order to get experience with that kind of thing, you should go for it, this is a great opportunity.
You might also find that the most experienced person in the organization with the particular technology has too much to do. They’re already over committed and they don’t’ want to take on running a guild. Maybe somebody who is a little bit less senior but a little bit more excited to take on the project would be a better fit.
[0:09:29.0] DA: Yeah.
[0:09:30.7] MN: It’s a combination of expertise and interest?
[0:09:33.7] WJ: Yeah, I mean, they need to be passionate about it because that’s how you get other people excited about participating. If you don’t get people excited about participating then that guild is not going to go anywhere.
[0:09:45.2] DA: Yeah, it does kind of have to be self-organizing to a degree, like it kind of lives and dies based upon like the interest and passion that people have.
I think it would be hard to have like a mandatory guild meeting, at least you could do it but maybe that’s an anti-pattern.
[0:10:03.6] MN: It sounds like one, yeah. Because you don’t want to force, and do anything that they joined out of interest, right? Like you must join this meeting or you're not a part of it, that kind of close people off from doing it.
[0:10:16.3] DA: Yeah, we’re in a floor to go the static typing group. The flow static typing groove.
[0:10:22.7] WJ: Yeah, it’s the law of two feet, right?
[0:10:24.8] DA: Yeah.
[0:10:25.8] MN: Use your two feet to walk out whenever you want.
[0:10:28.9] DA: Yeah.
[0:10:29.3] WJ: See, that’s how you vote, we vote on why guilds matter by what you show up to.
[0:10:33.9] MN: Yup, and organically, if not a lot of people show up to these guild meetings then they dissolve and then new ones emerge from the interest of individuals.
I work at a product company and I want to start a React guild. I tell everyone, hey, join the Slack channel when we get to talk about react patterns, how we can make our codebase better. About 12 people in the guild I guess, I imagine.
What are some of the challenges of having multiple guilds in an organization? Once we have, we now know how – what it means, what to do, how individuals can start creating guilds in their organization, but what are the challenges?
[0:11:15.4] DA: I guess like, one challenge might be like discovery, surfacing all of the different options that are available for guilds and where the meaningful conversations are happening. Especially with Slack, it’s like really easy for channels to get lost in the shuffle.
[0:11:30.5] MN: Right.
[0:11:31.2] DA: It’s good to like maybe add a prefix to it if the intention is that its’ going to be a guild channel where you’re going to have important discussions about things like that then maybe get a prefix on there.
I guess also be wondering like, is it just a Slack channel? Because you could just have a slack channel for React, it doesn’t need to be a guild. If you want to have like a larger organization like I don’t know, like having like a lunch meeting where you like get some pizza and talk about React and whatever else like maybe that is something a little bit more.
[0:12:03.6] WJ: So what are some of the challenges around having multiple guilds within your organization?
[0:12:08.7] MN: I mean one thing that I hear from the both of you is that there can be multiple guilds that are all interesting, that I may want to join and me as an individual may not be able to contribute a lot of useful information or thoughts on these particular guilds, which will cause me to not be able to contribute to any of them. Because I want to be in all of them, I can’t contribute to any of them because of the workload of being in the guild and personal work that I would have to finish, for example.
I just feel like the idea of talking about, “Oh this is a React one and a front end one and like a static typing one and a Java one,” and I feel like I would join all of them just because I want to be a part of the organization moving forward in these languages but I feel like the fact that I am participating in all of them may be really difficult for me to contribute to any of them because if it is more than just a Slack channel where we have to meet up and do meetings and talk discussions about certain frameworks that we need to use might take up a lot of time, overall.
[0:13:12.3] DA: Right, you’d probably like to be able to contribute to thoughts and opinions, strong opinions in the community and you may not be able to have opinion for all those things.
[0:13:23.7] WJ: Yeah, I think you just have to limit the number of guilds that you join like I think a lot of this comes down to the size of the organization that you work at. If you are on a five person team, you don’t need guilds.
[0:13:33.0] MN: Right.
[0:13:33.7] WJ: It’s just you’re in the one guild that there is.
[0:13:35.7] DA: You just go get lunch.
[0:13:37.7] MN: Yeah, exactly.
[0:13:39.0] DA: Yeah that’s a good point too like when I’ve heard about some pitfalls that people have had, organizations that had like trying to do guilds it’s because they saw something about guilds at this really large company and they’re like, “Oh well let’s definitely do that. Let’s have a guild and a chapter and a tribe and a squad,” and all these other things directly from Spotify or another organization like that.
But you are not Spotify. You’re five people or maybe you’re 10 people or 20 people but whoever is going to work for your organization is going to be different than that like you should start small and iterate and find where that lands you.
[0:14:23.9] WJ: Yeah and if you are at a company that is big enough to house many different guilds then you are probably used to the notion that you are going to have an specialize more because that’s what happens at bigger companies.
[0:14:35.0] DA: That’s true, yeah.
[0:14:36.8] WJ: So you know, you’d pick just the Redux or whatever is the guild that you end up choosing and then you just participate very judiciously in that one.
[0:14:46.3] MN: So pick one, see if you can carry the workload on that one guild and contribute as much as possible to that one and if your workload allows you to join another one then you can join the next one on your list where you can continue to do that and push the company forward in whatever guild you choose to join.
[0:15:09.5] DA: Sure, yeah that makes sense.
[0:15:11.4] WJ: What is this tribes thing that you speak of?
[0:15:14.0] MN: So Spotify has, I think we discussed the idea of the Spotify pattern, that has squads, chapters, guilds and tribes and tribes are just huge groups of individuals. As you mentioned before, if your team is a team of five, a team of 20, don’t even think about building tribes. A tribe is pretty much an entire group of individuals, massive teams that work for a huge general section.
So if you have your front end engineers or your front end folks that includes all your product managers. Your product owners, that dealt with customer facing applications, to you back into your QA, to your infrastructure, dev ops, all of that. And then you have these huge chunks of individuals with back end and you have admin, the admin pages like that kind of stuff.
So a tribe is like a huge group of people that is kind of – and it’s very general to –
[0:16:15.4] WJ: To be like, “You guys run this product, that’s a whole tribe. We offer this separate product with an entirely different stack, that’s a separate tribe.”
[0:16:24.4] DA: And your squad might be managing a service within that particular product.
[0:16:29.3] MN: Right, so from going from smallest to largest, the squad is a group of people who are working on a particular feature. It can be two engineers, your QA person, product manager who reports to a product owner. Just say by example, cross functional. A chapter is a group of the same individuals so all the QA engineers, all the frontend developers, all the backend developers, full stack developers are in their own chapter.
[0:16:55.0] DA: Where you may have one person on that chapter managing them and being responsible for their professional development.
[0:17:03.4] MN: Guilds are the things that we’ve discussed just now which is a group of individuals who have a particular interest in something. So as a front end engineer you may also be interested in moving good patterns of Graph QL into your organization. So whoever it is that’s interested in Graph QL will join the guild and if they have any interesting topics or questions about Graph QL, they can bring that up to the guild. And a tribe is like a huge general group of individuals that move entire parts of the organization in that particular direction.
[0:17:42.0] DA: Cool, yeah. I think that you paint a pretty good picture, with words.
[0:17:45.9] MN: I really tried. We are going to see if we can put those notes, the website where I got all of these in the show notes because I think it is really interesting for individuals who work in teams to better organize to move the organization forward when it comes to things that they are interested in because I think that’s really cool. To be able to join a particular guild where the point of that is to move forward in the very thing that you are interested.
[0:18:14.0] WJ: Yeah, I think there’s a lot of times when in organizations you have a lot of desperate groups that are interested in adapting a new technology like Elixir or Rust and because they’re fragmented it’s difficult to keep momentum. So this can be a solution to that problem.
[0:18:29.4] DA: Yeah and I also like the general idea from that picture of painting the Spotify organization where like they are trying to make smaller rooms for people to interact in like you don’t want to have this ginormous thing and obviously that exists as a tribe or your whole company but the smaller you make the group of people, the easier it is to have easy communication among that group. And people are on the same page.
[0:18:59.5] WJ: And your company may be doing this already. It may just not have a name yet. So adding this vocabulary might make it easier to reason about.
[0:19:09.9] DA: Yeah or you can walk their own cool name.
[0:19:12.1] MN: If you’ve got any cool interesting guild teams.
[0:19:14.3] WJ: Battalions.
[0:19:14.9] MN: Yeah.
[0:19:16.7] DA: Battalions.
[0:19:17.2] MN: Battalion Guild, yeah. If you’ve got any cool interesting guild names, feel free to hit us up at Radio Free Rabbit. I would be interested in knowing what are some of the guild names that are out in the wild. So that’s pretty cool, maybe you can introduce that into our –
[0:19:30.2] DA: Yeah, it’s like a different animal names, different groups of animals like a murder of crows.
[0:19:36.3] MN: That sound pretty dope, I’m not going to lie.
Yeah that was a pretty insightful conversations on guild and very interested to see how other organizations collaborate and use this method to push their organization forward to using best practices in whatever guild they join.
[0:19:55.0] WJ: So does anybody have any teach and learns?
[0:19:57.4] MN: Yeah, I have one. For the past couple of weeks now I’ve been actually trying to tackle one or my other New Year’s Resolution which is to learn –
[0:20:08.9] WJ: Shit.
[0:20:09.6] MN: Yeah man, it’s happening, working on Docker. I’ve been coding – not coding but I have been using Docker and this is going to be elaborate. I’ll be as fast as possible. So I have a Window desktop in my house. You can boo me now.
So I want to be able to program in the Windows machine but programming Windows is horrible, it is so hard. It’s really difficult and I read a blog post recently where an individual uses Docker to create an Ubuntu image and then shares the folder directory.
From Windows to this Ubuntu image that has Git installed in the Ubuntu image, you open a power shell and then you can actually do all your Git commands in the Docker container so then you have a Linux machine that loads all your code and you’ll be able to file share to your Windows so then you could open a VS code and continue programming.
So it’s not that difficult. I find it to be very useful for me to do any one offs that I need to do for my other projects and not have to get a Mac to do that. Trying to reuse my Windows machine, that’s all I am trying to do.
[0:21:17.0] WJ: Sweet.
[0:21:17.5] DA: Nice.
[0:21:17.9] WJ: Windows, not just for gaming.
[0:21:19.7] MN: Not just for World of Warcraft.
[0:21:21.6] DA: Yeah, not just for Steam. Not just for your other guilds.
[0:21:24.8] MN: Yeah, exactly. That’s what I am really trying to do and just trying to get well versed in Dockers and that I wanted to work on and that’s the approach I am trying to take.
[0:21:34.0] DA: Awesome.
[0:21:34.7] MN: Let’s keep the conversation going on Twitter. Follow us now @radiofreerabbit. Like what you hear? Give us a five star review. It helps developers just like you find their way into The Rabbit Hole and never miss an episode, subscribe now however you listen to your favorite podcasts.
On behalf of our producer extraordinaire, William Jeffries and my amazing co-host, Dave Anderson and me, your host, Michael Nunez, thanks for listening to The Rabbit Hole.
Links and Resources: