Catch Up: God-as-a-Service: Thinking of Our Religion as a Codebase

There’s an old joke (and a famous website) comparing programming languages to religions, but the analogy is truer than it might seem at first blush. Logic structures are everywhere in scripture. Pair programming strongly resembles the intensive 2-person style learning found in all orthodox Jewish Yeshivot. And you can say that your religion – the one you grow up with or grow into – is very much like a module you’ve inherited as a code owner. As Patrick Hubbard, our guest on this episode, says, “It’s a balance of acceptance, idealism, reverence and challenging architectural decisions made long ago.” Listen or read the transcript below.

Doug: 00:00 Welcome to our podcast where we talk about the interesting, frustrating and inspiring experiences we have as people with strongly held religious views working in corporate IT. We’re not here to preach or teach you our religion. We’re here to explore ways we make our career as IT professionals mesh – or at least not conflict – with our religious life. This is Technically Religious.

Leon: 00:24 There’s an old joke and a famous website comparing programming languages to religions, but the analogy is truer than it might seem at first blush. Logic structures are everywhere in scripture. Pair programming strongly resembles the intensive two person style learning found in all orthodox Jewish yeshivot. And you can say that your religion, either the one you grow up with, or the one you grow into is very much like a module you’ve inherited as a code owner. As Patrick Hubbard, one of our guests today says, “It’s a balance of acceptance, idealism, reverence, and challenging architectural decisions made long ago.” I’m Leon Adato and the other voices you’re going to hear on this episode are my cohost and partner in internet crime, Josh Biggley.

Leon: 01:16 Um, so the first thing we want to do before we dive into the topic at hand is give everyone a moment for shameless self promotion. Um, so Patrick, why don’t you lead us off?

Patrick: 01:25 Yeah, so I’m also a head Geek at SolarWinds, which looks like dev advocacy pretty much anywhere else. Uh, you can find me on Twitter at @FerventGeek. Uh, that’s probably the best way to find me. I am in too many places on YouTube and a bunch of other stuff because I didn’t run away when they broke the cameras out. I’m not sure that I’d make that choice again if I could. And I am a Episcopalian, which means I’m a Christian, but not necessarily the kind that most people know because we’re super progressive and we’re kind of on a timeout from England right now.

Doug: 01:58 I’m CTO at Wave RFID, a startup that I started up with my business partner at the age of 60 something. How stupid is that? Uh, it can be found on Twitter at, at @DugJohnson or you can email me at doug@asknice.com. I’m an Evangelical Christian, but not one of those in your face hitting you with the Bible kind of people. But I will talk with you all day long if you, uh, want to have that conversation.

Corey: 02:22 Hi, I’m Corey Adler, the constant pain in Leon’s side, but during the day I am a team lead engineer at Autosoft. You can find me on the Twitter at @CoryAdler and much like Yechiel and Leon, I am an Orthodox Jew. However, I prefer to call myself the Jew, extraordinary

Leon: 02:38 Dah, Dah, Dah. Okay. And as I, as I introduced earlier, Josh Biggley is one of the cofounders of the Technically Religious podcast. Josh, tell us who you are and where you’re from.

Josh: 02:48 Uh, so I’m a senior engineer responsible for enterprise monitoring. Um, I’m a wanna be a Head Geek. Is that a thing? [Multiple voices: It’s a thing!] You can find me on Twitter at @jbiggley. I’m also with my wife, uh, the cofounder of a new website called http://faithtransitions.ca. It’s for folks who uh, who are having a, uh, a faith crisis changing their faith. Uh, just a place for there to be a safe place for there to be community. Uh, I am currently a post-Mormon, ex-Mormon, um, former Mormon, whatever. Not Mormon anymore.

Leon: 03:27 Got It. Okay. Um, and just a reminder to everyone who’s listening that there will be links to everybody’s information and any of the things that we mentioned during this episode in the show notes. So no, no need to scribble madly. Um, also these episodes are transcribed for people who may not speak English as a first language or are deaf or hearing impaired or just like to read more than they like to listen.

Leon: 03:52 And Yeah, you can study for the pop quiz and my name again is Leon Adato. I am also a Head Geek at SolarWinds. You can find me on the Twitters @leonadato or on my blog, adatosystems.com. And I’m also an Orthodox Jew. Um, so I want to dive right into this. So the idea of, when we were talking about this episode, we talked about it as, you know, God as a Service or looking at our religion as code. Let’s, let’s unwind that a little bit. What are we, what are we saying really when we say looking at our religion, like we look at it as code.

Josh: 04:27 I mean I, I want to start off by, by reading the, um, reference on blog dot a-e-g-sub.org. I don’t even know how to say that.

Josh: 04:39 It’ll be, don’t worry. The link will be there. Right? So, so this is, this is a post that I have laughed over since you brought it to my attention last year. I feel like I saw before but didn’t remember it. And I was, as I was reading it today, I was howling with laughter inside because, so here’s the entry for Mormonism and it is if you’re Mormon or Post-Mormon or Ex-Mormon, you know that this applies to you. So C sharp (C#) would be Mormonism. All right? Okay. I don’t code in C#, but that’s okay. So at first glance it’s the same as Java, but at a clo- at a closer look, you realize that it’s controlled by a single corporation, which many Java followers believe to be evil. And that may, uh, that it may contain a theological concepts that are quite different. You suspect that it’s probably the, it’s probably, uh, sorry. You suspect that it probably be nice if only all the followers of Java wouldn’t discriminate so much against you for following it. For context, Java is Fundamentalist Christianity. So Doug, [Leon laughing] you know? Yeah. Why? That’s just the way that it works.

Doug: 05:52 I mean, and the reality is the guy behind C# is the guy who is behind Delphi, which is the other language that I, so there ya are. It just all comes together.

Leon: 06:01 It all just comes together. So, right. So again, I think it makes it makes a cute joke, right? Um, and I think looking at our programming languages that we love as religions is one thing. But looking at our religions through the context of what we know as programmers I think is another. So again, I just want to, I want to try to unwind that for people who are listening. What do we mean when we say that?

Patrick: 06:24 Okay. But hold on a second. I think the Delphi analogy is good and I once upon a time wrote an awful lot of Delphi and you could almost say it in a sort of descendant, um, way that Delphi was great because it was fun, right? It sat on top of the full Win32 API. It linked down to the compiler language that uh, a Borland C++ used. So it was super efficient. So when you transition to C#, and I was also all Java for a long time and when I changed jobs I was like, yeah, I’ll hold my nose and do this C# thing for awhile. But it was fun in the same way. And so I think a lot of times with religions, a big part of it is like, are there, are there tenants here or there are there echoes and reminders of something from when I was younger or that was easy at the time. So I’m not sure that that analogy of something that you encounter once and then there’s the better version and iterative period and then all of a sudden you find yourself in it later. Definitely with technology it works out that way.

Patrick: 07:22 Okay, awesome. So that, that gives a piece of it. Um, anyone else want to take a swipe at why we’re doing this today? What, how, how is it that we look at our religions through the lens of code?

Doug: 07:32 Oh, they are in the world of code, there are ways that you do things. There are it, there, there are certain things that any language has to do to be a language. And there are also certain things that any religion has to do to be a religion. I mean, any religion that doesn’t deal with how you run your life and uh, ethics and how we relate to each other as a person wouldn’t be much of a religion. Uh, any piece of code that can’t handle a four loop or a, uh, be able to go ahead and handle stuff or go to a procedure or have a goto [pause] kidding!

Josh: 08:35 I’m struck by the, um, by the nature of code and religion, um, in that code doesn’t play well together. So it’s not like you can, um, start using Java and then go, Oh, I’m just going to throw some, you know, some commands in here from, you know, Golang or something. Uh, I mean, I know that you, there are, are, are certain languages that you can do that with, but if you’re going to develop an entire, uh, project using Java, you’re going to want to minimize things that are not part of, you know, mainstream Java. Religion to me feels kind of like that the same way. There are things that they, on the surface they look like, “Oh yes, these things all make sense!”. Yes, there is a god. Yes, these are constructs that help us to, you know, act a certain way and behave a certain way and do certain things. But when you start to pull things apart, you realize that the way that religion is assembled, the way that it’s put together is very different. Much like, you know, hey, you can, you can develop our front end app and it looks like it’s doing all the same things, but you start to pull it apart and you realize that the pieces that go in to making that application don’t look at all the same. Um, so I don’t know, I’m not a developer at all, but I, I feel like things just don’t fit together well when it comes to religion. You know, we see that we see an awful lot of conflict in the world. Um, you know, in a, in a prior life, uh, you know, Doug and I sitting down in the same room would have resulted in one of us being hit with a Bible. Um, I’m feeling it’s probably me, um, being hit, but you know, you understand what I’m saying, right? It’s, this isn’t religion and, and code. I mean, it’s a, it’s a Battle Royale sometimes and it just doesn’t need to be.

Patrick: 10:28 Well, but how much of that is, how much of that is the religion and how much of it is spirituality? Because if, if, to me, spirituality is sort of the platform as a service here, right? Like it’s the set of cloud native service primitives that, that everything else is built on. So that would be a..

Leon: 10:44 I like that its a cloud native. Like it just works so well. Oh, keep going, keep going.

Patrick: 10:48 No, the point of the Cloud is we’re going to deconstruct everything into a set of service parameters and it’s up to you to put it together, right? So then the question is, do you come at it dogmatically and say, “Okay, I’m gonna use only cloud native technologies!” Or “I’m gonna lift and shift from, um, a set of monolithic applications that have made me feel good for the last 30 years.” And if there’s anything that’s opinionated in religious, it must surely be monolithic applications. Um, but underneath it, it’s things like mindfulness and it’s forgiveness and it’s awareness and it’s how does this fit in with cosmology and the, the basic tenants of that? Like what is spirituality? I think maybe that’s the thing that maybe aligns more with technology and then almost the religion itself ends up being kind of the dogmatic argument if thing that you see in a Linux forum, right? Talking about talking, you know, where people will literally wish they could get in a car and go fight each other over a pattern implementation. But the reality is that the, the commonality is more about those, those base services and then we layer on all of this opinionated, uh, uh, dogmatism that distracts us from the, the core of it.

Doug: 11:56 right? I don’t disagree with you, but by the same token, in the wonderful world of religion, you can have all of these wonderful, uh, in touch with the world and all that kind of stuff. But you know, the, the, the real acey-spacey kind of stuff that you tend to get with people who don’t have a specific religion, they just, they’re in touch with their spiritual feels, they actually accomplish very little and in the world of programming, while we can all get down to the core constructs of going ahead and working directly against the metal if we want. The reality is until you pick a language, you hardly ever get anything done and it’s until you’ve got a team of all of a bunch of people all working with the same code base, working with the same language, working together, that’s when you actually accomplish stuff. So while there are similar, while there is that base that’s behind it all, you don’t get much done if you sort of stay off in the sort of loose commonality area. It’s only when you get into specifics that things start to happen.

Leon: 12:50 Okay, and I just want to jump in here for, for the listeners and for us and say that is at the heart of this episode, which is as programmers we can take our sensibilities as/programmers and then look at it and look at our religion and say, this is, this is the similarity. This is where I can actually deepen my experience of my religious point of view by bringing my technical, my programming sensibilities to it. So that’s what this episode is about and we’ve already started to dive into it. So I want to keep going with this. Um, and really get into some of the specifics. So with all of that said, with that framework laid down, how are, in what ways do you find that our religions are similar to programming languages and/or code? Again, how do we bring our programming sensibility to the table and say, ah, now I can appreciate my religion so much more because of this or that or the other thing. What are some things that strike you?

Corey: 13:50 I mean, just the general structure of it all. I mean, religions, organized religions in particular are always very structured, you know? Yeah. I have especially, I mean, you could speak to Orthodox Judaism. We have to go to the services three times a day and you know, and we have to on the sabbath. We have few certain things that we can do, things we can do. The, the, the structure in general of this is how you run your life is always there. We’re there and it’s something that in code, I mean you understand that there are certain commands that you’re going to do. There’s that and you understand what programmatically, what that is going to do.

Patrick: 14:30 Wouldn’t it be nice if there was a religious linter that took care of the analysis beforehand?

Doug: 14:36 But that it is the same thing happens in my loosey Goosey Christianity there it’s, it’s, while there are rules that we don’t have the very strict rules of course, because we’re forgiven of everything, right? Okay. But if you actually, “Hey, you know, doesn’t matter what you do, you get forgiven and just go ahead and take care of these sins and you’re done!” Okay? But the reality is when we go to the service, there’s the opening, then there’s this many songs. Then, I mean, there’s a way that we do it every single time and there’s that structure that we expect. And boy, Heaven help you. If you should go ahead and you know, put the sermon first cause people are arriving late, who don’t want to miss miss that, the big band in the beginning. And if they missed the sermon, boy they would be on your head. So there’s just, again, there’s that standard structure even in the loosey-goosey that uh, it makes it work interesting.

Josh: 15:29 So I want to build off this idea that’s a, that’s come, um, that there’s, there are differences and similarities between religion. Being the non programmer of the group here. Um, because my God is Google and that’s, that’s how I survive. Um, I’m, I think that the missing element we have here is a scrum master or a project manager. We’ve talked about this idea that religion has rules, that we are a, that we have to follow. We’ve also talked about how programming languages have constructs that we have to follow. But if you don’t have someone who is enforcing those rules or who is, um, setting out the paradigm in which you need to participate, then how do you know that you’re doing what the other people need to do? So Doug, to your point, if you don’t get people all on the same platform, if they’re not all using the same, uh, you know, the same version, right? You know, if you’re using a Python and you’re using 2.7, so is last two dot release?, uh, versus python three, I mean, they kind of look a lot alike, but they’re not going to.., there’s going to be some, uh, some discord there. So I, I, I feel like, at least for me, if I, if, if I were to come in and be a programmer, I would want that. Um, I would want that scrum master. I would want that project manager. Interestingly enough, within Mormonism there is a scrum master. Um, and some people are going to say, well, yeah, “Sure, Josh, the scrum master is Jesus!” Uh, wrong answer. The scrum master is actually the president and, and a prophet of the Church who today is Russell M. Nelson. He is, uh, the, the sole, um, well he is the corporate soul. So he owns everything within the organization of the Church of Jesus Christ of Latter Day saints. He is also The Voice. So what he says is Gospel. Um, I mean, I don’t know if you guys look at your scrum masters or your project managers and maybe the same way that Mormons look at Russell M. Nelson, but that’s the construct, right? There has to be somebody who says, here’s how things are going to operate. Here are the rules.

Patrick: 17:51 Okay? But what if Git is a guide here? And not to invoke the obvious, but the whole point of being decentralized, right? Being, um, a set of practices that allows people to collaborate. And I think GoLang there is a, uh, something to be said for if you make the right thing to do, uh, the easy thing to do, people will do the right thing. Like what if it’s not about adhering to a judgment that’s external, but instead the thing that’s great about a great technology or a great language is, is, is one where interacting with it daily, when you look back in hindsight, you feel like you did the right thing, but it never felt like it was prescriptive. Or you were worried that you weren’t adhering to a set of programming standards or was that completely annoying architect? It was always about code standards and you’re like, “I just hacked the most amazing thing ever and you’re going to go on a 15 minute diatribe about the way that I did my comments?”. Right? Well what if the best faiths are the ones where you find that you intrinsically live them without necessarily having to go back to requirements documents every time, that they, the the right thing to do is the easy thing to do. And instead it’s something that you collectively do as a part of community as opposed to being something where you’re worried that the scrum masters kind of assign you a code branch that you really don’t want to deal with.

Leon: 19:10 Okay. So I’m going to, I’m going to jump in on that whole scrum master idea and project manager idea. Cause I think in Judaism there’s a slightly different structure. And the good part is I’ve got Corey here with me because there’s a role in shul, um, in synagogue called the Gabbai. Uh, and the Gabbai is the person who really makes sure that every service is running as demanded as, as it needs to. So, Corey I’ll let you…

Corey: 19:54 Very similar fashion. The Gaba gets cause people to leave the service, makes sure everything is running on time, make sure nobody uses, you know, growing up at the podium, you know, and,

Leon: 20:09 But also you, the Gabbai knows what day it is and what special elements of the service have to be observed, whether that’s a normative weekday or a normative Shabbat or a special holiday. But also that, um, this person has a special event in their life. For example, if there’s a groom in the, uh, in the room or somebody whose a child is having a circumcision, then certain parts of the service are not said. But the Gabbai’s job is to notice that, and say, “Oh!, we skipped this part!” and everyone says “What?!?” So the Gabbai really is that project manager role. I think, you know, in a large way I could be wrong, but…

Corey: 20:59 Umm, from an Agile perspective, the project, the product manager is, you know…

Patrick: 21:03 Well, cause where I was going with that was a more like a, you know Julie the cruise director, right? Not actually a part of your experience, just making sure that you have a fantastic experience. Basically like a Doula.

Patrick: 21:15 It’s the, it’s the leader behind the scenes in a situation where you’re not supposed to have a leader.

Corey: 21:20 So I would disagree about that from an agile perspective where the product manager is really is one informing the team of what needs to be worked on and what needs to be done now versus the Gabbai who is just almost letting everything just flow naturally. Everybody already knows what they’re supposed to be doing in the service is just making sure that you know, the i’s are dotted, the t’s are crossed, you know, not to use the pun or anything because this is a religious podcast.

Doug: 22:20 And to a certain extent, I mean, again, while it would be great, you know that you’re sitting there doing code and the code is perfect and the language allows you to do it and you’re having a wonderful time and all that kind of stuff. You do still need that outside governance. In the evangelical community, it’s going to be your elders and your deacons. But basically what it comes down to is, you can have a really crappy programmer coming in and just having a wonderful, wonderful time and they think they’re doing great and they’re just messing up everything. That’s why everybody hates PHP so much is because the, you know, anybody can program in PHP and unfortunately anybody does. So you then need somebody, the scrum master, in this case, a code reviews, any kind of where to go ahead and help them get back on the track and hopefully, uh, to go ahead and write better code or to essentially be a little closer to the rules of the religion, which are there, one expects, for a reason.

Josh: 23:19 Just so everyone understands, Doug and I have never worked together. So when he talks about crappy programmers, he’s not talking about me.

Leon: 23:28 [Laughing] And, and just to be clear, Doug and I have worked together, so if he’s talking about crappy programmers, he’s probably talking about me.

Doug: 23:35 Actually, Doug’s worked on enough teams that he has had enough crappy programmers in his life. He’s talked to a lot of them. But you know, one of, as in the case being a senior Dev, one of, one of my jobs as a senior Dev or in my current role as CTO, is to go ahead and help my, uh, new developers to go ahead and become better developers to effectively become a senior developer. In fact, one of the best things that you know has happened to me is one of the guys that I coached at, the last place that I was at is now a senior Dev at his current job. He didn’t have it when he didn’t have it when I met him. And he did have it when he left. So I’m not taking, obviously he had the capability, but he needed guidance. And that’s what, in evangelical Christianity, the elders and deacons are supposed to do. They don’t, they don’t beat you up around the head and the shoulder, but when they find that you’re drifting, when you’re going in a direction that’s not good for you or the community, they guide you back into the path.

Leon: 24:39 Okay. And, and we’ve also started to hit on another point that I think there’s a commonality between, uh, programming and our religious life, which is the idea of consequences. So what are your thoughts? Like what, how are the consequences in, in our coding lives? How does that inform our experience of consequences in religion or vice versa?

Josh: 25:00 So when we jump into this idea of cost consequences, I want to touch on something that really falls in line with what Doug was just talking about. And maybe it’s something that we all have as a blind spot here because, um, to some extent or another, we have a religious observance. But when, when we don’t work well on a team, whether we’re talking about, um, uh, an agile team or, um, a religion, there are times in our lives where being part of a religion is really problematic for us. There are people who cannot function within, um, the constructs that we want them to function in. And I don’t know exactly how to draw this completely back to, um, to programming because I’m not a programmer, but there are people…

Josh: 26:02 Well, and I think it’s, it’s even more than that though, right? This sometimes there is a system that um, you just don’t work well and um, and it may take a long time for you to recognize the value of that. Um, for example, for an awful long time I was a Windows only guy. Man, Linux scared their crap out of me because like there are weird words in it. It’s like…

Josh: 26:29 Like people make up funny names. Right? Exactly. And I’m, I’m complete. I was completely flabbergasted by it. It just seemed weird and I was compelled to have to learn a Linux and I mean, somebody on this call used to work for the same company I worked for, wrote some code that I still have to look at on occasion. I mean, I’m just pointing and saying Leon, I mean, not, not saying Leon, not saying Leon.

Josh: 27:02 These, these times, right? These times where we realize we have to step away from the thing that we were comfortable with and do something else. Um, that is for me is very much a very close to my heart. Right? Um, there are times when religion just does not work to construct those, those elders out, those deacons to use Doug’s terminology, they have failed in their role and you step away from that. Um, and that’s okay. Like you, you don’t, to go back to what Patrick was talking about, you don’t have to keep programing in Delphi just because it’s the thing that brought you joy in 1996. Um, it’s 2019 pick a new language.

Patrick: 27:39 Cool. And I think that’s something you’re hitting on. Um, the thing that we all forget, right, is that I think everyone, when they are using the language of choice or if they’re using the particular faith of choice or let’s say religion of choice, is that you, I think a lot of people feel like, oh, this was just destined. I of course have just found myself in the best, most amazing thing ever. But the reality is, yeah, everyone went shopping once upon a time. People selected that and we forget that. And so like when you’re looking at, um, especially with Go, um, your, your browsing GoLang libs or you’re out looking at GitHub and what are you looking for, right? You’re looking for fellowship, right? Like how many contributors are there? How long has this project been, uh, in, in, in a process? How many people are providing updates? How many comments on it? When was the last time the code was updated? So you know, basically how full is the parking lot, right? Right. So you, you, you, you did once upon a time make a choice. And I think part of the, the key is to remember that you should revisit that on a regular basis. Don’t ever like just decide, well, this is who I am, this is what I am. I’m never gonna look at it again because then you don’t own it. Right? So maybe, maybe that’s that going back to the platform as a service thing, but like just with like with code, go back to how many people really actually enjoy this. Ah, do I trust the people who are contributing to the, uh, sub, uh, projects that are a part of this code? Am I willing to dive in and really dig through it? Like what was it? Never decide, “Okay, I’m settled.” Like, whatever got you to that thing, that process should be good just as it was with picking a library or hey, there’s four to choose from, so the other three have about the same number of, uh, same number of contributors. So what’s wrong with the other three? Nothing.

Leon: 29:24 I like that. And again, using that sensibility from our programming lives and reapplying it to our religion and saying, well, I do this with my programming. You know, I’m not afraid to do this, to reevaluate my programming. It must really joke about programming languages or like religions, you know, “There’s the one true language!” You know. The fact is, is that we are very comfortable when it’s time to move on or when we do declared that a language is not suitable for this particular project. It doesn’t necessarily shake our world and using that comfort to say, you know what, I’m just going to take a minute. I’m going to think about this religious tradition I, I was born into or grew up into and say, “Am I still there? Is that still me?” I like that idea.

Leon: 30:05 We know you can’t listen to our podcast all day. So out of respect for your time, we’ve broken this particular conversation up. Come back next week and we’ll continue our conversation.

Josh: 30:15 Thanks for making time for us this week to hear more of technically religious visit our website, technicallyreligious.com, where you can find our other episodes, leave us ideas for future discussions, and connect with us on social media.