JESSICA: I was hoping to get a chance to re-watch your lightning talk that I just loved, on WindyCityRails.
SCOTT: Is there a recording of that on the internet?
JESSICA: Yeah, totally. It’s on the WindyCityRails site.
SCOTT: Oh, well I’ll have to not look at that.
[This episode is sponsored by Hired.com. Every week on Hired, they run an auction where over a thousand tech companies in San Francisco, New York, and L.A. bid on Ruby developers, providing them with salary and equity upfront. The average Ruby developer gets an average of 5 to 15 introductory offers and an average salary offer of $130,000 a year. Users can either accept an offer and go right into interviewing with the company or deny them without any continuing obligations. It’s totally free for users. And when you’re hired, they also give you a $2,000 signing bonus as a thank you for using them. But if you use the Ruby Rogues link, you’ll get a $4,000 bonus instead. Finally, if you’re not looking for a job and know someone who is, you can refer them to Hired and get a $1,337 bonus if they accept a job. Go sign up at Hired.com/RubyRogues.]
[This episode is sponsored by Codeship.com. Don’t you wish you could simply deploy your code every time your tests pass? Wouldn’t it be nice if it were tied into a nice continuous integration system? That’s Codeship. They run your code. If all your tests pass, they deploy your code automatically. For fuss-free continuous delivery, check them out at Codeship.com, continuous delivery made simple.]
[This episode is sponsored by Rackspace. Are you looking for a place to host your latest creation? Want terrific support, high performance all backed by the largest open source cloud? What if you could try it for free? Try out Rackspace at RubyRogues.com/Rackspace and get a $300 credit over six months. That’s $50 per month at RubyRogues.com/Rackspace.]
[Snap is a hosted CI and continuous delivery that is simple and intuitive. Snap’s deployment pipelines deliver fast feedback and can push healthy builds to multiple environments automatically or on demand. Snap integrates deeply with GitHub and has great support for different languages, data stores, and testing frameworks. Snap deploys your application to cloud services like Heroku, Digital Ocean, AWS, and many more. Try Snap for free. Sign up at SnapCI.com/RubyRogues.]
JESSICA: Hello and welcome to Ruby Rogues number 198, about exporting the happiness of the Ruby community to the rest of the world. Today we have me, Jessica Kerr, and Coraline Ada Ehmke.
JESSICA: And special guest, Scott Feinberg.
JESSICA: And Mark Bates.
JESSICA: So Mark, tell us about yourself.
MARK: So, my name is Mark Bates and I live in Boston. And I’m a co-organizer of the BostonRB user group. I’ve been doing Ruby since 2005. Before that, I was doing Java. I’ve also been doing a lot of Go. I run a weekly Golang screencast site called MetaCasts.tv. So, I’m in a lot of different communities. And I’m also a co-organizer of Happiness Conf with Scott where we’re trying to export the values and the things that make us happy as Ruby developers to other languages. And hopefully, pick up some new things to make us happy along the way. And we obviously want to bring everybody else in for that ride as well. And that’s me.
JESSICA: Sweet. Scott, who are you?
SCOTT: My name is Scott Feinberg. I live in Denver, Colorado. I work for a company called WePay as their developer evangelist, which means I travel around and go to conferences and meetups. It means I get to give lots more hugs than everyone else does. I’ve been doing Ruby for I guess over four years now. As Mark said, we’re organizing Happiness Conf which we hope to bring happiness to a lot of developers in the greater Boston area. That’s me, I guess.
JESSICA: Welcome and thank you for joining us. Scott, I saw a lightning talk by you at WindyCityRails last yeah where you talked about Ruby values. And I believe you talked about bringing them to the rest of the world. I was really excited about that. Can you tell me more about that mission?
SCOTT: Sure. So, basically the concept is that we in Ruby have all these great things that we take for granted. But unfortunately, or fortunately, most of us will not always write Ruby. And we might go and do jobs doing other things. We might decide that we want to write Python. Maybe we go and work at a place that does PHP. Who knows? [Chuckles] And right now, in most of those other communities, they don’t have the same, I want to call them standards, that we do, especially with testing, how we learn things, our value of the community. There are just things that other communities lack.
So, that is something that keeps us as Rubyists saying, “Oh, well we only want to write Ruby, because our community is so great,” because the things that we do in Ruby are so great, which keeps us from working on products that maybe we really want to work on. So, the concept is how do we take things that we do and the things that we really like and start letting other communities know that those things are great? And also, taking the things that other communities do that we might not do and bringing those in.
CORALINE: So, what are some of those community values that we want to share? You touched on a couple of them there. But what do you think defines the values of the Ruby community?
SCOTT: It’s a very interesting question, because our community is so spread out. And we value a lot of different things. But one of the major things is we’re one of the only communities really that really values testing. And that’s something that when you go and look at other people’s codebases outside of Ruby, there is much less of a chance that you’ll find a really thorough test suite.
But also we don’t, as Rubyists, we have this idea that programming should be fun, and that the type of work that we do should be enjoyable. And that’s something that other communities oftentimes don’t value. And engineering isn’t in the foreground as something that should be valued, as something that the engineer should be having fun doing. That’s important. We’re one of the only communities that are like, “Oh, pairing is a thing that we should do.” And while I’ve often said that people with real jobs for real places don’t pair all the time, that’s something that you’ll only find at certain shops. But still, it’s something that is unheard of in other communities. They never pair. They never show off their code. They never actually get that real-time feedback.
We’re also the only community that does any sort of… we certainly have the largest regional conferences, meetups. We’re the only community that really does a really nice job of making sure that we actually interact with other people that aren’t necessarily in our company. It gives us a chance to learn from other people, a chance to find out what other people are doing. And you can find a Ruby meetup anywhere. You can pretty much pick any city in the US and you can find a meetup to go to. In other language groups, other technology groups, they can be a lot harder to find.
SCOTT: So, you mentioned that it’s your second favorite. Which is your favorite?
JESSICA: [Laughs] My favorite user group is definitely Lambda Lounge, which is the user group incarnation of the Strange Loop Conference. So, it’s functional and dynamic languages hypothetically. But really, it’s polyglot. It’s whatever people want to speak on. Today we have a meeting and it’s going to be, Fogus’s 10 papers that every computer scientist should read twice, which is actually 11 papers.
JESSICA: Because he’s a real computer scientist. And yeah, 10 different people will speak on those. So, it’s very, very mixed. And that’s a combination of community that isn’t dependent on Ruby, which maybe is kind of an example of how Ruby values can be decoupled from the language.
SCOTT: Yeah. I think that that group sounds awesome. There are other examples in San Francisco of groups that have, they’re mostly corporate-backed, but Netflix does a great open source group where they bring in people from a variety of languages to come in and speak. And they always have a packed house. And it’s not specific to… they’ll bring people who are writing Ruby, Python, whatever project and bring them in to speak. And it’s always a really good turnout. The types of language groups that, while they exist, they’re often not as frequent. Pretty much every Ruby group that I’ve ever been to, afterwards you go out to the bar and you hang out. Most of the other language groups that I’ve been to, including PHP, Java, it’s like you go to the meetup. And then the meetup’s over and everyone leaves and goes home.
JESSICA: My mom used to say, you could tell how good a church is by how slowly the parking lot clears after services.
SCOTT: [Chuckles] That’s perfect, because you have the coffee hour afterwards. And people mill around and make friends. Yeah, exactly. It’s like how, people how to meetups not necessarily to learn things. It’s oftentimes just, I want to hang out with my friends. So…
CORALINE: You talked about polyglot conferences. How good, how effective do you think those are at allowing us to absorb values from other communities and how to communicate those to other people?
SCOTT: So, Avdi’s talked about this a little bit. He spoke at Midwest.io this year. So, he was there presenting on, it was something Ruby-specific. I don’t remember the talk exactly. But it was a great chance to go and see what people who weren’t doing Ruby were up to. So, you got to see these projects from people doing Scala, people doing Python. There was even some really good .NET stuff on developer tools. And they had some new ones that were coming out. So, I think it’s a matter of the willingness to go and just go and sit in on a talk that you might not actually know. And you might not actually know what’s going on. And taking away what you can.
JESSICA: I was at that conferences and it was a fantastic conference. And yeah, I spoke on Scala and other people spoke on Clojure. And Avdi actually did a web server in Bash. [Laughs] Which was a big [inaudible].
SCOTT: Oh, yeah. There’s actually a project on GitHub which is, someone actually wrote a Bash web server. And you can actually go and grab it and run it. It was from two years ago. It was all over Hacker News. But it was really good and it gave people an example of just something weird that you could try out.
CORALINE: I’ve seen polyglot conferences work really well in terms of that cross-pollination. Great Wide Open is a great example. It’s a new conference that popped up last year. But I went to CodeMash in January. And I noticed that the different language groups tended to be a little cliquish. And I actually overheard a group of .NET people discussing the disproportionate number of hug that are shared at Ruby conferences. And I thought that was pretty funny.
JESSICA: [Laughs] Totally. So, CodeMash was my first conference. And it is very polyglot. There are different languages, communities, mashed together. And that’s when I decided I wanted to speak at Ruby conferences because Ruby developers are the most awesome.
MARK: Yeah, I’ve noticed the same thing. I’ve been to a bunch of conferences. And then number of hugs at Ruby conferences, it’s just such a big family. And that’s one of the things I love about Ruby conferences. You go to them and there’s just, everybody’s just hugging. Everybody’s so excited to see each other. And you’re never without a dinner date or a lunch date because there are so many people you’re trying to connect with and see. And I just, when I go to other conferences I just don’t feel that same kind of love and happening amongst the attendees. And that’s one of the things I think Scott and I would love to see brought to other places. We want to make other languages like families, like the Ruby family is.
SCOTT: We want more hugs, basically.
MARK: We want more hugs.
JESSICA: [Chuckles] Thank you, Mark. But I have a question. You’ve remarked that the Ruby conferences, yes, when you go, when I go, when any of us go and we know a bunch of Rubyists and we’re seeing people we’ve seen before and we’re all happy to see each other, that’s all well and good for us. But what about the people who’ve never been to a Ruby conference?
MARK: That’s a great point. So, I’ve got this, reputation would be the word, for huge, huge lunches and dinners. Ernie Miller said I’m like the Ruby Jesus, because I can’t have lunch with less than 12 other people, which [chuckles] I’ll take that as you will. It’s a thing I have. I have so many people I want to see. But I always make a point of pulling in people who I’ve just met.
And I’ve talked about this in other talks. When I go in in the morning, I see people and I’ll make a habit of going up to somebody at breakfast, a table at breakfast, whatever, people I don’t know, and just introducing myself and asking them. Who are you? What do you do? Why are you here? Is this your first Ruby conf or whatever? And getting to know those people, because those are the new people, those are the up and coming people who are going to be the next Chad Fowler, or Ezra Z., or whatever, and it’s nice to get to know those people. And those people are very excited to get befriended a little bit. It can be very daunting to go to a new conference.
And so, by reaching out, I make a new friend. They make a new friend. I make another connection, another piece of my network falls into place. And then I make sure and say, “Hey, you know, we’re going to lunch,” or, “Hey, we’re going to go have some drinks tonight. Why don’t you come along?” and introduce them to other people. And it’s just a great way to keep that community growing and thriving and intermixing. And it’s really fun. And sometimes you see the look on people’s faces when they’re out to lunch with all these big name speakers or keynoters, whatever. And they’re like, “This is my first Ruby conf. What am I doing here?” It’s nice to see that. And it’s nice to see them getting that exposure and making that family bigger. So, it’s up to every one of us to go and find those new people and bring them into the family.
SCOTT: There’s the other side of it, which is you have these generations. So, over half the people that went to RubyConf this year were new. It was their first Ruby conference that they’d ever been to. So, when you throw all these new people in one place and they see other people talking to each other and making friends, they’ll often go out and find friends themselves. And this is something that I saw a lot at RubyConf this year, was you had a lot of people who were pretty new that were going and had just met there at RubyConf. And they were going to talks together. They were making friends, and in a way that I would like to think that the rest of us set an example for. So, even if we weren’t necessarily being the best at going out and meeting these people which we should be doing, we’re still setting an example of, you’re at a Ruby conference. Everyone is your friend. You might as well just go up and talk to them.
CORALINE: You talked about new developers and how many new developers entering the field. I see, here in Chicago at least, we have half a dozen different bootcamps. What role do you think bootcamps have in communicating and emphasizing the community values that we share? And are we in danger of watering down those values just from the sheer number of new people coming in?
MARK: That’s a great question. I think, every time you bring in sheer numbers, it does hurt the community a little bit, when it’s just a big flood of new people coming in. because it’s hard to bring all those people into the fold at once. I know in Boston we have a couple. One of them is Launch Academy which is run by one of my fellow BostonRB co-organizers, Dan Picket. And he does a great job of trying to get them to be a part of the community. He makes it mandatory for them to attend BostonRB. And I always joked that the Launchers travel in swarms. [Laughs] They’re just always together. But it’s important for them to become part of the community.
And it’s up to these bootcamps to make that a requirement of what they’re doing. They can’t just teach them in isolation. They have to bring them into the community. They have to make them part of the fold. So, when you see something like Launch Academy doing that, I think that’s a great thing, because those people are active on the mailing list. And they’re active at the meetings and the project nights and all those sorts of things. So, it’s up to the bootcamps to make that happen.
And I can say that there’s a couple of other bootcamps in Boston where I don’t see that level of interaction. Those people aren’t at the meetups and they’re not active on the mailing list. They’ll apply to the mailing list but then they never post. And I don’t think those people are going to get the same kind of level of education and the same feeling and the same jobs, the good jobs that the people who are active in the community are going to get.
JESSICA: I would go farther and say that those new people are the community. Those flocks, those peer groups, they are the next Ruby community, because Chad Fowler’s moved on. He’s not a Ruby person anymore. And as Scott has observed, a lot of the older Rubyists who were very involved in the community, “Oh, we’ve moved on to other communities.” It is these new people who become the community. I don’t know. You used the word hurt the community for so many people to come in. I would use the word change, or evolve.
MARK: Yeah, I don’t know if I… Did I say hurt?
MARK: That might not have been the right choice. I just meant, whenever you flood anything with a ton of things, it’s difficult, I think is probably a better word. It’s difficult to assimilate that many people flooding in at the same time. And it’s difficult for them and it’s difficult for existing people. I want everybody who comes in to become part of the community. And I want everybody to get a hug. And it’s difficult to hug thousands of people every 10 weeks.
SCOTT: It’s a noble goal, though.
JESSICA: That’s a great point.
MARK: I’ve tried. And I’ve had many a restraining order because of it.
MARK: But it is. It’s difficult. And there’s a lot of new blood in the community. And like you said, yeah a lot of big Rubyists have moved on. I know, I’ve said I’ve been in the Ruby community since 2005. And I’ve been doing a lot of Go over the past year. And a lot of the people I used to hug at RubyConf are now… I’m now hugging at GopherCon. Because [chuckles] they’re over there now, which is another topic we could talk about, people moving to other languages. But yeah, when I was at RubyConf, there was a lot less people I knew to give hugs to right away and a lot of new people I had to meet to give hugs to. So, it’s interesting.
And the community is changing and it is evolving and it is growing. And it’s a challenge for the older generation to make sure the new generation keeps those same values and doesn’t just get watered down and become, a Java type community. We need to make sure that young community has those values and they pass it onto the community after them as well.
JESSICA: I think you expressed it well when you said you want to hug all of them, where by hug we are making a metaphor to welcome. Because if you don’t like hugging that is totally fine.
MARK: Correct. [Chuckles]
SCOTT: Though you might want to tell people that, otherwise you’re going to get a lot of hugs.
MARK: If people want to hug me, they are certainly welcome to.
CORALINE: I always ask first. I think that’s a good approach.
MARK: Yeah, [laughs] definitely.
JESSICA: Yeah, it’s better to offer hugs than attack with hugs. This is a lesson I’ve had to learn.
MARK: Yes. I’m not trying to harass people with my hugs. But everybody has an open invitation to hug me if you want to.
CORALINE: So, we’ve talked about some of the values of the Ruby community that we find useful and valuable and essential. I know that last year, well the Python community was definitely ahead of the Ruby community in terms of outreach and diversity, inclusivity, putting codes of conducts in place for conferences. What other communities have values that you think we as a Ruby community should adopt?
SCOTT: I personally don’t know yet. I think it’s a matter of, I think that we’ve done a good job in the Ruby community as far as diversity goes. While Python yes, was the first one to do it, I feel like now with Ruby there’s not a Ruby conference now that would put out their website without putting a code of conduct on it, without actually thinking about those things. And I’ve been talking to a lot of organizers. And also with Mark and I organizing Happiness Conf, a lot of what we do is reaching out to these smaller groups.
In Boston we have multiple women who code groups. There’s PyLadies. There’s RailsBridge. There’s Rails Girls. And reaching out to all of these groups and making sure that they’re going to participate, submit to CFPs, sending them discount codes to make sure that it’s easy for them to go, and making sure that the community that actually shows up at these things is a pretty diverse group, because I think that’s what makes for A, a good conference, and B, for a good community to have a lot of those different viewpoints.
CORALINE: I totally agree with the sentiment. I do want to point out though that we have a lot of work left to do in that realm, especially reaching out to people of color and from other underrepresented populations. So, I’m a little hesitant to say our job there is done.
JESSICA: As in, I would never say that.
MARK: Our job is far from done.
SCOTT: Yeah, yeah. We’re certainly not done. But compared to, there was that conference in Europe that didn’t put out a code of conduct and then they put one out that was like, “Well, we’ve never seen any problems before. But if it does happen, be nice to people,” or something. And they didn’t really think it through. I think we’re at least on the right track. And we continue to get better at it. But it’s not a problem that will ever be necessarily solved. I think AlterConf right now is doing a great job of really setting the standard of what we can strive towards.
JESSICA: Can you tell us a bit about AlterConf?
SCOTT: So, I’ve never actually been to one. But from talking to people that have gone, it’s an opportunity for people from less represented groups, so people of color, people of different backgrounds both social and economic, to come and talk about their experiences in the community. I know someone that spoke at AlterConf in I believe in New York City and now is keynoting Open Source Bridge in Portland. So, it’s giving people, who haven’t gotten the opportunity to have their voices heard, it’s giving them a platform. And it’s always a really interesting conversation that comes out of it.
CORALINE: That’s, AlterConf I believe is organized by Ashe Dryden. And she’s done a ton of work in terms of diversity and reaching out to other communities. And she’s really, she’s living those values through organizing AlterConf.
JESSICA: And AlterConf I hear actually pays its speakers, which is another way. We talk about giving people of diverse groups an opportunity. But some of those underrepresented groups are underrepresented because they don’t have the opportunity to pay their way to go to conferences in order to speak. Speaking of which, Scott or Mark, have you ever been to PyCon?
MARK: I can’t say I have, no.
SCOTT: I haven’t either.
JESSICA: Hmm. It’s not a bad idea. I went to PyCon Canada because they invited me to speak and paid my way out there, and generally went out of their way. I think there were half women speakers at that PyCon. It was really awesome. And they are ahead of Ruby on diversity, by quite a bit. It was a much more diverse conference than the Ruby conferences I’ve been to in terms of gender and people of color. And there’s a lot we still have to learn from other communities, as well as all the stuff that we have to bring them.
SCOTT: Totally. I think we have certainly seen a lot of improvement. I know when I first started going to Ruby conferences they were basically just a bunch of white males getting up to speak. And now, if a Ruby conference has more than 50% white males, it’s surprising to me. I feel like most of the conferences that I go to, it’s a lot more diverse than it used to be. But yeah, there’s still a lot of ways to get better and a lot for us to learn.
CORALINE: So, what did… I know you’re both, are you both organizers for Happiness Conf?
SCOTT: Yes, we are.
CORALINE: What sort of outreach did you do to make sure that there was a diverse group of speakers for Happiness Conf?
SCOTT: So, I personally reached out to every single group that catered to any sort of minority developers in the Boston and New York City areas. So, they were women’s groups. There was Black Girls Code. There was Rails Girls, RailsBridge, PyLadies, which I mentioned before, and Women Who Code. And also to the code schools, and making sure that juniors were going to be able to get to go and actually hear what’s going on. I also personally reached out to a lot of speakers who I heard speak before, just asking, “Hey, we’d love to have you speak and love to hear what you have to say,” just to get a diverse set into our CFP.
JESSICA: How did that work out?
SCOTT: So, we hadn’t actually looked at the names yet for who submitted. But of our invited speakers, I think we’ve done a pretty good job of having a pretty diverse set of speakers. And we hope to continue that. Of our invited speakers so far, I don’t have it in front of me, but I think we’re at least half women. And I think there are five so far. So, I think it’s 3-2. But I think we’ve done a pretty good job so far.
JESSICA: Sweet. So, Happiness Conf. What is it? What’s it about?
SCOTT: Happiness Conf came out of the fact that, first was Boston didn’t have a conference. We didn’t have a RubyConf. We didn’t have really many community-organized conferences. And I felt this was a shame, because Boston in my opinion is a top tier tech city. Yet there’s not that many tech conferences that actually go on there. And when there are, they’re normally in Microsoft space and not in any sort of interesting venue. No offense, Microsoft. But it was a matter of back when I was going to college in Boston we actually had a lot of cool conferences. We had BarCamps. We had a lot of cool hackathons. And in the past few years those haven’t really existed.
So, at first the thought was, “Okay, so what if we just did a Ruby conference?” But after talking to Mark, he convinced me that another regional Ruby conference wasn’t the answer. So we decided, well what do we care about? What do we want to hear about? And we decided that it’d be really interesting to hear from a polyglot set of people, how they manage happiness in their teams. How to, via engineering process, via technology, via anything, do they promote happiness in the work that they do? So, Happiness Conf was born. And it’ll be at the Somerville Theatre outside of Boston, April 29th to 30th.
CORALINE: We did an episode a little while back on developer happiness. I personally lead a developer happiness team. We have Happiness Conf. Where do you think this… it feels like a sudden emphasis on developer happiness. Where do you think that’s coming from?
SCOTT: I think Ruby has a lot to do with it. Ruby is the language that we often talk about is optimized for developer happiness. It’s made to make the act of programming enjoyable through the language. But I think there’s a lot of emphasis on it now because never… every week developers get more and more scarce. And so, it puts us in a better position of power all the time, because it is harder to hire us. It’s harder to retain us. It’s harder to keep us at jobs. So, companies are incentivized to make us happy and make us want to be there. And there’s always the talk of Silicon Valley, of oh, free lunches and nap pods and Nerf guns and things like that.
While having a ping-pong table is great, actually having a process where the act of your actual work is enjoyable and is fun and is a good experience, that’s the way to actually keep people. Because I can go and start a startup tomorrow that gives out three meals per day and everyone gets a kitten. But it’s harder for…
JESSICA: [Laughs] Kitten.
SCOTT: [Chuckles] I would work at a company that offered that.
SCOTT: But the actual act of creating an engineering workflow that is enjoyable and is fun to be on that team and actually do the work, that’s a lot harder. And it’s something that we have to constantly focus on. And it’s one reason, Coraline, [I’m] really excited to have you speak, because that’s actually your job. You actually get paid every day to build those processes.
CORALINE: Hashtag blessed, yes. I realize I probably have the best job in the world right now.
CORALINE: You talked about ping-pong and kittens. I like the kitten idea. But it seems to me, it strikes me that a lot of the trappings of startup culture are bleeding into corporate culture now as well. But they’re not really culture. These are proxies for culture. How do we… ping-pong is a game. It’s not a way of life. It’s not an expression of values. How do we impose or find a way to live our community values when maybe we’re in a corporate setting or we’re in a startup setting where most of these things are basically designed to keep us at work as long as possible?
MARK: I think that’s actually, you say vote with your dollar when you’re talking about consumer goods. But we can vote with our feet. Developers are in a really unique position, particularly mid-senior level developers right now (because obviously there are a ton of junior developers through the bootcamps) to say, “Hey, you know what? There are tons of jobs out there.” I know I get recruiter spam constantly. They’re there. Those jobs are there.
And we can take that back to our bosses, if you have a boss. I don’t. But if you have a boss, you can take that back to your boss and say, “Look, make us happy or you’re going to lose your team. Your team’s going to go someplace where they do let you maybe work remotely, or use the operating system you want to use to develop in, or the tools you want to use,” and let you enjoy your job, use the languages you want to use. We can do that. We’ve got the power right now. You’ve got those, the developer scarcity. We’re, I’m not going to use the term resource [chuckles] or commodity.
CORALINE: Thank you.
MARK: I hate those.
MARK: [Chuckles] I hate those terms. But we are in demand. And we do have a unique position to change our work environments for the better by exercising our ability to move on to a job in an environment where we can have those things, where they do care about making us happy. And it doesn’t… it’s funny. Developers don’t actually ask for a lot to be happy. Things like ping-pong tables and beer on Friday, that’s great. We’re not going to say no to those things. But we really just want like, “Give me a mechanical keyboard. Let me work from home.” [Chuckles] Let me use a Mac, or whatever. We don’t actually ask for a lot to make us happy.
And I think if we can get that into the corporate culture of, “Hey, just give these guys, these people rather, the few things they want. And they’ll be happy. And they’ll code. And they’ll tell everybody what a great company you are and make hiring easier.” It’s a win for everybody. It’s a win for the developers. It’s a win for corporate to make the environments better, make it easier to hire, make it easier to retain. And retaining developers is really key and important in a market like this.
JESSICA: So basically, why focus on developer happiness? Because we can!
MARK: [Chuckles] Exactly. It’s a unique time. It’s unlike any other period I think in developer history where we finally have this upper hand of the scarcity and saying, “Hey look, we want these things.” So, the things we’re asking for aren’t outrageous. We’re not asking for insane amounts of money and insane this thing and that thing. We just want to be treated with respect and we want to be treated in a way that lets us just do our jobs and make us happy while we’re doing our jobs. And we’ll do a better job for you at the end of the day.
JESSICA: All of these things, the mechanical keyboards, the working from those, those are trappings of, “Just let us get our job done.” In the end what we want to be happy is, for me anyway and for a lot of my friends, is to be productive. These things are not in conflict.
MARK: Right. Just basically, a lot for me is just get out of my way. [Laughs] Just let me code.
MARK: Get rid of those processes, those heavyweight documentation, the waterfall, and just…
JESSICA: Give me the real information I need. Give me the connection to the users and just let us solve their problems in the best way we possibly can.
MARK: Exactly. It’s not, like I said, we’re not asking for a lot. [Chuckles] We really aren’t.
JESSICA: I just got back from that PluralSight Author Summit. And I was super impressed with all of the PluralSight company and the way they run their company. It is very much focused around employees being happy and employees being able to do their jobs and come up with ideas and improve things at their own initiative. I want more companies like that.
CORALINE: Do you think it’s possible to start companies, to change existing companies to be more like that? Or is it up to us to start those companies?
JESSICA: One thing that we talked about at the summit in a session, in an open space led by their chief culture officer, Keith, was that in hierarchical organizations, culture has to come from the top., There are exceptions of, you can have (and I’ve had this before at big companies) a really good umbrella manager. Umbrella, in the sense that when the crap rolls downhill, he’s holding up an umbrella and keeping it off of his team. And that manager can be the point of translation that keeps a beautiful culture underneath in spite of a toxic culture upward. That’s a rare thing to find. And it’s a beautiful thing if you can find it. Otherwise, man. I don’t know about changing existing companies.
CORALINE: I know I had a bad experience with that a company I worked for a couple of years ago. It was a large corporation. They were mature. They were definitely not a startup. And I got push back on pair programming. I got push back on estimates including time for testing. It was a really difficult sell. And I had to revert to statistics on how pairing increases productivity. There was no trust there for the developer. So, of course I got out of there after realizing that it was an uphill battle. But I did my best to bring those values in. But they just didn’t take.
MARK: Yeah, it’s hard. There’s a lot of inertia with existing organizations. It’s very hard to break through. And I’ve had the same experience in the past as you, trying to fight that fight and unfortunately losing. And it’s a very upsetting thing to have to walk away from that, because you want to help your fellow developers out. But eventually, it’s not worth it. The CEO’s not going to change. The organization’s not going to change. And you have to then take your own happiness into account and get out. It’s sad when that happens.
SCOTT: I think there are chances as people are able to move into roles of more influence. If you get hired as a VP of Engineering at a company, someplace where you know that you can have the influence to actually make those changes, that is awesome. And at that point, you should be able to dictate, those are the values that your team can actually have. But yeah, I think it’s really hard when you are the only one that really cares. You have to be really good at navigating essentially office politics if you want to move the needle in getting your team those sorts of freedom to do your job the way that you want to do it. And it’s hard.
And not everyone wants to do that. If you happen to find a company that you really think it’s worthwhile to make those changes, that’s awesome. But I think you really need to have the buy in, either when you come in or quickly after, to make those changes. Otherwise, people are going to become complacent.
JESSICA: I have a question. One of the benefits of our opportunity that we have now as experienced developers to push for happiness initiatives is a lot of what we’ve learned with agile. And when people have seen that there really is an increase in productivity when you let the team work as a team. This has started to be exported not just in other development communities but into the business. Have you seen examples of that?
MARK: I haven’t, but that sounds really interesting. Pair accounting? [Laughs]
SCOTT: Yeah, I guess like…
JESSICA: [Inaudible] so much about the pairing. The agile, iterative methods.
SCOTT: I took a Scrum master course at the Scrum Institute in Boston. And one thing that was talked about, how Sutherland, the guy who basically brought Scrum to the states, was teaching the class. And he talks about how his wife uses Scrum in her church. I believe she’s a Lutheran minister. But they run the church on Scrum. And I think there might even be a book about it. It was really interesting to hear how they, regardless of the fact that it wasn’t technical they were able to use those skills to run an efficient operation.
JESSICA: There’s another book, ‘The 4 Disciplines of Execution’ that’s about reforming businesses. And when I read it, it’s like, “Oh, yup. That just sounds like agile.”
SCOTT: Yeah. Agile processes can work regardless of if it’s programming or not. And I think we’re seeing it more with companies that are founded by technical founders who know about agile and they know how these processes can work. When they see how the traditional business has done things, they’re like, “Hey wait, no. There are better ways of doing this. This seems wrong.” And they can add those processes and figure out how they can actually work in the business directly.
JESSICA: There’s even a TED talk about running your family as an agile team.
CORALINE: I experimented for a little while with family standups in the morning. And it was pretty effective.
MARK: That’s really interesting, actually. I think when my kids get a little older I’m going to actually try that. That sounds actually like a really interesting take on just getting a handle on what the family’s doing that day, what they did yesterday. That’s actually kind of interesting.
CORALINE: Yeah, and what obstacles do you see in getting done what you want to get done today? What do you need from other people in the family?
MARK: Right. Well, that’s actually really, really interesting. [Chuckles]
CORALINE: I can’t take credit for that idea. It was someone on Twitter who talked about it. I don’t remember who. But yeah, it was pretty effective.
MARK: That’s actually one of the most interesting things I’ve heard in a while. [Chuckles] I like that idea.
JESSICA: Scott, you mentioned something about the Ruby diaspora. What is that?
SCOTT: That’s the term that has been thrown around a few times to talk about how Rubyists are leaving Ruby for other technology sets. So, that’s been recently Go, Scala, Java, other languages that Rubyists are moving to either because they want something more interesting, they want to try something new, or the right opportunity comes up. And those Rubyists are taking with them the values that we have. And Mark mentioned this with Go. A lot of Go developers are former or still Rubyists. I know in Boston the Golang meetup is run entirely by the same organizers that organize BostonRB. So, there’s a lot of that crossover. And it’s these people who are going to be able to directly affect how these new communities get built.
Go is still in the early days. We’re at 1.5 I think. It’s still an early community. It hasn’t really been established yet. GopherCon this year will be the second one ever. And there’ve only been a few regional Go conferences. So, it’s these people that will not only be able to establish these new communities with the same practices that Ruby does. They’ll also be able to bring things back. So, as with Ruby, you’re never really, you never really leave, because Rubyists are still a lot of your friends. So, you’re still a part of it. You can never really get away. So, as people learn things about new languages, the hope is that people will bring those back.
Mark, he ran a panel at Burlington Ruby this year on the future of the Ruby language. And Sandi Metz said something along the lines of Rubyists should be going out and trying all of these new things and then stealing their ideas and bringing them back to Ruby, which is a really interesting way to be like, “Oh, we should be trying new things because that’s how we get better.”
CORALINE: I wonder if there are debates about whether our community values are statically typed or dynamic.
MARK: I would hope they’re dynamic, to be perfectly honest. I think they need to constantly change and evolve to meet the community as it is. If we statically type them, they’re locked in and I think that’s not going to be good for anybody.
JESSICA: Then again, statically typed would be more explicit.
JESSICA: And the more explicit our values, the easier it is to pass them on to new people and to know when they’re being met.
CORALINE: I totally did not mean for that to be a debate.
JESSICA: Well, it helped.
MARK: If they were statically typed, I would only accept hugs and a handshake or a high five wouldn’t work.
JESSICA: [Laughs] As long as those all implement the welcome interface where [inaudible].
JESSICA: While we’re talking about languages that Rubyists might move on to, don’t forget Elixir. That’s the poster child of… José Valim is a Rubyist who’s gone on to create another language full of happiness. Clojure is another one.
SCOTT: Yeah. I think Elixir’s a good example. I think just because there are so many Rubyists that are interested in it. I am not familiar with any company that is using it as their main stack yet. And I don’t think that’s advised at this point. Please correct me if I’m wrong. But that’s a, while you’re in that innovator stage, that’s a great chance to really form the values you want to have. And maybe they [should] be a Ruby 2.0.
CORALINE: I think it’s pretty telling that Dave Thomas who I, as I remember had a big role in bringing Ruby to the US went on to write a book about Elixir and is really excited about that.
JESSICA: Yes. If you want to learn some new ideas, Elixir will do that. Some functional, but also the actor model. And the Erlang VM is a completely different animal. And there’s a lot of promise in it because it’s designed for the distributed concurrent systems that more and more software is moving toward. Great area to explore.
SCOTT: Definitely, definitely. I think the area that I’ve seen a lot of Rubyists move to that’s in the production stack is Go. Mark can speak to those. His screencast is on Go. It used to be Ruby and now he’s just teaching Go.
MARK: Yeah. One of the things I love about Go is actually the community, which is 50% Rubyists at this point. [Laughs] Much like the Elixir community, it’s probably 50% Rubyists. Well, I can sit here and debate the merits of the language. But that’s I think out of the purview of this show. But what I love about it is the community is there. And the community’s about sharing and it’s about helping each other out. And it’s about being welcoming and diverse. These are all things that the Ruby community has and brings to it. And the Rubyists that have gone to Go have brought that over. And that’s just a really nice thing. It’s a really nice feeling to go to GopherCon and see people hugging in the hallways, and to see people saying, “Oh, let’s do dinner. Let’s have lunch. Let’s talk about these things.” And people willing to offer up their code and share it with each other.
And a quick little story about that was back in 2008 Mike Mangino and I were tasked to write a book, an iOS cookbook for PragProg. And the book ultimately failed. The reason the book failed was we went to all, to Cocoaheads and reached out to all these iOS developers who at the time, this platform had just opened up and it was this huge gold rush. And no one was willing to share. No one was willing to offer up their recipes, because they didn’t want to give any competitive advantage away.
JESSICA: Oh, how sad.
MARK: Yeah. It was totally sad. And the book died because of it. It’s improved. That community has improved a little bit, has definitely improved a lot actually since then. People are more open now. But that to me, I was like, “Well, this is just a community I really didn’t want to be part of, if people aren’t willing to share.” It was all about the dollar signs in 2008, 2009 rather. And that was a real bummer for me. So, any other communities I go to, that’s an important feature. And to me, it is a feature. The language and the community around that language have to have sharing as a key component. And it has to be welcoming. And people want to be able to help each other out
In the Go community, just like the Ruby community, people are doing that because they want the language to succeed. And they want each other to succeed, because it makes things better for them. and that’s part of what we’re talking about at Happiness Conf, and part of what we want to see people bring to the other language they go to and then bring back again to the Ruby community.
JESSICA: So far, we’ve talked about welcoming and sharing as explicit values that we want to carry forward into any community we’re a part of. What am I missing?
MARK: Acceptance? I think. Being accepting of each other is a big part of it, too.
JESSICA: That’s true. It’s one thing to say hello and another thing to find out about how different we are and welcome that.
JESSICA: To find out about all the different ideas and different coding styles and different work styles.
MARK: Yeah. He’s like, “You’re a stupid F if you don’t like it.”
MARK: Right. [Inaudible]
MARK: And I was like, what? And he’s like, yeah. He goes, “You’re a stupid F if you don’t understand that Ember’s the way of the future and it’s the best thing out there.” And I’m like, that’s not very accepting of other people’s ideas. [Laughs]
JESSICA: Yeah. There’s an exception to the acceptance. I don’t want that guy at my [inaudible].
MARK: Right, exactly. Thankfully, he’s pulled out of the BostonRB community and just no longer really a part of it anymore. He’s now off in the Ember community and the Elixir community. And I feel bad for them [laughs] in some ways.
JESSICA: This is a question that’s come up among listeners to Ruby Rogues in fact of what does it mean to not be accepting of people who don’t behave in ways that we find accepting?
MARK: What do we do with the people who won’t accept our acceptance?
JESSICA: Right. Like, do you tolerate intolerance?
MARK: We don’t in the BostonRB community. We really don’t. We’ve got a great, great community. Our monthly meetings get, average about 150 people at the meetings. We have thousands of people on our mailing list. You have to apply to the mailing list and get approved by an admin to get on it. And we’re just as quick to throw you off the mailing list. We really enforce acceptance and tolerance of other people. And behavior otherwise just will not be accepted in our community. So, we’re accepting to a point. [Chuckles] When you stop being accepting of other people, that’s when we stop being accepting of you, I think.
CORALINE: That’s a really important point. Values are pretty useless if they’re not enforced.
MARK: Right. Yeah, you have to enforce them. And like I said, because of that, the BostonRB mailing list is probably one of the best Ruby mailing lists around. And the BostonRB meetups are probably some of the best meetups in the world. We always joke we do a mini-conference every month. We have two amazing speakers speak to 150, sometimes 200 people [chuckles] every month. And that’s a big meetup. And we can only do that because the community enforces that, those values, and accepts those values, and is very open and warm and loving and excited about what we do.
CORALINE: Jessica, you mentioned, you were trying to complete the list of values. And a couple of things sprung to mind that I think are pretty ingrained into the culture. One is a culture of mentoring. And another is acceptance of people who don’t necessarily have, who have different backgrounds and skillsets and are not necessarily coming from a CS background.
JESSICA: That is a great one. That mentoring is so important. Because it’s one thing to say, “Oh, you’re in the bootcamp. Thank you for coming to our meeting and swelling our numbers. Now here, espouse our values!”
JESSICA: It’s another thing to bring those people who are super enthusiastic about becoming a developer. But when we talk about there’s lots of jobs out there, we are talking about mid-senior level. And when we can bring the new developers up to mid and senior level that usually happens at a person to person scale. And the more of that we can do, the stronger our community and the stronger the language.
MARK: Completely agree. So, one of the things we do at BostonRB is we have a thing called project night which we run every month, which unfortunately due to space we have to cap at about 50 or 60 people. And it’s a real nice mix of senior Rubyists and brand new Rubyists. We’ll have an install station where somebody helps people just set up, install Ruby on their machines. We do a Genius Bar, don’t tell Apple, where…
MARK: We have two or three senior developers sitting at an island in the kitchen of thoughtbot. And we’re there to just answer you most basic of Ruby questions. And that’s, people really love that. And we have… at the beginning we say, “Who here is willing to help out?” And those senior people raise their hands. We give them nametags. And then they mill about the rest of the audience. And the people can just pull them and say, “Excuse me. Can you help me with this little problem?” So, what you end up seeing is just people pairing, juniors and seniors pairing together over a couple of hours and a couple of beers, and really helping each other out. And that’s an amazing thing. And we love doing it. And love to expand it if we could, if we only had the space.
But it’s important that other user groups do similar things. Really try to make those junior people feel welcome and not just help swell our numbers for the main meeting. That’s not what it’s about. We want to bring these people on board and make them feel part of the community.
SCOTT: Both RubyConf and RailsConf do this. They provide [inaudible]. It’s if you come as a scholar, they match you up with a volunteer that makes sure that you know what’s going on. They introduce you to people, talk to you about the talks and things like that. And of everyone that I’ve known that has been a volunteer for that, and the best part is every year there are way more volunteers than there are scholars, every single one has said that they keep in touch with their mentee, with their scholar. And they continue to be a resource for them long after the conference is done.
I know at least the gSchool in Denver actually goes out to the community and asks for local people to mentor bootcampers. And they come in once a week for an hour and answer any questions that they have. Maybe they pair on something. It’s a pretty open thing depending on what the mentee needs and wants. But it’s not instructors. It’s actually just people from the local Ruby group that are saying, “Hey. I’ll come answer questions on stuff. I’ll help you out.” In exchange, they get beer. And that’s it. And what’s great is that people just volunteer for it, even though a bootcamp is a [for-profit].
JESSICA: Where we can take beer as a concrete instance of the interface of camaraderie.
JESSICA: Because you totally don’t have to drink beer or any form of alcohol.
JESSICA: You do have to drink some form of liquids or you will die.
SCOTT: Exactly, exactly. GSchool in Denver just happens to have a bar attached to their space.
CORALINE: I think it’s an important distinction to make though, between the kind of thing you’re describing which is think is very, very useful, having a senior person, a more senior person available to answer your questions. But that’s more office hours and less mentoring. When I think of mentoring, I think a long-term relationship between the mentor and the mentee that’s focused less on the immediate technical problem and more on professional development, getting into the industry, staying happy while you’re there.
JESSICA: Coraline, do you see that happening at work or outside of work?
CORALINE: Both. I actually, I do both.
SCOTT: I definitely think that mentors are really important. And I believe, at gSchool, it is a one-on-one thing. You have one mentee. And I can’t, I’ve only signed up recently to do it. So, I actually don’t know what happens afterwards. But I would assume that it’s the same kind of thing, that these people stay in touch. That they help them find jobs and help them figure out where they should go work and act as a liaison to paid development.
JESSICA: One thing that all of us can do to help out with diversity and acceptance in our community is when you consider mentoring someone, try to mentor someone who doesn’t look like you. Don’t go in like your first thought of this person seems like a smaller person of me. That’ll help you because you’ll learn more. And it’ll help our community because we’ll have more different people in it.
SCOTT: I think that’s definitely crucial. As someone who has benefitted greatly from mentors, I would not be a developer if I didn’t work at places that people took me under their wing and really taught me the development skills that I needed. And it is important that you find people that are different, because as a lot of us work in places where everyone, most of the engineers look pretty similar. So, increasing that diversity pool isn’t only a good thing because it makes you feel good. It’s also really important because you get all these new ideas. You get these new perspectives on how to do things. And that’s helpful regardless. And it’s important and people should be doing it.
CORALINE: Now, humans don’t behave like magnets. Our natural tendency is like attracts like. So, it’s important to be deliberate about that, I think.
JESSICA: Also if you can’t mentor, there’s another form of help referred to as sponsorship in some context. If there’s someone on your team who is maybe a person of color or maybe identifies as a woman, whatever reason that person might be a little different or left out, maybe they’re from another country, look for opportunities to suggest that person, either to them or even better to management, as someone who could lead a lunch-and-learn, someone who might be a good choice for architect or team lead. Because these people who don’t fit the profile of white male with a beard, they get looked over completely accidentally. And we can provide that sponsorship just by suggesting them in meetings that we happen to be in and they aren’t, and asking maybe we should invite Jeanine or whoever it is.
CORALINE: That’s a great idea. And that’s a way of using the privilege we have as seniors or as people who do conform to the norm, it’s a good way of leveraging that privilege to help other people.
SCOTT: Yeah. It’s finding ways to elevate other’s voices and getting them heard, however you can do that.
JESSICA: Which it sounds like you’re trying to do with Happiness Conf, which is awesome. Speaking of Happiness Conf, it’s probably time that we get to picks. Chuck isn’t here today to nag us about, “It’s time for picks, everybody.” So, I’ll have to do it myself. Coraline, what do you like?
CORALINE: I have two things today. The first is a game called Love Letter. It’s published by Alderac. It is a very simple game with very simple rules, very fast pace. It takes about a minute to learn. Basically, and the art is beautiful, you’re trying to get a love letter to a princess. And you win by collecting tokens of affection and a series of, a round of cards. And there are cards that are powerful and some of it are less so. It’s very strategic but there’s also a luck component to it. So, pretty much anybody can play. And it’s an absolute blast. And I strongly recommend that if you’re into games.
My second pick is a site, an application called RescueTime. Sampling live data is becoming increasingly popular. And what RescueTime does is it tracks time that is spent in different applications and different websites. You can classify them as being productive or counterproductive or what have you and completely customize that. And it basically highlights how you spend your day and how much of your day has been productive or not productive. They do have a free plan. And most excitingly, they have an API. So, you can take that data and do lots of different stuff with it. And that’s it.
JESSICA: Sweet. I think I’m supposed to go next. I have a pick. While we’re talking about optimizing happiness, there’s a book, a very slim, little book called ‘The Happy Hacker’ by Dusty Phillips. And I met Dusty at PyCon Canada. And he’s amazing. He’s recovering from depression. And he used some measurements and some agile techniques to bring himself out of depression. And then he wrote this up in this little book called ‘The Happy Hacker’. So, if you’d like to improve your mood and outlook on life, it’s one resource. Check it out.
Oh, and I can second Coraline’s recommendation of Love Letter. We play that here all the time. My favorite thing about it is that it fits in a pocket. It’s a tiny little game. And my kids play it with us. They’re 7 and 10 and do quite well. It’s got a little bit of a process of elimination logic component that works well for them.
Scott, what are your picks?
SCOTT: My picks are, first up in the show notes you will find a coupon code for Happiness Conf. I invite you all to come. It is going to be awesome. Check out our speakers page, HappinessConf.com/speakers. By the time this actually goes out, we should have actually picked them. So, you will get to see all the speakers that are going to be there.
So, I travel a lot. Last year I flew over 330,000 miles. So, flights are something that are very important to me. I highly recommend TheFlightDeal.com. This is especially useful if you live in a hub city. But it gives you a list of great deals to various places. And it’s not like, they’re not specialty coupon deals. They’re sites you can go on, like United.com and book these flights and get really good deals. Big fan of them.
The other app that I really like that I’ve been using for the past six months or so is called iStat Menus. It gives you the stats of what’s going on, on your computer. So, you can see your CPU and memory and how much data’s going in and out. And as a developer who likes to know what’s going in, it’s actually really fun. It’s also mostly useless as far as practical purposes, by why you would want this info. But it’s fun to see, “Oh is this page not loading because there’s an issue or am I actually getting downstream network stuff but it’s not showing up on the page or something like that?” Those are mine.
JESSICA: Sweet. Mark, what about you?
MARK: So obviously, I think my first pick is Happiness Conf, for all the reasons Scott outlined. And we really do hope we get to see everybody there. It’s going to be a really fun time. And we’re trying to do a bunch of things to make everybody happier at the conference. And obviously, there’s going to be a lot of great takeaways for that. So please, use the coupon in the show notes and do that.
My second takeaway, my second pick rather, would be if you’re looking to explore a different community and a different language and something just to broaden your horizons as a developer, I strongly recommend Go. So, definitely check that out. It’s a very fun, concurrent, really straightforward language to learn. And I’m actually, I’ll give in the show notes I’ll give a coupon code for MetaCasts.tv so that everybody can get their first month free and learn some Go in that month and explore your horizons. Even if you don’t use it, it’s fun to learn different languages and try something out. So, those would be my picks.
JESSICA: Thank you. And thank you for coming on the show.
CORALINE: Thank you, guys.
SCOTT: Thank you so much for having us. We had a great time.
JESSICA: That wraps up Ruby Rogues number 198. The end.
[This episode is sponsored by MadGlory. You’ve been building software for a long time and sometimes it’s get a little overwhelming. Work piles up, hiring sucks, and it’s hard to get projects out the door. Check out MadGlory. They’re a small shop with experience shipping big products. They’re smart, dedicated, will augment your team and work as hard as you do. Find them online at MadGlory.com or on Twitter at MadGlory.]
[Hosting and bandwidth provided by the Blue Box Group. Check them out at Blubox.net.]
[Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit CacheFly.com to learn more.]
[Would you like to join a conversation with the Rogues and their guests? Want to support the show? We have a forum that allows you to join the conversation and support the show at the same time. You can sign up at RubyRogues.com/Parley.]