Getting Apps Done

LeicesterJS Talk with Getting Apps Done

August 16, 2019

1x

Episode

39

Joshua gives his first ever public talk at LeicesterJS and being an audio nerd, wears a wire!

In this special episode of Getting Apps Done, Joshua shares the recording of his talk at LeicesterJS which happens to be a slightly different take on some of our recent episodes about failure and safety.

A special thanks to LeicesterJS for having me and to the audience for being awesome!

Be sure to check out our new Slack community to meet others who are facing the same things you are and share your journeys!

Tune-in using
Listen on iTunes Listen on Spotify Listen on Google Play Listen on Overcast Listen on Tune In Link to our RSS Feed
  • 00:02 Joshua

    Hey folks, welcome to Getting Apps Done, a mostly nontechnical podcast about building software. Now, usually we release a new podcast episode every Thursday, but today we've got something a little bit special because after the podcast released this Thursday, I went into town and I went to the LeicesterJS meetup where they had invited me to do a talk and I talked about some of the subjects that Kel and I have been talking about a lot lately, particularly talked about failure, and I wanted to share that with you, but before I do that, I wanted to just say thank you to LeicesterJS for having me talk with them and also to the audience who were there for first off putting up with me on my first ever talk and also for providing some really great input and some great feedback, asking some really awesome questions and participating in a really great discussion. In fact, we carried on talking until we got kicked out of the building. So you were all absolutely great. Thank you very much. Now without further ado, here we go!

  • 01:01 Joshua

    If you're going to have to listen to me for a little while. You probably should know a little bit about why you should listen to me, first.

  • 01:07 Joshua

    I got my first computer in 1995 I was introduced to Visual Basic by a friend and, uh, pretty much immediately decided programming was what I wanted to do. And I've been doing it ever since. A little bit on and off, but mostly, yeah, pretty much since then. So it's almost 25 years now. I currently work as a consultant. I run a lot of development teams for a lot of different companies. We have a variety, everything from stock exchanges to small startups. Um, and obviously, as Josh said, I host a podcast. I've been doing that for about a year of trying to help developers grow. Because I think there are a lot of technical resources out to help people learn code, to learn how to build loops and bubble sorts and all sorts of things like that. But not enough about all the other things that you need to know as a developer. And a lot of these things also relate to what you need to know as a human in general.

  • 02:04 Joshua

    I would like to think of myself as a rock star developer. Uh, but we're going to talk a little bit about that tonight because I think there a lot of misconceptions about what a developer should be and what we are and how we judge each other and ourselves... Probably more ourselves than anybody else that I think are really wrong and they're hurtful to us and they don't make us better developers at all.

  • 02:25 Joshua

    Also, for the record, I am American, not Canadian. I don't think that actually gives any extra reason for you to listen to me, but just to save confusion.

  • 02:37 Joshua

    So certainly when I started my career, I had this idea that there were going to be these gurus out there, the new everything about software development and I would learn everything I needed to know from them because they've got all the answers. They know absolutely everything. They don't ever get anything wrong. And they can go out there and build apps all by themselves and do all these wonderful things. And that's why they make the big bucks. And that's what I wanted to be.

  • 03:05 Joshua

    And there's this misconception that developers, the really good ones are spending all their days, all their nights, every waking moment thinking about development, working with new technologies, playing around with things, not doing anything else. In fact, when I got here, somebody asked me, do you have any time for any other hobbies outside of development? I said, well... yes, absolutely. I make time to go do photography. I go cycle, I play with my kids because I think that's where the important, but that's not what the picture or the image of this traditional rock star developer is.

  • 03:34 Joshua

    They're also quite often accused of not playing well with others. And again, that was something that I kind of thought was true. I had... In fact, I will actually say that when I started my career, a lot of the developers that I met, they were either unix developers or mainframe developers and they didn't always play well with others. And I.. Just, okay, that's the way it is. But I think there's a lot of things wrong with that.

  • 03:57 Joshua

    And throughout my career I have built a lot of software. I have, caused a lot of machines to have null references to run into infinite loops, to blue screen... to crash. I've taken out entire server rooms in the past. Um, and I don't tell you these things because I want you to think I'm a bad developer. I want you to know that actually that's normal. I have also built a lot of software that has been in play for more than 10 years. Uh, I've built a lot of software that's been used by thousands and thousands of people and stood the test of time. That's all just part of the process.

  • 04:38 Joshua

    And I think that's something that we miss a lot. We get this idea that failure is bad and it's easy to do because it's very easy to relate, failing to failure; being a failure. And we forget that actually failure is normal. Every single person in this room has failed over and over and over again. That's just... It's the way it goes. We can't get away without failing. And it's really easy to forget that because we all kind of have rose tinted glasses. We forget our failures. We might remember the lessons that we've learned from those. We remember, don't ever do that again. You took out a server room, Josh, don't do it again... but you forget what you did to do that in the first place.

  • 05:19 Joshua

    So I think to start with, it's really important to just know that it is okay to fail. You can still be a rock star developer, you can be a huge asset to a company and be open to the fact that you're going to fail.

  • 05:35 Joshua

    I think we all need to kind of keep that in mind because we don't know all the answers. And I think... In fact, when I'm hiring a new developer, the first thing I try to find is not that they know all the answers. In fact, I don't usually ask them many questions that they have to give me a direct answer to. I ask them to work with me and to learn with me about something that they don't necessarily know. Because I think it's much more important that you can find the answers that you're willing to learn and look and seek because, let's face it, even if you do know every single answer today you won't in a year. That's the way tech is.

  • 06:09 Joshua

    I think we can do that by allowing for failure and failing quickly if we can try to push the boundaries a little bit and increment ourselves just a little bit at a time and push ourselves. There's this concept of progressive overload it's very popular with weightlifting, but I think it works in everything in life, particularly in development, just pushing yourself that much further.

  • 06:31 Joshua

    I remember when I was younger, I played a lot of video games and the best way to level up was to go fight the bad guys. You weren't supposed to be fighting yet because you got a lot more experience for them. It's the same with this. If you push a little bit harder than your comfort zone, get outside of that and open yourself to maybe bombing on this one. But learning from it, seeking that feedback from other people, finding out, okay, I really screwed this up. What can I do better next time? And picking up and moving on from that. That's really what we're looking to do here.

  • 07:03 Joshua

    The problem is, it's very easy to say all those things, but actually it's very hard to admit to failure because in general, most of us, we have a reason to want to avoid that. We're scared because let's face it, I've got kids, I've got to feed them. I've got a mortgage to pay. So when I go into an interview and they're asking me questions, I don't want to admit, I don't know that or I've bombed that or I've screwed that up because I can't do that safely.

  • 07:30 Joshua

    And I think one of the best things we can do for ourselves is put ourselves in a position. now, clearly, obviously companies should be allowing for this, but we can't change what every company in the world is doing. But if we can, you know, start to do things, and this is very hard to do, it's very easy to say, but hard to do.

  • 07:49 Joshua

    Put yourself in a good position of financial safety. You know, pay off any debts you can. Build up a little bit of money, even if it's just to cover your next month, the amount of freedom you get to say, actually, you know what? If I screw this up, it's probably going to be okay. It's just amazing. It doesn't take a lot to get yourself in a position where you feel a little bit more okay about saying, yeah, I can take a little bit of a risk here. And as we said, you've got to push yourself a little bit outside of those comfort zones and take a few risks here and there. And the more comfortable you are with that, the more you're able to do that.

  • 08:20 Joshua

    And I think another thing that you can do, and this was one of the lessons that I learned early on, is have a backup plan.

  • 08:27 Joshua

    I had a manager who was absolutely awesome. He allowed me to go push my boundaries. And when I did screw things up and took out server rooms and all sorts of other things, he would show up right there and say, okay, so what are you going to go do to fix this? I'm going to go get rid of everybody so they'll leave you alone and let you do that.

  • 08:45 Joshua

    And at the time I didn't recognize how important that was, but that was one of the steps in my career that allowed me to understand, okay, so first off, failure is normal and second, I'm going to learn something from this. I'm going to figure out how to fix this. And it didn't take long before I was coming back to him. The moment something went wrong, saying, "hey Dave, I screwed up. This is what I'm going to go do. Is that okay?" And he'd say, "yeah, yeah, go for it. Get it done.".

  • 09:08 Joshua

    And I think having that lesson, learning how to create a backup plan to then not hide from it. Don't brush it under the carpet or blame somebody else, but to actually just say, yeah, I did this... helped me. I think it's a very good way to begin to be a bit more transparent, to begin to be a little bit more open because most of us are hiding a lot of stuff. Just the act of not hiding it, avant telling other people actually leads to supporting other people. Just by saying, you know what? I screwed this up. It makes it okay for somebody else to say, you know, I screwed something up too. The next time. Something comes up and they screw something up. They're much more likely to say, yes, actually I did this. How do we get out of this? What do we do now? What's the next step?

  • 09:54 Joshua

    So when I'm thinking about rockstar developers, I have stopped thinking about the ones who just automatically have the answers. You know, like kind of 1990s era. Persona of the hacker or developer who just knew everything. Who got called in fixed everything for everybody. But you start thinking about people who are willing to take a few risks but not unsafely to push themselves and learn more, work with others, communicate with others, help others, and push others forward as well.

  • 10:26 Joshua

    That's the sort of rockstar developer I would like myself to be, whether I'm there or not or not. I am fairly certain I'm not, but that's what I'm pushing toward and I think a lot of other developers should be doing the same. Not just pushing yourself, but pushing all of us forward by being more open, being more transparent and sharing a lot more and probably screwing a few more things up.

  • 10:47 Joshua

    That's about it. You've got my lovely head again.

  • 10:59 Joshua

    Any questions? I bombed that badly? Ah! Okay1! We got one!

  • 11:04 Joshua

    Alright. So clearly we did have more than one question, which was great. Once again, thank you very much to LeicesterJS for having me and to the audience again because you were absolutely fantastic and I loved answering your questions and chatting with you about various development things.

  • 11:19 Joshua

    If this is your first time listening to Getting Apps Done, thank you for listening, first off and hopefully I met you at LeicesterJS and I'll see you again at the next meetup that we have there or you can talk to me on their Slack channel.

  • 11:30 Joshua

    In the meantime though, we do post a new podcast episode every Thursday so you can find our information at gettingappsdone.com we have links for whatever your favorite podcast app is, or you can just listen to them on the website itself.

  • 11:41 Joshua

    You can also check out more information about me at joshuagraham.info or find out more about my normal co-host Kel at piffner.com. Otherwise, we are absolutely glad to have you and if you're a regular listener, thank you again and, once again, I know this is slightly different than usual, but I thought this was worth sharing with you. Until next time, thanks for listening.