Developing Coders: Will Gant

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

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 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

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.”

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! 

Sharing Knowledge about Knowledge: Stan Garfield

If you need to know anything about Knowledge Management, Stan Garfield has probably already written about it. This prolific author and speaker has over 400 posts and various books on the topic showing not just his ideas, but also those of multiple people who are dedicated to this discipline.

Stan’s education is in Computer Science, but technology is not his only focus. As a true Knowledge Manager, he built relationships and communities to ensure information and ideas of an organization are captured and shared. In this interview you will learn about all the facets of KM and about his career. His experience includes leading KM programs and communities in professional services at HP and Deloitte.

What is your definition of Knowledge Management?

Knowledge management is the art of transforming information and intellectual assets into enduring value for an organization’s clients and its people. The purpose of knowledge management is to foster the reuse of intellectual capital, enable better decision making, and create the conditions for innovation.

KM provides people, processes, and technology to help knowledge flow to the right people, at the right time, so they can act more efficiently, effectively, and creatively. Knowledge management enables Sharing, Innovating, Reusing, Collaborating, and Learning.

What are some misconceptions of KM you see regularly?

  1. KM programs should try to implement every KM process and tool
  2. KM programs should start with technology and then roll out tools and drive adoption
  3. KM programs should focus on collecting documents or updating skills profiles
  4. It’s not necessary to meet in person and you can ignore the need to build trust
  5. KM teams can be moved around from one organization to another
  6. KM programs should rely on maturity models and benchmarking
  7. There are “best practices
  8. KM programs should collect and report on all possible metrics
  9. It’s good to get certified in KM
  10. You can delegate KM to others
  11. You can push content
  12. KM is dead and KM needs a new name
  13. You can make people do things and incentives don’t work
  14. Social is frivolous
  15. Creation of communities and ESN groups should not be controlled
  16. Risks can be eliminated
  17. It’s possible to be like Google and Amazon
  18. KM people should try to work themselves out of a job
  19. Bigger is better for organizations, and smaller is better for community membership
  20. Everything is a community
  21. Our IP will be stolen if we don’t lock it down tightly
  22. The DIKW pyramid is useful
  23. The 90-9-1 rule for community participation is obsolete
  24. It’s possible to compute the ROI of KM
  25. Content should be archived after 90 days

(For more see this and this)

What drew you to this field and to become a KM author?

I have always been interested in communication and in sharing information. In elementary school, I published a one-page newsletter. In high school, I operated a radio station. In college, I started out in the journalism school at Northwestern, but I got hooked on computer programming and transferred to the engineering school at Washington University.

I joined Digital Equipment Corporation in 1983, and they already had VAXnotes Conferences, which were early examples of online communities. As a professional services manager, I compiled information useful to my team members that included key contacts and pointers to reference material. The Key Contacts List became one of the most popular documents at Digital.

I edited and published a monthly newsletter called Systems Integration Notes. It was distributed via email, but I wanted to find a way to make it available on demand. Initially I used VAX VMS network transfers for this, and then Digital ALL-IN-1 shared file cabinets. When Digital launched its first intranet in 1995, I knew that this was a much better way to share information, and immediately embraced it. I became the editor of Digital’s Professional Services intranet site.

In 1996 I was asked to start Digital’s first knowledge management program. My background in journalism, computer programming, and information sharing made me a good candidate for this role, and I embraced it enthusiastically. I have been a knowledge manager ever since.

KMWorld 2017 Keynote

In 2004 I took over HP’s KM program. I attended a one-day APQC Proven Practice Replication workshop hosted by Ford. I was impressed by the work of Stan Kwiecien and his Ford KM colleagues, and invited them to present on an HP KM Community call. They did so, and then Stan asked me to present HP’s KM efforts to Ford. I didn’t think that what we were doing at HP was that impressive, but I reciprocated. I was surprised by Ford’s reaction to my talk – they were much more positive about our accomplishments than people at HP were. This inspired me to present and write about our knowledge management efforts, including my first conference presentations at APQC in 2005 and KMWorld in 2006. I submitted an article to Line56.com, and they asked me to write a weekly blog, which I did. When Line56 folded, I moved it to hp.com. When I left HP in 2008, I switched to tweeting. In 2014 I began writing weekly articles on LinkedIn.

I have also been writing articles for periodicals since 2006. One of these, Inside Knowledge, was published by The Ark Group, and they asked me to write a book in 2006, which was published in 2007 as Implementing a Successful KM Program. In 2016, Lucidea (a software company) asked me to write another book, Proven Practices for Promoting a KM Program, which came out in 2017. I have also been asked to contribute chapters to four other books, and I always agree to do so.

In Profiles in Knowledge you share stories of people who have contributed to the field and are no longer with us. What inspired you to do that?

I have written over 400 blog posts, so I have covered most of my original ideas. I wanted to shift my focus to share the great work that others have done. I noticed that for those who have passed away, or left the field of knowledge management, their writing is not always available online. By retrieving it from the Internet Archive’s Wayback Machine, I was able to bring back their lost content for the benefit of everyone in the field. And by celebrating the work of those who are no longer with us, I am able to remind others of those great ideas and accomplishments. When I do so, their surviving friends, family, and colleagues have expressed their appreciation to me, which is very gratifying.

How has the KM field evolved in the past 10 or 15 years?

The fundamental principles have not changed much over the past 25 years. Some of the approaches and components have evolved. In the initial phase of KM (approximately 1995-2005), the main efforts were related to collection:

  1. capture
  2. lessons learned
  3. proven practices
  4. content management
  5. classification
  6. intranet
  7. portals
  8. repositories
  9. expertise locators
  10. search engines

In the next ten years (2005-2015), Web 2.0 and Enterprise 2.0 developed, and the emphasis shifted to connection:

  1. communities
  2. threaded discussions
  3. tagging
  4. blogs
  5. wikis
  6. podcasts
  7. videos
  8. syndication
  9. aggregation
  10. social software

Since about 2015, new trends have emerged:

  1. There is currently a lot of buzz around the ideas of digital workplace and digital transformation.
  2. Working Out Loud is a growing movement that encourages employees to narrate their work and broadcast what they’re doing so others can interact.
  3. Community management is emerging as a formal discipline where community managers are formally trained, developed, and assigned to full-time roles.
  4. Cognitive computing and artificial intelligence are being used to automate certain KM tasks and augment knowledge-related decision making.
  5. There is increased attention on analytics and business intelligence, which help KM use data to derive insights and inform actions and decisions.
  6. More organizations are adopting enterprise social networks, especially Microsoft and Workplace by Facebook, as a better user interface for online threaded discussions.
  7. Chat tools such as Slack, which are used predominately for team interaction, are gaining in popularity as well.
  8. Gamification and digital badging are new ways of framing incentives to recognize people for performing the knowledge-sharing and collaborative behaviors.
  9. Agile methodology originated in software development but is now being applied more broadly across the enterprise.
  10. Mobile apps and the bring your own device (BYOD) trend are reactions to more and more people using smart phones and tablets for work. KM must ensure that knowledge systems are optimized for mobile.

“Knowledge management is the art of transforming information and intellectual assets into enduring value for an organization’s clients and its people.”

Can you share a major challenge you tackled in your career (with a customer, or personally) and how did you address it?

When I led the HP KM program, there were frequent changes in the top leadership of the HP Consulting & Integration business that I supported. Each time a new senior vice president was named, I had to start over to educate them about KM, the KM program, and what I wanted them to do in support of it.

One new senior VP convened an advisory council of field consultants, and they were very critical of the KM program. I found myself on a conference call with the senior VP and the council members, and it was very difficult. They complained about several things, including the user interface, which they thought was too complicated.

Despite that fact that we offered multiple ways to interact with the KM system, including a standard intranet menu, an engagement knowledge map, and an A-Z index, they wanted a simpler option. Instead of being defensive, we set about to create a simple user interface, and worked with the harshest critic among the council members to design it. When that user was satisfied, and when we had made similar improvements to respond to the other complaints, we reconvened the senior VP and the council, and reviewed all of the changes. The council members embraced what we presented, and we turned around a dire situation.

The moral of this and other incidents we experienced: listen to your constituents, try to just say yes, and continuously improve in response to constructive feedback.

What key piece of advice would you give to an individual who wants to perform KM work or launch a KM program in their organization?

Start out by building expertise in knowledge management.To perform KM work:

  1. Set three simple goals and stick with them for the long term. Communicate them regularly. Incorporate the goals and metrics into as many parts of the organization as possible.
  2. Keep the people, process, and technology components of the KM program in balance. Don’t allow one element (e.g., technology) to dominate the other two.
  3. Lead by example. Model the collaboration and knowledge sharing behaviors you want the organization to adopt in how you run the KM program.

To launch a knowledge management program:

  1. Create a Top 3 Objectives List of challenges and opportunities which your KM program will address. These objectives align business direction with program goals.
  2. Provide 9 Answers to questions about people, process, and technology. This information defines who will participate, which processes will be required, and how tools will support the people and processes.
  3. Define the KM Strategy. These are specific actions which will be taken to implement the program.
  4. Gain the sponsorship of your senior executive through The 10 Commitments. These commitments from the leader of your organization will enable the KM strategy to be implemented.
  5. Create and execute the Implementation Plan. This plan spells out the details of implementing the initiative.

You regularly share recommended resources. What 2 or 3 key resources (books, podcasts, etc.), would you recommend to anyone who wants to know more about KM?

Here are six:

  1. Blog: Knoco Stories by Nick Milton
  2. Book: Working Knowledge by Thomas Davenport and Laurence Prusak
  3. Community: SIKM Leaders Community
  4. Conference: KMWorld
  5. Periodical: K Street Directions by Chris Riemer
  6. Site: Gurteen Knowledge Website by David Gurteen

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