There are two big problems facing technology companies in the United States today; microprocessor supply chains and finding engineers to get the job done. If you are experiencing one of these issues, or heaven forbid both, you’re not alone. The good news is that there are things that can be done to help minimize the impact of these issues. I’m not a talent expert, but I am a consultant who has been working through these issues successfully with clients and colleagues. In this post, we are going to explore what teams can do to get the job done when they can’t fill their open engineering positions or find enough people. In my next post, we’ll explore what embedded developers can do to manage microprocessor supply chain issues.
When it comes to getting the engineering job done with a talent shortage, you’ll find there are a plethora of options. Some options will apply to nearly all companies, while there will also be solutions that are company-specific. If you are running into talent shortages, I encourage you to ponder each of these tips and evaluate your specific companies’ challenges. Then develop a strategy and execute it.
Tip #1 – Modernize Development Processes
My first suggestion is that you consider getting more efficient. If you are currently short on help, even if you suddenly find ten talented engineers, it may take 2 –4 months for them to get up to speed and possibly longer. There are always HR processes that make the first month at a new job a walk in the park.
The place to focus your attention is the processes that you use to develop your embedded systems. If your company has been in business for more than two years, the odds are that you are using legacy development processes. Just in the past year, I’ve encountered teams with the following characteristics:
- Using antiquated revision control systems like Visual Source Safe
- Manual testing, no automated test harnesses, or unit tests
- Manual spot check quality controls
- No design or code reviews
- No use of emulators or simulators
- Lack of consistent development processes
- Ignorant of modern best practices, tools, and methodologies
In some of these cases, the team was literally developing like it was in 1999.
Modernizing processes might feel like it will take you longer to get the project(s) done, but feelings can be deceiving. I can’t tell you how many times I delayed using a new technique like TDD, CI/CD, etc because I thought the learning curve would be too steep and I’d lose time. When I eventually dug into the topics, I regretted not doing so sooner because it actually saved me time!
Tip #2 – Invest in Your Team
The greatest resource to any business is its people. One way to improve efficiency is to invest in your people (team). There are several different ways that this can be done. First, make sure that they have the right tools for the job. I can’t tell you how many times I find professional developers trying to save $1,000 on a tool by substituting tens of thousands of dollars worth of their labor. Educate your team that you’re willing to pay the extra money to save them time and get them what they need to do the job the right way as fast as they can. After all, that $1,000 could get a project done weeks early and once purchased continue to provide a return on investment long into the future. (Let’s be honest too. While that $1,000 feels like a lot to a manager or developer from a personal standpoint, it doesn’t even make the decimal point for a successful business).
The second way to invest in your team is through education. Education can play a big role in a team member feeling wanted. After all, if you are investing in their education, that means you want to keep them around. Education doesn’t need to be college degrees. It can be as simple as asking your team if there are any books that they would like to purchase. There are tons of fantastic books, short courses, online training, online conferences, and in-person training courses available. (Well, for in-person it may depend on vaccination status and whether you are reading this post-COVID). Again, be proactive and ask your team. Chances are they don’t feel comfortable requesting such activities because it makes it look like they don’t know something they should. (Even though this isn’t the case and the industry changes at a neck-breaking pace).
One final investment that I want to point out is that you can also invest in your team’s mental health. I’m not talking about a counselor unless it is necessary, but about not overworking the team. It’s easy when there is a lot to do, time is short, and there is not enough help to push on the team to work long hours to get the job done. This is one of the worst things that can be done. Pushing a team hard for too long will just burn them out and decrease their efficiency. Instead, carefully balance how much extra time is spent at work. Force the team to take days off, recharge, and stay fresh.
Tip #3 - Revamp the Management Team
I interact with a lot of engineers and managers throughout the year. One observation that I have currently made is that people who move on to other jobs are generally not happy with their boss and/or the company management team. I’ve seen fantastic workers leave because management doesn’t get it. Management doesn’t have a vision. They have a poor strategy. They don’t communicate with their staff and leave them hanging or fumbling to figure things out on their own.
Now this applies to companies that are struggling to retain their talent and have a higher rate of turnover, but it’s an important consideration for all management teams. If you can’t find workers or keep them, it’s probably not a problem with the workers. It’s a management problem. Management needs to carefully examine how they interact with their team. Examine the narrative. What story and vision are being portrayed to the team? Is it exciting them? Is it resonating with them? Is it not just about dollars, but also about people, the greater good, etc? Are they actively listening to and addressing concerns, or do they just brush it off? (I left my first job at a Fortune 500 company because management brushed off my concerns and suggestions).
I’m not suggesting that management coddle their team, but partner with their teams. The more the team understands their purpose and the shared vision, the more willing they are to dig in and get the job done. If management can’t do that, they either need to be educated or replaced.
Tip #4 – Rework the Narrative
Attracting talent to a company requires more than just a great salary and benefits. Don’t get me wrong, it definitely helps. However, the company narrative, the vision, the purpose, even the struggle can be powerful tools to persuade talent to join a team. If you’re finding that lots of candidates are coming through, but you can’t get anyone on board, take some time to review your narrative. Is the common story told in a way that it evokes strong emotions? Does the company give back to the community? How is it different from other companies the talent might be interested in?
I believe that a lot of developers want to make a big difference. They want to play a big role. They want to know what they do will impact society or the customers. Every business has an epic story to tell. Are you telling the right story?
Tip #5 – Develop Partnerships
If you can’t find engineers, or enough help, one path to still successfully getting projects completed is to develop partnerships. Partners can help pick up the slack when times get tough. Partners could provide engineers or take on portions of a delivery. Partners can also help a team become more efficient. They can come in the form of strategic collaborators, engineering companies, mentors, or consultants (full disclosure, I’m a consultant).
When you look at having a partner to help you complete a project, there are a few things you should look for and do. First, never outsource or have someone else do the work that is your core competency, or secret sauce. If you have the internal talent and strengths to do something, then do it. Instead, identify the busy work, the non-product differentiator pieces to bring a partner on for. For example, if you are not embedded process experts, don’t try to develop that talent internally. Instead, get an outside source to come in and help. If you aren’t a design expert, have an embedded architect help design the system.
Partnering with companies and consultants should replace your companies’ weaknesses with your partner's strengths. The result is a well-rounded company, that has just the right internal talent, but the flexibility to pivot external talent so that the development team is efficient and can get the job done with less.
Finding and keeping engineering talent can be challenging. When you are short-staffed, that doesn’t mean you have to fail or deliver late. Instead, if you are careful and thoughtful, you can apply some of today’s tips to take what you have and make it more efficient. You can retain key talent and personnel. How you navigate the labor markets, and your team will depend on the challenges you currently face. Every team is and business is slightly different. However, the tips I’ve identified today should provide a good starting point to helping you navigate your own talent shortages.
Jacob Beningo is an embedded software consultant who works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees, including a Master of Engineering from the University of Michigan. Feel free to contact him at [email protected], at his website www.beningo.com, and sign-up for his monthly Embedded Bytes Newsletter.