How to Deal When Management Doesn’t Have Technical Knowledge
Every programmer knows how hard it is to speak to a non-technical person about development. Sometimes you luck out, and work for a company that fully understands the nuances of your work. At that point, the biggest communication challenges you’ll face will be with your friends at happy hour, or with your extremely non-technical mother-in-law. For the rest of us, each day is a lesson in communication as we work and collaborate with non-technical managers and company executives.
Aug 2019 - 4 minutes read
If you’re a developer working with a management team that doesn’t understand the nature of what you do, it can make your job extremely difficult. The onus is on you to communicate the value of your work, and ask for what you need in a way that can be understood.
If you’re a decent communicator, and are working with a good management team who genuinely wants to understand, you should be able to find common ground. However, what often happens is that managers are afraid of issues they don’t understand. This can lead to a critical breakdown in communication. With the success of the project on the line, tempers can run high and challenging personalities may rear their ugly heads.
Key Concepts Management Needs to Understand- and How to Communicate Them
To set yourself up for success when working with non-technical managers, it helps to focus on your communication. You don’t need to explain the nitty-gritty details of what you do, but you should be able to clearly and simply communicate basic technical information in a way that anyone can understand.
There are several key concepts that are important for non-technical managers to understand. These will bridge the gap between technical and non-technical staff, and help establish a common ground. The better you’re able to communicate these ideas to your leadership and management team, the easier your life will be.
Sometimes, Adding More Staff Isn’t a Great Solution
Working Smart and Working Fast Don’t Go Together
Adding Something in Isn’t a Quick Job
Sometimes, non-technical managers and other company leaders are tempted to throw more bodies at a problem in order to make the solution appear faster. It’s important for any manager of a technical team to understand that this solution almost never works in development. Adding more staff doesn’t speed the pace exponentially. At best, it may increase it incrementally, which is usually an unsatisfying outcome for management. Unless they’ve somehow managed to hire the perfect new staff member, it forces the rest of the team to slow down their own work to teach the newcomer the ropes.
If your manager ever offers to hire more staff to help expedite a solution on a project (and you don’t believe that will help solve the problem) it’s the developer’s responsibility to encourage management to trust in the team that they have. Show them the progress that’s been made, and explain that any addition to the team will need to have their work checked and double-checked by more senior developers. This takes time away from the task at hand.
Managers and other colleagues who don’t understand programming often expect programmers and devs to work at the same speed as they do. For them, this means showing visible progress at regular intervals, and being able to confidently estimate how much time a task will take. Non-technical managers can easily become frustrated with what they perceive to be a lack of progress, and may push their technical teams to work faster than is sensible.
If this happens to you, explain to your manager that working smart and working fast often don’t go together. In order to write the best code possible and produce the most functional project, it’s important to check and double check your work. It’s also important to think, to foresee, to plan in advance- and this takes time. These detail-oriented tasks often appear like you’re doing nothing. In reality, you’re doing key detail work that will ensure the success of the final project.
There’s no quicker way to elicit internal groans from a team of devs then to ask them to ‘quickly’ add something to the project. People who don’t come from a technical background just don’t understand that adding something in isn’t a quick task. It has cascading effects that are difficult to predict, and can lead to a major delay in delivery. Any simple addition will need to be checked and re-checked to make sure it doesn’t affect the integrity of the final product.
The next time someone comes to you to ask for a quick addition to the project, gently let them know that although it may appear simple, adding anything will require extensive tests and checks before it can be added safely into the project. Essentially, when someone asks you to add something in quickly, it’s a sign that they don’t actually know how long it’ll take. Your manager may be under pressure from other stakeholders and are simply passing that urgency on to you. By giving them a full picture of what they’re asking you to do, you can help them understand how it will affect the overall timeline of the project.
Working Effectively With Non-Technical Managers
Working in software development means that you’ll be exposed to many different leadership styles over the course of your career. The best managers will be able to work closely with you, regardless of their level of technical knowledge. These excellent managers will either understand what you’re going through, or will have enough trust in you to put the technical elements of a project in your hands. Managers who are less adept, or more insecure will demand a higher level of communication and patience as you work to find common ground together.
The best tool for working with any type of manager is a clear and direct communication strategy. Focus on explaining the more technical aspects of a project clearly. Use analogies that they’ll understand, and focus on educating them slowly on relevant concepts, including the ones we’ve mentioned above. Speak calmly, and patiently, even when you’re frustrated. Don’t make them feel like you’re condescending to educate them- it’s as important for you to be able to express these concepts simply as it is for them to understand them. Think of their lack of technical knowledge as an opportunity to learn how to express complex concepts in a simple, easy-to-understand way.