In this article, I will discuss hiring and motivating technical polyglots. A polyglot is a person who speaks multiple languages at a conversational level, and according to preply.com, more than three languages.
When it comes to spoken languages, I’m one of the 240 million people who only speaks English in my household here in the U.S. (Statistic from census.gov from 2019) I am what one would consider monolingual, and yet I spend my workdays working with many different languages. They are not spoken languages, but rather typed into tools to generate solutions for customers. I guess that makes me a polyglot for computer languages.
Yet, that is not a title I chose to actively pursue, but rather a result of the fact that these languages are the “lingua franca” for accomplishing a task when working with computer language. In the Data Analytics space, Microsoft is well-known for introducing (some may say forcing) different languages across their menagerie of products.
In my work in data analytics, I’ll use the following languages on typical projects:
- T-SQL – For transforming data and building views of that data for downstream consumption.
- Power Query – Also known as M, this language is the underpinning for building Power BI dataflows and datasets (errr… Semantic Models). This language is necessary to mash-up disparate data sources into data models.
- DAX – Within Power BI, this language is needed to build dynamic aggregations and calculations.
- Workflow Definition Language – Ever built an expression in Power Automate to coordinate Power BI dataflow refresh? Well, that has its own language as well.
- PowerShell – Where Power Automate has its limitations, we need to automate tasks to save time and money. PowerShell offers this capability since it has a host of libraries to interact with the Microsoft products we use.
- YAML – Much of these automated tasks are orchestrated via GitHub Actions or Azure DevOps and YAML is the language that describes the order of operations for execution. YAML stands for Yet Another Programming Language, which tells me I’m not the only one who understands the proliferation of languages that must be learned in the technology field.
That’s six languages! Imagine having to learn conversational Spanish, French, Japanese, Dutch, Japanese, and Vietnamese to accomplish a project? That’s no small feat. Many of you reading this article could name many more you deal with like Python, R, C#, Java, JavaScript, Bash or Power Fx; not to mention that there are different ways to program in the many other data platforms out there.
Many of the marketing offices at Microsoft will tell you their tools are almost all low code, so you don’t necessarily have to learn the language to use the tools. That’s all well and good until you hit that 10% of the project that requires you to roll up your sleeves and work with the language so that your customer gets the feature they want.
So how do we cope with the number of languages required to be successful with building Data Analytic solutions? Well, over the years my project teams have focused on hiring technical polyglots and then motivating the team to expand their knowledge with other languages over time.
This approach has been successful for forming our project teams and maintaining effectiveness of the team over time. No one person will know all the languages to be successful, so you must build and enhance your team to be a diverse set of technical practitioners.
Hiring Polyglots
To know if a candidate is a polyglot, I find an assignment is the best approach. After an initial interview with a candidate, I will provide them with a document describing a scenario and a set of tasks to complete before the second interview. Between the first and second interview the candidate is required to complete the tasks on their own time and communicate with me on their progress or if they have any questions. This scenario will be largely dependent on their familiarity with the languages and tools I am looking for to hire.
For example, if I am looking for a seasoned Power BI developer , I may set them up with a scenario working within a Microsoft E5-licensed environment. In this scenario the E5 License provides each user of that customer with a Power BI Pro license whereby access to Power BI is inherently provided. Within this scenario, I then ask the candidate to combine SQL and SharePoint lists together into a Power BI semantic model along with a few visualizations requiring DAX measures. At least 3 different languages (T-SQL, Power Query, and DAX) would be required of the candidate to use in order to complete the tasks. Generating each assignment does requires some up-front work , but once they are established, you can reuse them for future hiring needs.
Moreover, I’ll typically create an assignment , perform the work myself or have few others perform the work, so I can understand what the time commitment may be as well as any areas I may need to refine within the assignment.
Regardless of the assignment, I’ve found the following approach to be helpful:
Get the Estimate – Provide a written assignment to the candidate and ask them to verify they understand the assignment and provide an estimate for completion. I’ll usually add an additional task that covers a language/tool that may be outside their comfort-zone as well; since this helps to identify a candidate’s aptitude for learning.
This first step is crucial because it will be my first chance to understand their communication style and how well they convey their estimate for completion.
Monitor Communication – I then note a candidates’ feedback and questions during the execution of the assignment. If a candidate is asking clarifying questions, that’s usually a good sign. If a candidate gets close to their estimated deadline and informs me of a delay prior to reaching that deadline, that’s usually a good sign too.
This step helps me understand the type of experience I may have when giving this person an assignment in the future, and how well they could communicate on a real project.
Assess in Real-Time – When the candidate has completed their assignment, we schedule a second interview during which they have a chance to demonstrate the work they did. This is a pivotal step as you can usually tell how familiar the candidate is with the languages and tools when they have to explain the syntax or navigate the tools in real-time.
I’ll also take the opportunity to ask them to adjust something during the interview to understand how quickly they can make a change to the language/tool and/or what techniques they use to come up with a solution. This is a good time to note that I never fault a candidate for using search engines or large language models to assist in their work. We all use these aids in real-world work, so removing those aids doesn’t represent the reality of the situation.
Moreover, with the advent of tools like Chat-GPT and Copilot for GitHub that can help accelerate work, I believe that if a candidate can demonstrate the usage of these tools and verify the results (don’t just blindly trust the results), it is a differentiator amongst those in the industry.
Then Evaluate – I found that with these steps executed, my team and I can make an educated decision on hiring someone who can work with these multiple languages, but also their aptitude to learn. The next release of a new Data Analytics product may only be the next major conference away, so I know how well a candidate can get up to speed. In addition, I don’t expect perfection in completing the assignment and often this second interview lays the foundation for what type of training or opportunities I need to provide them (should I hire them) to enhance their technical capabilities.
Motivating the Team to Learn More Languages Polyglots
While we try to have a diverse team who knows many of the languages and tools needed to satisfy our customers, we can’t be complacent.
Complacency in Data Analytics will lead to failure in two ways: 1) We “age-out” of our technical capabilities and won’t be able to meet customer needs and 2) we create heroes on the team who cannot take vacations or cannot advance their careers because no one else can do their work. Therefore, I coach my technical leads to take the following steps with project teams:
- Reduce Heroism – Straight out of the DataOps playbook, this requires the lead to look for the actions of the team members that if they were suddenly unavailable, would be detrimental to the success of the project.
For example, a team member who is the only one who knows how to execute and update the backup and restore job for a Power BI semantic model. Our technical lead should set time for another person to learn that skill and document/record the steps. This helps the “hero” to be able to take vacations or learn something new and empowers other staff to learn another language/skill.
- Reassign and Training Tasks – Have a team member who works with DAX and Power Query exclusively on the project? Help them learn a new language by first showing them Power Automate and assigning them the task of coordinating a dataflow and semantic model refresh.
Setting aside time (and it doesn’t have to be a lot of time) for a teammate to try a new skill and apply that skill (with oversight and supervision) empowers your teammate to be more capable and allows the lead to be nimbler when assigning future tasks on a project.
Summary
In the last 10 years as Microsoft has demonstrated, the number of computer languages we must learn in order to build solutions for our customers will not abate. Therefore, our project teams must look at ways to build a diverse team that can execute at a high-level for customers.
This approach of hiring polygots and motivating team members to learn more languages is one I have found to be both successful and invaluable, and I hope you do as well.
Load comments