Developing Coders: Will Gant

Note: This is the second part of the interviews to the Complete Developer Podcast hosts. Read here BJ Burns interview

By: Yadira Y. Caro

In the Complete Developers Podcast, William Gant is described as the more experienced developer of the duo of friends. His career spans over two decades as a developer. In the show, he shares with his friend BJ Burns the lessons he has learned along the way related to code, and dealing with customers and teammates. In this interview, Will talks about his experience, how he started the podcast and some advice for developers.

Why did you decide to become a developer? Did you know that since you were in school?

I was initially going to be a Biology major and I got really interested in biologically inspired computing algorithms, like gene expression programming, that kind of stuff. Once I got to college I double-majored, and the computer classes were late in the day while the biology classes were early in the day. Those two lifestyles just did not go well together, and so, one of them had to go (laughs).

What were some of the first programs or things you learned as a developer?

I started out with GW-BASIC. This was way back in the early ’90s. Then I got into Visual Basic for Applications, then just regular Visual Basic, and ended up moving to .Net when it came out. I’ve been mostly doing that. I had foray into a bunch of other languages. I’m always trying new stuff out, seeing what ideas I can take from another platform.

As far as programs, the first one that I wrote and felt worked really well, was actually a prank. I made a program that could take a screen capture of somebody’s screen and put it flipped upside down with an upside down message box that says “Windows has detected that your video card was installed upside down.” I made it in the background of my uncle’s computer where my dad could hit a button and do that to my uncle at random, because they worked in the same office. He wasn’t real happy about that (laughs).

As a developer, what do you think are some of the misconceptions of people from development or developers?

I think a lot of people have an incorrect understanding of the difficulty level, either thinking it’s more simple than it is or thinking that it’s more difficult. There’s a broad range of difficulty levels in the industry. (As a developer) You kind of get into the habit of breaking stuff down to where it’s simple enough, where you can actually deal with it. A lot of people aren’t aware that that’s what you do versus solving a huge problem. It’s sort of like, ‘how do we fix the transit system in Germany’? You don’t start with, ‘I’m going fix the transit system in Germany.’ You go, ‘I’m going to dig a ditch right here, and then work my way through.’

I would also say a lot of people just generally don’t understand how you give instructions to a computer. The way I’ve always explained it is: imagine if you had somebody that took everything completely literally and didn’t have any external source of information. How would you explain stuff to them? That’s the way you’d explain it to a computer.

People have seen all these hacker shows, they’ve seen like, the guy in The Matrix, with the characters going crazy on the screen, and they think that’s what we do. I mean, it would be cool and all, but you know, we don’t.

“A lot of people just generally don’t understand how you give instructions to a computer. The way I’ve always explained it is: imagine if you had somebody that took everything completely literally and didn’t have any external source of information. How would you explain stuff to them? That’s the way you’d explain it to a computer.”

For anybody who wants to become a developer, what would you recommend to get started?

I would probably work backwards. I would start with, ‘what kind of development do I want to do’? If they’re doing web development, there’s probably not a whole lot of reason for them to go through a degree program, just because it’s overkill. The technology is going to be old. If you’re doing typical business programming, you might want to get an accounting degree and minor in computer science, or vice versa, so that you know what’s going on there. It’s not a discipline that lives by itself. It’s always attached to something else, and that something is not necessarily technical related.

Why did you started a podcast?

BJ was going through a pretty rough phase in his life when we started the podcast and I had taken him on as an apprentice. I was teaching him how to do software development so that he could get his financials back where he needed to be. He suggested the podcast idea, and I actually didn’t think it was going to work, but I went along with it.

I bought the microphone and thought, ‘okay we’ll probably do this for five or six episodes, then he’ll get bored and I’ll have a nice microphone.’ We’re like 170 episodes in now and that’s obviously not happened. I would say that it’s pretty darn near accidental when you think about it (laughs).

I didn’t realize how much I would enjoy it either. I thought that talking into a microphone was something that was going to intimidate me and that I was going to find really uncomfortable. I did for a while, but now, I’m not. I used to be painfully shy, and I’m completely over that now.

How do you come up with ideas for the show?

If you brainstorm on creative stuff for long enough, eventually, you realize that you’re swimming in ideas. In the beginning, it was tough. I did not know if we were going be able to come up with ideas for a podcast each week, and now I think we’re like 150-something ahead. We could go for like another three years with no new ideas and not run out of material.

In the podcast you mention that you’re an aspiring software architect, is that something you’re still pursuing?

We put that in the beginning of the podcast as my introduction because that was kind of my goal then. I think before the first episode, I actually got promoted to that at work. I deal with a lot of the software architecture, just like big picture design of the software: how we’re going to scale, how we’re going to accommodate major software changes going forward, how we’re going to make our team be able to develop faster, that kind of stuff. It’s fun! It’s the hardest code too, so it’s the best.

How is your usual process when it comes to development?

The first thing I’d recommend is figure out who the real stakeholders are, because a lot of times you go in and the person you’re talking to is not really the one that’s got the authority. The next thing would be to see what things have to get done and what’s the priority level like. What do the delivery milestones actually mean? What real result does that create for the company? A lot of times, what you’ve got to do is shuffle things and go, ‘well, I could hit a milestone that’s not quite so ambitious, but it’s 20% of the work and it gets 80% of the result. I can do that right now and get them into a better place.’ That’s’ usually the way I look at it.

I don’t know that the tech is necessarily the most important thing. The tech is how you deliver it. The process is how you figure out what to deliver.

Is the show targeted particularly for developers?

Yeah, it was initially for developers. Then we started getting a lot of people that weren’t developers who were listening, and we started realizing, ‘hey, we’ve made content that’s kind of bigger than just development.’ That happened organically.

Do you apply any of the things from your job into your personal life?

They kind of bleed over into each other. Since I’ve been doing this for so long, I’m not sure exactly where the seam is anymore. The way that I have to manage multiple projects, I’ve found that I use that in the kitchen on Thanksgiving morning. I don’t think twice about it until the end of the day and I’m like, ‘wait, I just did a Gantt chart for making vegetables’ (laughs).

I don’t know if it’s maybe an overly organized personal life that has gone over into work or if it’s the other way around. I wasn’t an adult when I started writing code. The first code I got paid for was 20 years ago this week.

What was it, what did you developed?

I was just helping a friend of one of my programming teachers with a development problem that he just could not figure out. The teacher was basically like, ‘hey, I’ve got this kid in the class, he’s a giant nerd, he can probably help you, and he’s probably cheap.’ And it worked out!

What resources have helped you in your job, either books, podcasts or websites, or anything like that that you would recommend?

Other than our stuff, anything by John Sonmez. He’s got simpleprogrammer.com. He’s also got a book called The Complete Software Developer’s Career Guide and a book on soft skills. The coding stuff is almost the easy side of things, but the interpersonal things in figuring out how to work well with a team, seems to be a spot that a lot of people really need a lot of help on.

If you’re getting into the hard tech, the Gang of Four’s Design Patterns book, Code Complete , Clean Code. There’s also a good book called Don’t Make Me Think, which talks about how you design things. As far as organizing things, I would probably look at Getting Things Done, by David Allen. I have a modified version of that system. It doesn’t work perfectly for creatives, but it works well enough as a start, and then you can fix it once you find the problems. My to-do list has like, 800 items on it right now. So, I have to have organization or I’ll go crazy.

Do you have questions, feedback or suggestions of people to interview? Contact me! 

A Developer’s Journey: BJ Burns

By: Yadira Y. Caro

If you are a developer, aspire to be one, or simply want to understand this field,  the Complete Developer Podcast is a must-listen. Topics of the show have ranged from coding best practices, optimizing algorithm, surviving boring meetings, improving your listening skills and how to talk with non-techies.

Hosts and friends BJ Burns and Will Gantt, began this show as an experiment after people around them, entertained by their banter when discussing development topics, prompted to do so. Will is the more experienced developer of the two, while BJ focuses on sharing “his journey as a journeyman developer,” as he states on the show.

A few years ago, BJ was on his way to finish medical school until a personal heartbreak changed this. With the help of Will and other developer friends, BJ’s career and life took a turn. In this interview, BJ explains his journey to become an Advanced Software Engineer for the State of Tennessee, and gives insights on the development of this successful podcast.

Note: See here Will Gant’s interview. 

Did you started college as Pre-med or Psychology?

I majored in Psychology; while I was getting my masters in Psychology, I was working at a psychiatric hospital and decided that instead of getting a PhD in Counseling, I wanted to get a medical degree to do Psychiatry. I was working at an addictions unit, helping people who struggle with addiction who also have mental health problems. What I wanted to do, at least at that time, was to get into that world and be a medical doctor that could help people with their addiction and their psychological issues.

How did it evolve eventually into going into computer science and development?

It actually started before all of that. When I was in high school, I took three years of programming classes. When I first started, QBasic and Turbo Pascal were the languages that were offered in school. In my senior year of high school, they decided to upgrade to more modern languages. I got Visual Basic and C++. I got the opportunity to do that, and I loved it. I thought that’s what I wanted to do for a living.

When I graduated, I was planning on going to college to be a software developer. My mom, who is a nurse, at the time was head of a foot and ankle clinic in town. One summer in high school, her secretary took time off to go have surgery. So I worked at the clinic with my mom at that time. All the doctors kept coming and showing me things and saying, “Hey, this is really interesting.” I got to sit in on surgeries and procedures. For a really nerdy kid, it was a dream come true because I got all these very intelligent doctors wanting to teach me and show me what they were doing. I just sort of fell in love with that. So when I went to college, I started off pre med. Then I took a psychology class and decided, “Hey, I like talking to people, so I want to go into this area of healthcare.” I pursued that all the way up to medical school.

What brought me back around to development was that in my third year of medical school while studying for board exams, my wife at the time decided she did not wanted to be my wife anymore. She had the divorce papers delivered to me while I was studying for board exams, and I did not pass for obvious emotional reasons. It was a bit of a surprise to me, and then I had to go in front of the promotion and matriculation committee. I explained to them everything that was going on, and why I didn’t pass my board exams. They basically told me to take some time, get through the emotional side of it, get through the divorce, and look at coming back to school later. I left med school then moved back to Tennessee.

image3-2.jpeg

Medicine requires a lot of focus. You spend six to eight hours a day in a classroom, and then another six to eight hours after you get out of class studying. To go from that sort of lifestyle to have nothing to focus on; all of my focus went on to all the bad things going on in my life. I was getting very depressed and so my friends, who were developers, were like, “All right, we’re going help you, we’ll give you something to focus on”. So they started introducing me to different programming concepts. I think they started off with this online game where you wrote JavaScript to move the character around.

Within about two or three months, I had gone from that to looking at some different tutorials, taking some Udemy classes, and I was asking questions about expression trees and some pretty heavy topics. They were like, “Oh, we got you hooked now!” And so about six to eight months after I had first started learning or relearning development, I decided I didn’t want to go back to med school. I wanted to pursue this.

My best friend Will, who does the podcast with me, brought me on as an intern. He had his own company doing consulting, and he did it just so that he could show me things as he was doing them. I was working in sales at the time. So, I would work from about 7:30 in the morning to 2:30 in the afternoon. Then, I’d go over to his house from eight to six or seven and sit in his office. Over the course of the year, I started doing more and more things for him until I think about two or three months before I got my first full time job in development.

“Look at what you want to do and list it out if you want to work in a certain field. Find out what that field needs, and what you need to work in there.” – BJ Burns

What was your first job? Was it primarily developing websites?

My first job outside of the apprenticeship was as a contract developer for the State of Tennessee.

What’s your current job?

My contract was six months and it was a six month contract to hire. They decided to hire me on after six months, and actually just got promoted up two months ago to Advanced Software Developer.

Why did you start a podcast?

I’m a talker as you can tell. When you get him going, Will is a talker as well. He loves to talk about development. I also learn best through teaching. So, part of the reason we did it was to help me learn to be a better software developer. Part of it was to give me a little bit of credentials coming into the industry without a degree in software development.

What really put the nail in the head was when I was interning with Will. We had both taken the day off to go to an event at the Microsoft office here in Nashville. We’re sitting at a table with about five or six other developers, and I’ve been asking him some questions about some of the stuff they had presented to us. We were sort of bantering back and forth about it and we noticed that no one else at the table was talking. They were all just sitting listening to the two of us go back and forth. We kind of stopped and looked at them like, “You guys can jump in here too.” And they’re like, “Oh, no this is great. You guys should totally do a podcast or something. We just enjoy listening to the two of you go back and forth”. I think that was around April (2015). So, we started doing our research and looking into what does it take to create a podcast.  And then that July, we started building the website and recording episodes.

We wanted to have about three or four episodes ready to go when we launched because we didn’t want to be trying to learn how to do this while also trying to produce an episode every week. When we launched our first episodes in September, we had four episodes already recorded, and mostly edited. It used to take me a lot longer to do the editing back when I had no clue what I was doing. I think our first episode was about 30 minutes and it took me about 12 hours to edit because I was learning the technology.

How do you pick the topics?

What we were talking about at that lunch just kind of led into it. It was how to talk about technical subjects to non-technical people, such as managers, or Business Analysts. Then after that, we did a series on health, where we talked about physical health, mental health, financial health, and those sorts of things.

The first year we struggled. Each week, we’d try to come up with a topic, and we’d take turns writing them so one person doesn’t get burned out. We had a list just in a text file of topic ideas. If you couldn’t think of something to write about that week, you could go to that list and take something off of it. That kept growing especially after I started working. I would see things at work and think, “I want to learn more about this. Let me make an episode, and then I can kill two birds with one stone. I can learn about it, and we’ve got a podcast episode”. Now, I get the episode topics from everywhere.

We have a board with all of our episode ideas on it. We have 201 episode ideas that we haven’t even worked on yet. We break them down into three categories. There are technical episodes. There are business episodes, such as the signs your co-worker is quitting episode that just came out. Then, we have the life category. These are life skills, like we have one episode in the backlog called the real cost of interruptions. We try to keep that balance in what we’re doing.

Is there a specific key piece of advice that you will give to people who want to get into development?

It takes work. You have to put the effort in and stay focused. You get in, you’re learning, it’s exciting, and then you get to, I wouldn’t say the boring parts of the learning, but the more difficult things. You want to go learn this other really new thing over here and this other really new thing over there. Then you end up becoming what we call “Hello World” experts, where you know how to write very basic stuff in five or six different languages. But not one of them are employable skills yet.

My advice is to look at what you want to do and list it out if you want to work in a certain field. Find out what that field needs, and what you need to work in there. Nashville is very .Net heavy. So if you wanted to work in the Nashville, Tennessee area, I would suggest learning .Net. If you want to work in other areas of the world, there’re different things that are more popular there. So, look at what you want to do, and then focus on that. That’s what’s going to help you in the long run.

Do you have 2 or 3 recommendations for resources (book, podcasts, etc.) that have helped you in your career?

Coding Blocks Podcast is great. The guys that run it are friendly and knowledgeable. Soft Skills: The Software Developer’s Life Manual by John Sonmez. I suggest the audiobook version.

Do you have questions, feedback or suggestions of people to interview? Contact me! 

Preaching Good UX: Joe Natoli

By: Yadira Y. Caro

User interface (UI) and User Experience (UX) are popular terms in the design and product industry. UI and UX, oftentimes tied together, are commonly seen as secret ingredients you add to a product to “make it pretty.”  Oftentimes, people don’t really quite get them. Joe Natoli has made it his mission to educate people on what UI and UX are really all about, calling himself a UX evangelist.

Through online courses, several articles, his podcast Making UX Work, and various books, Joe wants to make sure people know UI/UX are not a thing you add, but processes to ensure user satisfaction and usability. These do not only apply to products and software; UI and UX principles can be applied to any area of customer service.

I asked Joe about misconceptions of UI and UX, his career and resources to learn more.

You are an expert in UI/UX, but how do you describe what you do?

First, I’ve never been comfortable with the tile of “expert.” I don’t have any magic powers, and I am not the smartest guy in the room. What I do have is close to three decades of experience working with and learning from unique people in unique, challenging situations. Do anything long enough and you learn a whole lot about what works and what doesn’t.

I do, however, believe that one of my strengths is the ability to simplify and clarify what UX and Design really is, and how people and organizations can make those things their allies, integrate that thinking into everything they do. I’m able to make it real, understandable and applicable for them, cut through the ego-driven jargon and artifice that often passes for UX knowledge or expertise.

For clients, I explain that UX isn’t a discrete activity, a specific part or step in the software development process — it’s the entire process. User experiences are the result of everything everybody does, from the people requesting features and functionality to those who decide whether or not those things are possible to those who design and build.

UX is created regardless of whether or not there are UX or UI designers on staff; it’s either intentional or unintentional. And when it’s unintentional, it’s usually bad. So I refer to UX as a value loop, a cycle where both parties have to be satisfied. Good UX delivers value to the people who use a product, and when that happens, value should come back to the organization as well.

What are some misconceptions about UI/UX?

That it’s a step in the process, something that we “do” at specific points in the product design and development process.

People believe that it’s limited to the product itself, which it isn’t. UX is created from every interaction a user or customer has with your organization, which includes things like how customer service answers the phone or responds to social media messages. How easy or hard it is to find self-help information on the corporate website. How long someone has to wait on hold when they call a help line, hearing “your call is very important to us….” every 5 minutes.

People also believe that it’s a “magic bullet” of some kind, that if you designate people and activities as UX or UI, then you can check the box. But more often than not, bad UX is the result of the decisions people make inside an organization, both within and outside the product team. It can be the result of teams or individuals working in silos, not truly collaborating, sharing expertise, or communicating well. Political battles, fear and morale issues that lead to poor decision making. Company cultures where the urgent always trumps the truly important.

Those activities are outside what we think of as “UX” or product use, but they have massive impact in whether or not a user experience is positive or negative.

speaking-001-1440px

What has been one of your greatest challenges and how did you tackle it? 

Dealing with imposter syndrome, which I still do, even though I am in a situation where I can pick and choose what work I take on from global-sized organizations. Even though they come to me, and never question my rates. Even though I have 120,000 students worldwide taking my courses.

I say all that not to impress you or anyone else; I say it because I want everyone reading this to understand that no matter how much you achieve, you cannot expect your fear or self-doubt to suddenly disappear. That’s an unreasonable, unrealistic expectation. So instead of waiting to be fearless, you have to make peace with that fear and go forward anyway.

Part of that is this idea that we have to be 100% original, which also isn’t possible. I think what we all do is to take the gifts other people have given us, and adapt, reimagine and reinterpret them in some way that’s uniquely ours. You may be saying or teaching the same things someone else is, but you’re doing that in a way that only you can.

So you have to learn to trust your voice, your approach, to trust in the fact that what you’re doing has merit. Otherwise you’ll never start.

So taking that big step forward — whether it’s speaking up in a team meeting or taking a risk on a new interactive feature or starting your own business — isn’t a matter of being fearless. It’s a matter of feeling more fear than you know what to do with, but going forward anyway.

What is the main takeaway you want people to have from your courses or your book? 

That UX is not something you do with your hands — it’s the result of how you use what’s between your ears.

I believe that far too much of the “advice” people get on design and UX is unrealistic; it sounds great on paper, but it fails miserably when put into practice in the real world. The one where most businesspeople don’t care about best practices and principles. The one where results — were we get the outcome we’re after — is the only thing that matters.

I think most processes and tools and methods people on my side of the fence promote and suggest are too complex, too rigid and require a perfect-world scenario where you always have enough time, budget, people and executive approval.  So everything I do is meant to be an antidote to that: things that work in the messy reality we all work in.

Can you recommend a few resources (books, websites, etc.) which have helped you and could help others in the field, or who want to learn more? 

Sure. Of course, I have to include a few of my own, because the feedback I get daily from designers, UXers and developers tell me they’re useful and helpful:

Think First, my latest book: I wrote this book to simplify and demystify a great deal of what it really means to apply UX to product development, and what you really need to consider when working with clients and teams. The reason I wrote it was because I got angry — so much of what’s out there talks waaaaay over people’s heads and insists on complex processes, tools, and methods to “properly” practice UX. I think that’s bullshit, so I wrote a book explaining why (and what to do instead).

Making UX Work Podcast: I interview everyday UXers (no rock stars) about what they do every day, how they do it and the challenges they face.

Give Good UX Company of Friends: This is my private Facebook Group. With over 6,000 members, you can learn an awful lot from the good, generous folks there (and I answer questions as well, live and in posts):

Website, Blog + FREE eBooks: I do my best to write articles, create videos and provide free e-books to answer the questions I get from people in the field every day.

Online UX TrainingThese are UX training courses on my own platform.

Udemy UX Video Courses: These are UX training courses on Udemy.

Next, I believe every person related to product development, design or UX in any way should absolutely read the following books cover to cover:

The Inmates Are Running the Asylum, by Alan Cooper; Don’t Make Me Think, by Steve Krug, The Design of Everyday Things, by Dr. Don Norman, The Cluetrain Manifesto (various authors) and Universal Principles of Design (various authors).

Do you have questions, feedback or suggestions of people to interview? Contact me!