Creating a Culture of Engineering
by Keith Elder
Hiring
I am a firm believer that the first way to build a great culture is to hire the right team members. One of the most important jobs we do as leaders is interviewing. If you think about it, we are the gatekeepers. If you are new to leadership and do not have a lot of interviewing skills, I suggest you start with the Pulse's training on interviewing. There are questions that we cannot ask a candidate, and it is critical to know the ground rules. Also, it is important to understand your own biases, and keep them in check when interviewing.
For engineering roles, I am looking for the following qualities in a potential candidate:
- The candidate loves writing code.
- The candidate shows curiosity. For example, I might ask a question for which they do not know the answer. If they make it to the second round, I will ask the same question again, hoping that they have done their research.
- During an interview pairing session I am looking for a candidate that loves to communicate. I have found that those who talk it through in a step-by-step manner will continue that trend after they are hired.
- The candidate possesses a distinct ability to communicate clearly and enjoys explaining things of a technical nature. I might ask, "How did you build 'X' on your resume? Walk me through why you built it that way." If they can explain the process in simplistic terms then I know they will communicate in this fashion for future conversations and projects.
- The candidate possesses a nurturing and mentoring attitude.
Vulnerability
It is not easy for engineers to admit that they do not understand programming concepts. I am a firm believer that for a team member to grow, they have to be paired with someone that has a higher skill set. Engineers need a safe space where they can share their mistakes and shortcomings.
An engineer sharing their screen with someone is a big deal.
Some engineers do not like this process because they are afraid it will expose their shortcomings. It can also be intimidating, especially when associate software engineers are pairing with a senior. It is important that team members have patience and a nurturing attitude. This can serve as a safe space where the team member can grow which will help the team as well as the company.
Constant Communication
Writing software is a team sport. Gone are the days when a single engineer or team member knows everything. Thus, constant communication is important within a team, especially now that most teams are of a remote nature.
Teams is our default communication tool. We can chat, phone a team member, or share a screen. The "Ignore the Noise" factor with Teams is extremely high, especially if someone is a member of multiple teams. My advice is to create a single chat within Teams for those working on a software deliverable. So, if you have three deliverables, then create three chats (notice I didn't say "a team's channel."). With so many notifications, Teams can actually become counter productive for engineers, resulting in a lack of focus for those involved.
Another great feature of having a dedicated chat is the ability to quickly pair and start a pairing session. Just click the video icon at the top, and you and another team member are quickly connected. Others in the chat will get notified, and might also join.
Our team has had a dedicated chat for a long time. We call it PriceX Pairing.
Create Focus
Be a Shield
As leaders, one of our unwritten job responsibilities is to be a shield for our team. I have very simple rules in performing the shield role for our team. For example, if it is a task that I can perform on my own, then I will do it myself rather than interrupting the team's concentration. If I have to ping a team member, I will do it at a time that is best for them. If it involves something that is not time sensitive, then a team member can answer it asynchronously. For example, I might send them the following message:
async=> let me know when you plan on coming back into the office, I want to coordinate our schedules
An engineer filling out a TPS report spends less time working on tasks and writing code.
Dedicated Time
The second thing I do to create focus for our team is to block off afternoons for what I call the "PriceX Pairing Dojo Lobby." Because some team members have an early start to their work day, I schedule these from 1-4 p.m daily. All of our meetings, stand ups, continuous planning, one-on-ones, etc., happen before lunch, or at least we try to do so.
Because these hours are blocked off in the afternoon, engineers can have dedicated time for focus, and they know they can quickly reach out to the team if they need help.
Leaders Beware
Finally, the last part of creating focus is to remember the power we wield as Leaders, Directors, VPs, CTOs, and CIOs. When leaders ask team members to complete a task, even if they are busy, the "Yes before No" ISM should kick in. A problem can arise when all of these asks stack up. These asks can include the following:
- Technology surveys
- Train surveys
- Technology training
- Security training
- Regular engineering work
- Pulse training
- Agile training
- Technology OKRs
- Stream OKRs
- Train OKRs
- Team OKRs
- Personal iOKRs
- Quarterly DRIVE reviews
These things can start to stack up and create distractions. Unfortunately, as leaders we can pile on these tasks with just a few quick strokes of an email. It is important for leaders to consult with each other regarding the tasks that need to be accomplished, so that they can be carefully coordinated and timed appropriately. In order to have a highly functioning engineering team it is crucial to focus on what is going to move the needle forward.
Portfolio of Keith Elder