Study Notes SE-Radio Episode 306 Ron Lichty on Managing Programmers

Ron Lichty talks with SE-Radio’s Nate Black about managing programmers. SE-Radio Episode 306: Ron Lichty on Managing Programmers http://www.se-radio.net/2017/10/se-radio-episode-306-ron-lichty-on-managing-programmers/

Notes

  • Programming and managing are different skill sets. The very thing that makes you successful at one level gets in your way at the next.
  • Managing developers is really a people kind of job with a technical background.
  • As a manager you need to learn how to make people feel comfortable talking to you so they will tell you what’s important and tell you what’s getting in their way.
  • Where do you want to spend your time and how do you want to spend your time? Do you want to spend your time helping a whole group of people to get that ecstatic joy, or do you want to be the one getting the joy?
  • What does success look like as a manager? It’s a feeling that the team is on the same wavelength, they’re gelling, they are becoming a high performance team. Helping individuals to see what their connection is to the bigger picture and how what they’re doing is delighting the customer. Team members have respect and trust for one another.
  • Being a good manager is avoiding bad management practices as well as executing on good management practices.
  • Set boundaries without micromanaging.
  • Set goals without telling people what to do and how to do it.
  • Enable developers to own the code they are working on and bring their best selves to that code and all of their best thinking and options and possibilities to that code and to create something better and to delight customers in ways they didn’t expect to be delighted.
  • Agile asks everyone on a team to step up and for teams to come together as teams. What micro management does is it causes everyone to step back. Programmers will become order takers instead of bringing their whole self to the set of problems and the software.
  • Remove the ambiguity in the what with very clear requirements and leave the how to the programmers.
  • Rule of thumb: you can’t over communicate on product teams.
  • Can a good manager take any group of individuals and turn it into a successful team? Software development is a team sport. Bozos and jerks don’t fit on a team. A good manager can recognize jerks and bozos and have a conversation with them explaining that we won’t have jerks and bozos on the team. Then asking if they would like to not be that or have help finding a different team.
  • How do you build a successful team? Pair programming with a potential candidate for 30 minutes will save everyone a huge amount of time. We learn how they program and how they collaborate. We also learn if they are someone we want to work with.
  • Always be recruiting!!!
  • As managers we need to be thinking about what our children values are and what our company is contributing to the world. What difference are we making? Be able to communicate that.
  • Managers spend a lot of their time in meetings. The challenge is to make sure we are working on the most important stuff. Create a backlog of things ordered by bringing the most value and having the biggest impact. Schedule time each day to think about what you can do to make a difference. Think about the big challenges you are facing and what you are going to do about it.
  • Make sure the right people are taking to each other about the right issues. “Socialization of ideas”: you realize the possible answer to a problem and talk to a bunch of people about that solution and build a consensus around solving the problem.
  • Ron lichty had an issue where the team needed to get off old infrastructure and an old model of doing things. He spent several months “running into” people at lunch in the cafeteria and presenting the problem and asking how do we solve this? When they got everyone together, they had unanimity in 2 hours on what would be done. Had this been a top down decision, probably would have resulted in people quitting, escalations, and frustration.
  • It is the manager’s job to keep the team motivated but there are others in the company that are responsible for that as well. It’s the managers job the help the team see the impact that their work can make. We need to make sure we don’t demotivate people. We need to make sure we have the other pieces of motivation in place so it’s a place that people have fun working and feel like they are in a second family.
  • Demotivators vs motivators: nobody jobs a company because of their administrative policies but they might leave because of them. People don’t leave companies, they leave managers. Programmers are usually motivated by making a difference in the world, learning and growing, toys and technology, having fun, recognition and praise.
  • Who should or shouldn’t become a manager? If you are all about the code and technology and you don’t want to learn the extroverted skills and learn how to motivate others you should continue as a programmer.
  • As a programmer you are judged on what you did, as a manager you are judged on how what you do is perceived. It is perception, not what you are doing. Perception means you have to communicate what you are doing to up and out so people realize the impact of what you are doing. Your job becomes one of communication.
  • Onboarding is an important low hanging fruit for managers to capture. Make sure the new hire shows up the first day. Counter offer or outside offers could pull them away. Managers also need to onboard new hires into teams. We need to help people to become effective faster and integrate with their team faster

Action Items

  • Obtain formalized management training.
  • Learn and take notes on good and bad management practices.
  • Study and get training on agile.
  • Schedule time into each day to reflect on biggest challenges, priorities, and what I’m going to do to make a difference.