Andy Knight is passionate about software testing, and shares his passion through public speaking, writing on automationpanda.com, teaching as an adjunct professor, and now also through writing a book and organizing a new regional Python conference.


Transcript for episode 93 of the Test & Code Podcast

This transcript starts as an auto generated transcript.
PRs welcome if you want to help fix any errors.


00:00:00 Andy Knight is the Automation Panda. We met Andy in episode 47, and in episode 51, Andy and I discussed feature testing well, and he’s back and he’s writing a book and a lot more. Stay tuned and we’ll find out what he’s writing about, what else he’s doing, and get some great tips on submitting proposals and giving talks at conferences. Something else he does a lot. Thank you to Ray Gunn for sponsoring this episode. Find out about them at raygun.com and listen to their spot later in the show. Also, thank you to Patreon supporters. You are the awesomeness of awesomeness for continuing to push me to keep up this podcast thing.

00:00:51 Welcome to Test and Code, a podcast about software development, software testing and Python.

00:00:59 On today’s episode of Test and Code, I’m thrilled to have Automation Panda Andy Knight back on the show. We had him on episode 47 and 51, but we’re like way past that. So it’s been a while. So welcome back.

00:01:13 Thank you. I’m really excited to be back.

00:01:15 The main reason why I really wanted to get you on. We’re going to cover a lot of things today, but you teased on Twitter that you’re writing a book, so I want to know about that. So what’s up with the book?

00:01:27 What are you writing about?

00:01:28 Sure, I am writing a book on software testing. And the reason I’m writing this book is because I have tons of people from all stripes of their career asking me, Andy, I’m getting into testing and automation. Can you recommend a good book for me to learn about what it means to write good tests and what it means to develop good automation solutions? And every time somebody asks me that question, I have to say no, I can’t recommend a good book because I’ve looked for said books. And I find one of two things. You find books that comprehensively talk about software testing dating back to and while the principles that they outline are usually on point, the examples and the technologies they’re discussing are far out of date. The other kinds of books I recommend are things that are very narrowly focused on things like specific frameworks or tools or languages. For example, Brian, your book Python Testing with pytest. I think it’s a great book, and I recommend it in almost all my testing talks at conferences, but it’s very narrowly focused on Pi test or on Python. I want to have a book that kind of more broadly covers testing as a discipline.

00:02:45 Oh, nice.

00:02:46 So that’s the main reason why I want to write a book on that, because I feel like it’s a missing need within our space.

00:02:53 I think so, too. So I applaud you. People ask me, can you recommend a book on testing? And I’m like, well, you can read my book. And there’s also a lot of blogger articles, and there’s a lot of resources online. It seems to be there’s an assumption that the development team and QA or testing are like completely different organizations that barely talk to each other in all of the old stuff.

00:03:17 And that just isn’t something that I see anymore. There’s more and more integration. If there is even separate people doing the testing, there might not be, but they’re usually sitting right next to each other or just right down the aisle.

00:03:32 Do you see that also?

00:03:34 Yes. It’s interesting to see that pendulum swing because you still have a lot of traditional companies out there that have separate test teams. They have separate test organizations, but then you also have the pendulum swing the other way where everything is integrated. Some companies don’t even have a testing role or a testing career path anymore. It’s either assumed that developers are doing testing as they go, or sometimes companies don’t do testing.

00:04:02 Right. That happens, too.

00:04:06 Yeah.

00:04:06 It’s also assumed that software developers know how to test because a lot like, for instance, if you like the test driven development online stuff says write a simple test that should work, that fails.

00:04:22 Okay, how what should I write? What sort of stuff should I put in there? So there’s the how and what should go in there and which tests to write are missing.

00:04:32 Cool. Correct? Yeah. So how far are you along with this?

00:04:36 Well, not very far, to be honest.

00:04:40 I wanted to write a book on this topic for quite some time. I first started knocking around ideas about a year or two ago, but now is when I’m finally getting serious about it. So when I was at PyCon this past year, Pikcon 2019, I talked with O’Reilly and O’Reilly Media was there. And so I talked with some of the representatives and I just asked them, hey, what does it mean to become a writer? How do I make a proposal? And I shared a little bit about my idea and they said, oh my gosh, contact us. We’ve got to get in touch about this. I’m like, oh, that’s really cool. So that really put the fire under me to finally formalize exactly what I wanted to write about. Not just some big heady idea, but to actually come up with a fine level outline of the topics, the chapters, the sections, the details. I wanted in some nice to have things if I have time. And so I put that together this summer. And so far I am currently writing my first chapter. I’m about halfway through, and there’s going to be lots of chapters in this book because it’s a big topic.

00:05:48 I’ve continued talking with O’Reilly. I also want to talk to some other publishers as well. For example, this past week I was at All Things Open here in Raleigh, which is my backyard, Raleigh, North Carolina, and Pragmatic Bookshelf was there. So I got to talk to them a little bit and ask them, hey, why? How do you do publishing? What differentiates you from O’Reilly or no Starch or Meat or Manning or any of the others out there. So I’m kind of navigating that a little bit and then just trying to take head knowledge into written form.

00:06:22 Yeah.

00:06:23 It’s kind of cool that I think it’s neat that you’re with such a nebulous kind of big idea.

00:06:29 I’m thrilled that you’re going to work with a publisher, or at least you’re considering it, because I think a couple of things that I’m hoping you’ll get from it an editor that will work with you during the process to make sure that the concepts are tight, that extra set of eyes to make sure that you didn’t go in way too much detail on one subject and were really light on another subject and maybe to make sure things are kind of even.

00:06:59 That was my experience with writing my book. I think that the book that I ended up writing is about ten times better than a book I could have written just by myself.

00:07:08 Oh, that’s right. Yeah. Because I definitely wanted for myself. I’ve had some friends and good contacts recommend me to self publish.

00:07:17 And my fear is I know I’m a good writer, but I’m not the best writer.

00:07:24 I know I’m going to make mistakes, just like we make mistakes in code and have to test that when we write things, we need to get it reviewed as well. And so I definitely want to have a good publisher with a good editor who would work with me.

00:07:35 Great. Cool. Do you have like a landing page or something that people can keep track of your progress as you’re going along?

00:07:43 Coming soon?

00:07:44 Okay, cool.

00:07:46 It’ll probably be off of automationpanda.com. I’ll probably make a new page on my blog about it, but it’s still all very early. And so another reason I put that tweet out there was because I wanted the Twitter verse to keep me accountable to my goals with making this book happen. Now that I’ve told people, I feel even more compelled to really put serious time into this and make it a personal priority.

00:08:11 Okay, well, we’ll keep in touch, too. That’s the reason why I wanted you to come on the show, too, because you could even have a broader audience say, Andy, Where’s that book? Awesome.

00:08:23 I appreciate it.

00:08:24 So you have some other news, too. So you’re writing the book, and I think this is a cool idea. And actually it’s similar to a book I eventually want to write. And I don’t think it would be terrible to have multiple books out there. I think having multiple voices, like you said, all the ones that are out there now are kind of old. We kind of need some new titles to show up.

00:08:49 Yes.

00:08:54 This episode of Testing Code is sponsored by Ray Gunn save time with Ray Guns Crash Reporting detect, diagnose and destroy Python errors that are affecting your customers with smart Python error monitoring software from Ray gun, you can be alerted to issues affecting your users the second they happen. Regan takes you to the exact line of code where the error has occurred and tells you how many times it has happened and exactly who has been affected. Have complete visibility of your app or website so you discover and fix errors and performance issues before your customers experience them. Regan supports all major programming languages and platforms and can monitor both back end and front end code. Regan also fine tune the filtering and notification control so you can focus on fixing important issues and problems affecting the most users, not be bombarded with redundant notifications. It takes only minutes to set up try it yourself by going to Raygun.com. That’s Raygun.com. I saw that you’re an adjunct professor.

00:09:59 Oh, yes. Oh, boy.

00:10:01 What’s up with that?

00:10:03 Oh, my gosh. Yeah.

00:10:05 Fun story. So I’ve always had an interest in education and in teaching. When I was in College, I was actually a tutor, primarily for math, but for computer science and other subjects as well. And there was even a point in my early career where I had doubted myself as an engineer via imposter syndrome and even considered going back to school to get a PhD to become a full time professor. I chose to stay in the industry, and I’m glad I did, but it’s always been something on the back of my mind. I thought it would be really cool if I could maybe be an adjunct professor on the side at some point in my life.

00:10:41 And the way this happened now is through former coworkers of mine. I used to work at a smaller company here in the Research Triangle area, and I met a friend there. His name is Tom and he is an adjunct professor at Wake Tech Community College and his wife is a fulltime professor at the same College.

00:11:03 And what’s really cool about Wake Tech is they are revamping their entire computer science curriculum, so far as I’m aware, to use Python.

00:11:13 I just decided Python is a great language for education. It’s the way of the future. It’s now one of the most popular languages out there. It’s very accessible for beginners as well as pros. And so they want to do a lot of Python. And my friend Tom, knowing I’m big into Python and also big into testing, he put me in touch with another friend of his and a coworker of his who is also a professor at Wake Tech whose name is Joe. And Joe is charged with developing a new course on software testing using Python.

00:11:48 Nice.

00:11:48 And so Tom knew about me. He said, Andy, I want you to get in touch with Joe. So for several months, Joe and I would meet up for lunch at a local Chinese restaurant and he would put together material for the course, have me review it, get my suggestions.

00:12:04 I don’t want to say I had a heavy hand in developing it because I really didn’t. Joe did most of the work, but I kind of gave guidance on things he should look for. Any time he got stuck, I was able to help him out.

00:12:13 Did you get free lunches out of it?

00:12:16 Yes.

00:12:18 I’m not going to lie, I was very generous.

00:12:21 I very much appreciate and love my friend and co worker Joe now, because we’ve gotten to get know each other very well. But at some point during these meetings, he said, hey, Andy, listen, I know you’ve been helping me develop this course. Would you be interested in teaching this course and what do I say? Of course, because I don’t have enough things to do in my life. Right. Sure.

00:12:43 So, yeah, it’s the first run of the course is this fall semester at Wake Tech Community College. It’s an online course because that’s how it was scheduled and actually works well for me because of all the other things and traveling I’ve done.

00:12:57 And it’s a fairly basic course. This is meant to be introductory. So the prerequisite is that they know basic to intermediate level Python.

00:13:07 We’re teaching them about how to use source control like Git and GitHub, what it means to do continuous integration, how to use Pi test, because that is the framework we’re using, how to write basic unit tests. They just had their midterm.

00:13:23 They just learned how to write good and effective bug reports and feature requests. And then the second half of the course, we’re going to be getting much deeper into writing test cases, looking at how to test Rest APIs, Web UIs, and a little bit of behavior driven development in there as well.

00:13:40 Okay, cool. Nice.

00:13:45 Since it’s online, do you teach from your home or do you have to go in somewhere?

00:13:51 Thankfully, I don’t have to go in anywhere. It’s all through home.

00:13:55 The material for the course is all in there. So there are lessons for each week, and there are lab submissions for each lesson and attendance quote unquote is did they submit the lesson or the lab for that week’s lesson or not? Okay.

00:14:11 I’ll receive the lab assignments, I’ll grade them. I’ll post results. Anytime they have questions or get stuck, they’ll reach out to me via email and I’ll try to help them out.

00:14:24 Is there like a lecture component or are you kind of.

00:14:27 Okay, so interesting story. This is something that I wanted to try to innovate within. There there was no requirement for any sort of lecture or whatnot. It was primarily reading. But me wanting to help students and try to be as good of an educator as possible, I know that that personal interaction really helps. Right. When you have somebody trying to speak with you and you kind of see their face, you hear their voice, and you can have a bit of exchange. So what I’ve been doing is I’ve been recording video segments. I call them Mr. Knights insights and I’ll post them out on YouTube. You could even probably search them on YouTube. I don’t know if I’ve indexed them or not, but they are public and open and where I will talk for about ten minutes or so on that week’s lesson. So, for example, when I’m talking about the unit testing lesson, I was talking a little bit about boundary conditions and what you should and shouldn’t test and what makes a good test case and all those kinds of things, just to kind of be a stand in for what a lecture should be.

00:15:29 Nice. Okay, cool.

00:15:31 Any feedback from the people taking a class?

00:15:35 Well, I don’t know yet.

00:15:40 It seems like people are doing okay with it.

00:15:44 You get the mixed flattering of grades and some people drop. Of course, it’ll be interesting to hear what students think afterwards. I’m sure there’s going to be a survey and a review.

00:15:55 So since it’s a lot of reading and then doing the work, what is the most of the work for you? Are you grading their assignments or what is it?

00:16:06 Yeah. The vast majority of hours I’m spending have been on the grading a good number of hours. I would say maybe like 1 hour to 2 hours a week on answering questions, helping kids get unstuck.

00:16:21 And like I said, the course was already developed ahead of time. So we’re pretty much just taking the materials and just saying, here you go. Which really helps because there isn’t a need for necessarily lesson planning.

00:16:34 I don’t need to think about what I’m going to say for an hour and a half in a classroom setting, which is helpful for me.

00:16:41 Yeah, actually, it sounds kind of neat. And how much is this taking up of your time now?

00:16:49 I would say per week, averaging about five to 8 hours of time.

00:16:54 Okay.

00:16:54 Some weeks easier, some weeks harder.

00:16:56 And you’re doing this at the same time.

00:16:58 You got a job somewhere, right?

00:17:00 Yes, I am a full time software engineer.

00:17:03 Okay.

00:17:04 And you’re doing so much else.

00:17:07 You’re doing this adjective thing. You’re writing a book, you write like prolifically. There’s so many articles on your blog.

00:17:15 Oh, man. And I went to look at your speaking page and there’s like, it almost doesn’t fit on the page.

00:17:24 It’s all over the place.

00:17:26 So how are you getting so much stuff accepted? Do you have any tips for everybody on getting talks accepted?

00:17:34 Absolutely.

00:17:35 So if I can add on to what you’re saying a little bit for those who are just getting to know me, who are listening, I do speak to a lot of Python conferences primarily, but I also do some test conferences as well. Python community is great. I want to plug Python community as much as I can. People are great. That’s how Brian and I got to know each other. Get yourself to a Python conference. Get yourself to Python 2020 in Pittsburgh.

00:17:57 Right?

00:17:57 I’m biased, but it’s an okay thing. Just go with it.

00:18:01 So as far as conference talks and proposals go, some advice I would give to somebody is first of all, if you’re thinking about speaking, do it. Don’t question yourself. Don’t suffer imposter syndrome. Don’t wonder if you should or shouldn’t do it. Get over that stage fright. Just go for it and get friends around you to encourage you and hold you accountable to doing it.

00:18:25 When it comes to selecting topics on which to speak, I would always recommend talk about something for which you have lots of passion.

00:18:36 So if you’re like me and you love software testing and automation, talk about software testing and automation. If you’re really into deployment, delivery and build scripting, talk about that. If you really, really love data science, talk about that. The worst thing you can do is talk about something you’re not passionate about, because then it’s just going to be torture for you.

00:19:00 Now, as far as putting together proposals, the way these conferences work and whether it’s Python or somewhere else, they are almost always the same. There will be a conference date scheduled. It’ll be okay. However many months or days in the future. A couple of months before that, they will have a call for proposals. Or they’ll say, hey, would you like to be a speaker? Propose something to us. You go on their call for proposal website and there will be rules, things like, okay, we’re accepting talks that are 30 minutes in length, and they’ll give you a form that says, okay, what’s your title? What’s a brief description? Give me a detailed outline. Tell me how the audience is going to benefit from this. Do you have any special needs as a speaker? Fairly boilerplate stuff.

00:19:45 What I typically do is I will develop ideas for talks I want to give, and then I’ll look at different conferences to which they would be appropriate, and then I’ll write my proposals according to those forms. And usually most of the information is going to transmute from one conference’s call for proposal form to another, especially if most of the conferences use something like paper call. But sometimes you might have to change it up a little bit. It’s just a little bit of time investment. I recommend doing this all at once because it’s fresh in your mind and target multiple conferences.

00:20:25 Yeah. Like, for instance, I just recently submitted talks to two or three different conferences, and the times were different. So some people had 35 minutes talks and some were 20 minutes talks or something or 25. And I had to be realistic to myself that it can’t really be the same outline, right?

00:20:46 Yeah. I would think that conference organizers would be a little upset if they knew people were submitting the exact same outline for different time slots at different conferences because it shows that the proposal didn’t really think through those details, you know. So you do want to take the time to maximize the time slot that’s available, and so to tailor for each conference.

00:21:13 So about how much time do you think you’re spending to try to get the proposal ready?

00:21:18 Oh, that’s a great question.

00:21:20 If it is a fresh proposal, a new one that I haven’t done before, like I’ve come up with a new idea for a talk, it could probably take maybe somewhere between three to 4 hours to really flush it out.

00:21:39 Okay.

00:21:40 If it’s an existing proposal, I have kind of in my list of ideas that I still want to keep purveying out. It’ll probably take an hour to go through it, proofread it, see if I want to make any changes, and then. Right. Size it for the audience and the conference.

00:21:57 Okay.

00:22:01 Let’s say you get accepted, but you haven’t actually written all this stuff and you haven’t given practiced it yet, right?

00:22:09 Correct.

00:22:10 So how much time do you think I should spend? I know ours is typical, but you yourself. Are you practicing the talk a whole bunch of times before you give it?

00:22:21 Yeah. I wouldn’t say I’m repeatedly practicing it, but to develop the content for a given talk could be anywhere from like, I would say, one to two days of time to up to like a week’s worth of time. Just in off hours, you get a chance, particularly if you need example code to go with it that you’re going to host on GitHub with instructions. The practicing of the talks, I’ll usually run through the talk about three times before delivery.

00:22:52 Okay.

00:22:55 I don’t know.

00:22:57 My view is if you know your material and you’re passionate about it, it’s going to come out and it’s going to show. And so the trick is really using your slides as the guide posts along the way to help you remember, oh, I’m going to talk about this particular thing and then to speak from that. And then it’s just a matter of the discipline and the experience and practice of public speaking on that to know, okay, I need to spend roughly about this much time on this topic and then running through that like two or three times. You get that down pretty well for a talk.

00:23:30 No, that’s a good idea. Now, on a lightly detailed technical side, are you using speaker notes or is whatever’s on your laptop the same thing that’s showing up on the screens?

00:23:42 The latter case, usually it’s just the slides as the audience would see them.

00:23:49 Oftentimes I use Google’s Slides, so sometimes I’ll write speaker notes as I’m developing the slides and as I’m rehearsing those couple of times beforehand. And usually my rehearsals are like the day before or like two or three days before. So it’s fresh. I’ll look at those notes when I’m rehearsing, but when I’m speaking, I found that usually I don’t look at those notes because they’re already up in my head by that point.

00:24:14 Yeah. Do you do live coding or avoid that.

00:24:20 So I try to avoid live coding.

00:24:23 I have done talks and presentations where I’ve done live testing where I’ll have my code ready and then I’ll execute it and it’ll show the banner and maybe a web browser pops up and dances. But yeah, live coding can be dangerous. A Nifty trick I’ve seen some people do recently is they will have pseudo live coding where they will when they’re developing the slides, they’ll do whatever their code is, but then capture it as like a video, like with a gift or something, and then put that in the slide so that way they can be hands free. It’s guaranteed to work and everybody sees it as if it were live coding.

00:24:59 That’s pretty cool.

00:25:00 Yeah.

00:25:01 One of the things that I recommend to people also is when you’re doing a presentation, the ratio and the resolution on your is often going to be different than what your laptop is. So try it with a completely different resolution so that you don’t see as much or all your stuff is bigger than it normally is. You know what I mean?

00:25:26 Definitely. That’s great advice.

00:25:27 So speaking of conferences, what’s going on with this whole Pi Carolina thing?

00:25:36 I’m glad you asked that, Brian.

00:25:40 No, in all seriousness, I am co organizing Pi Carolina’s 2020.

00:25:45 What, you’re going to be a co organizer?

00:25:48 Yes. It’s a blast from the past because you don’t have enough to do because I don’t have enough to do. And so here’s the story behind this one. There was a Pike Carolinas in 2012. My friend Calvin, also known as Iron Froggy, was the organizer of it. I did not know Calvin at the time. I did not attend Pike Carolinas 2012, but he apparently did a great job with it and it was very successful and then it did not happen again.

00:26:14 And then in 2016 we had a pie Data Carolinas here in the Triangle, and I actually attended that one. That was the first conference where I spoke, but that was before I was really in the Python community. I only went there because my employer was like top level sponsor and all this stuff. But Anywho, starting last year, 2018, when I really started getting into the Python community and going to different Python conferences, I always had in the back of my mind, hey, there’s all these really cool regional conferences around. Python US seems to be the mothership of North America. And then you’ve got Pai, Ohio, Pai, Gotham, Pie, Cascades, Pi, Texas. I mean, there’s so many little pie conferences. Well, they’re not little, but you know what I mean? They’re smaller than Python US. There are so many regional Python conferences around. And I kind of ask myself, why isn’t there one in the Carolinas? What’s the nearest regional conference? And it’s either Tennessee or Ohio. That’s not particularly close. And especially since here in the Carolinas and namely in the triangle area where I live. There have been Python conferences before. And so I’m thinking to myself, wouldn’t it be really nice if we could have one? And so at PyCon 2019? Somehow I ended up in conversations with the right people and everybody says, yeah, we should do that. And so then I get on stage on Sunday during the grand pageant of Python conference announcements and I’m the last one up there and say, hey, y’all, I want to have a Python conference in the Carolinas. Who wants to help me raise your hand? Everybody raised their hand. The thousand people. I’m like, okay, great. I’m having an open space in an hour. Let’s make it happen.

00:27:51 That’s the magic of open space is a Python where anybody can just reserve a room, have a topic and hash something out. So we had 26 people come to the open space. I got everybody’s contact information. We got a slack channel for Pi Carolinas. I got in touch with Calvin, who was the previous organizer. So he and I are going to be co organizers and we’re making it happen by the seat of our pants.

00:28:15 That’s great.

00:28:17 Awesome.

00:28:18 So quick details for everybody who’s interested.

00:28:21 Pi Carolina’s. 2020 will be June 20 and 21st. It’s going to be a Saturday and a Sunday in 2020. It will be in downtown Raleigh at the red hat annex, right next to red hat tower. It’s like a public space where they’ve got rooms and such. Two full days of talks, hopefully two keynotes. We’re targeting about 200 people, so be fairly small. Call for papers should open up January 1 of 2020. And if you want to sign up for our newsletter, go to pikcarolinas.org.

00:28:53 Nice.

00:28:54 Wonder if I want to go to the Carolinas.

00:28:57 You do. Come, Brian, come visit me.

00:29:00 Well, maybe I’ll submit a talk.

00:29:02 There you go.

00:29:03 Yeah, I love it anyway. Well, this is cool. Thanks for catching us up on everything going on with automation Panda world. And again, good luck with the book. I can’t wait to see this progress.

00:29:17 Thank you so much, Brian.

00:29:18 Thanks for coming on.

00:29:19 I appreciate it. Any time. Thank you.

00:29:24 Thank you, Andy for that great discussion and also for caring about software testing enough to teach others. And good luck on the book. Thank you to Patreon supporters for continuing to support the show. Join them by going to test and code. Comsupport. That link also has information about sponsoring the show. Lots of ad spots open still in 2020. Grab them while they’re fresh, much like Regan has. Thank you, Regan, for sponsoring this episode. Take charge of your app and web monitoring with Reagan. Find out more at reagan.com that’s raygun.com show notes are at testandcode.com 93. That’s all for now. Go out and test something or maybe join Anna, India and I in trying to teach others how to test better.