Carl Bergenhem
July 31st, 2024
AI for Engineering Management: 3 Anti-Patterns
The AI gold rush has companies scrambling to integrate AI into their operations, leaving Engineering leaders with tough decisions on if or when and how to implement AI. The hype around tools like ChatGPT and GitHub Copilot can create a strong sense of FOMO: fear of missing out.
In this rush, it's easy to view AI through the lens of hard metrics like productivity gains and cost reductions. But doing so comes at a human cost, which more often than not will result in a negative return on investment in the medium to long term.
In this guide we’ll look at the darker sides of various applications of AI, particularly its negative impact on our team members, so we can take a more humane and ultimately smarter approach to using AI.
Anti-Patterns when implementing AI
Discussing the human aspects of AI is tricky, as AI's nature is to automate tasks currently done by humans. Even with the best intentions, we may end up harming people in our organizations.
Note: This isn't about spreading AI "FUD" (fear, uncertainty, and doubt). Rather, it's about considering the potential negatives alongside the positives.
#1 - Replacing team members with AI
One of the first applications of AI often discussed is staff augmentation or replacement. Currently, there may not be a case for completely replacing software engineers with AI, because the technology isn’t there. However, we do have an example from the realm of Customer Service.
Klarna
In February 2024 Klarna, a popular “buy now, pay later” service, announced that they had officially launched an AI Assistant that does the work equivalent to 700 customer service representatives. Just a year before, Klarna had let go roughly 700 customer service employees and went on a hiring freeze. It’s hard not to make the connection that these folks were replaced by the AI assistant.
Klarna’s AI Assistant boasted some pretty interesting statistics like reducing time to resolution from 11 to 9 minutes, reducing repeat inquiries by 25%, and keeping the customer satisfaction score the same as before when humans did the work. It is also projected to drive around $40 million in revenue for Klarna. All of these factors make the AI Assistant seem like a slam dunk. But is it?
Years ago we started seeing a shift in off-shoring and outsourcing of customer service operations, with leaders convinced that the cost-savings were worth the potential drop in quality. There was a race to the bottom for what counted as acceptable customer service.
The result of this trend? A fundamental feeling of customer service becoming worse all across popular culture, to the point where we may dread calling a customer service number. Also because of this trend, there are companies that look to stand out by advertising about employing locals who can pick up a customer call right away.
Is Klarna AI Assistant the beginning of a similar trend? One that precipitates a drop in quality, and leads to competitive differentiation through human-powered service by competitors of Klarna?
Devin
While I did start this section by mentioning that we don’t see software engineers being replaced by AI anytime soon, there is an example in our space called Devin, the self-proclaimed "first AI software engineer."
From the initial announcements and marketing materials, it seems like Devin can be used to fully replace software engineers. The company claims that Devin is capable of completing and getting paid for freelance jobs on Upwork, and passing modern software engineering interview exercises.
In reality, we’re starting to see more and more evidence that Devin does not quite live up to the hype.
If we had bought fully into the hype upon the launch of Devin and started to replace software engineers on our team, we would already be trying to rehire any of the people that had been let go.
The Lesson
Whether it’s Devin or another tool, rushing to replace engineering teams with AI could backfire. Companies that bought into the hype and let go of developers may find themselves scrambling to rehire and rebuild.
Before we immediately rush out to replace entire teams with AI assistants we should think about the long-term consequences. Ask yourself, is this a short-term gain but a long-term loss? Will we have to rehire and retrain team members to step in and fix the mess made by AI?
#2- Augmenting junior devs with AI
While tools like GitHub Copilot are extremely useful to boost developer productivity there is an interesting side-effect that seems to be occurring: an over-reliance on coding assistants with junior developers.
Most junior developers today have used GitHub Copilot, or a similar tool, for their entire professional career. Where generations of developers relied on using clever searches or uncovering topics on StackOverflow, the latest batch of software developers are using coding assistants within their IDE to suggest code snippets to use.
While this tends to work in many cases, there is a trend of stories popping up across social media platforms where junior developers get completely stuck when Copilot either fails to provide any suggestions, or creates wildly inefficient code snippets.
Normally in this situation, being stuck on a particularly hard problem can be solved by asking a more senior coworker for help. But hand-in-hand with the coding assistants there tends to be implementation of additional tooling to automate natural opportunities for pair programming or reviewing coworkers code. After all, should the more senior engineers not work on the hardest problems?
With a mix of over-reliance on code suggestions, lack of coaching and peer feedback, these junior developers may lack the necessary problem solving skills to get themselves unblocked. Solving difficult problems is how anyone learns and improves. While it is more time-consuming, being stuck on a problem for hours (or even days) and finally coming up with a solution actually helps software engineers improve their craft, moving from junior to senior one problem at a time.
With all the above in mind, it begs the question: how will junior developers progress to senior developers?
If we forgo the moments that encourage senior developers to coach junior developers and try to cut out moments of struggle that lead to the payoff of solving a problem and building experience - all for the sake of improving magical productivity numbers - are we inadvertently stopping the maturing of software engineering teams?
This problem will only compound as senior team members move to different parts of the organization, or leave an organization all together. You may not realize until it is too late that you have accidentally hollowed-out your organization and you desperately need to hire senior talent to come in and help fix the situation.
#3 - Automating recruitment with AI
There’s already a plethora of tools to help filter and make your way through big piles of resumes, but what if the entire interview process could be automated with the end result giving you a list of fully vetted candidates to pick from?
Micro1.ai is a new tool advertised as an “AI recruitment engine” to help engineering leaders to hire deeply vetted engineers fast. It doesn’t just read through resumes for you, it also interviews the candidate on your behalf.
As a part of this interview process it asks questions about their resume, or relating to the position. This even includes technical questions - including leetcode.
After the interview is done by Micro1.ai, the hiring manager can see a view for the candidate scoring their soft skills, technical skills, and all of the questions the candidate answered are recorded over video for review.
While this may look good on paper, especially if it leads to deleting hours of meetings from calendars, this implementation of AI does seem like it may be a big anti-pattern for what we are trying to achieve with interviewing candidates, because it overlooks the importance of human interaction in the hiring process.
The most successful hires often come from in-person meetings, where managers can gauge problem-solving skills, adaptability, and potential for growth. Automated interviews may miss nuances that only a human can pick up on, such as nervousness or misunderstandings. Reducing candidates to pass/fail metrics can overlook valuable qualities that are difficult to quantify.
Moreover, software engineering candidates will likely learn to game these AI interview tools. Just as engineers spend hours studying "leetcode" questions before interviews, some candidates will specifically prepare to "beat" any AI-driven interview process. The result will be a list of candidates who are best at gaming the algorithm, with little indication of their actual fit for your team.
Rather than using AI to reduce time spent on hiring, focus should be on improving the interview process itself, from both the candidate's and hiring manager's perspective. Technical interviews are becoming increasingly bloated and may be fundamentally flawed.
If software engineering interviews are broken, the solution is to fix the interview process, not automate a flawed and deteriorating process.
Using AI for a More Humane Impact
Let’s look into areas where AI can assist employees by reducing manual work and toil, and by helping them find valuable insights that we as humans can use to continuously improve our engineering organization. These will not only make our software engineering teams more productive, but also happier, which has a long-lasting positive impact on productivity.
#1 - AI to generate content
One of the main areas that AI models currently excel at is generating content, which includes text-based content like emails, blog posts, and technical documentation, as well as images and even videos.
These AI models are already good and they’re only getting better, but you’ll still need to check the quality of their outputs - especially its accuracy, because AI models have been known to hallucinate from time to time.
Without human judgment to decide what stays, what goes, and what needs reworking, you risk ending up with subpar content. This is the reason why we recommend using these AI models to solve the “blank canvas” problem, not necessarily to fully remove human touch from the equation.
Using AI this way is still beneficial, as it can help team members complete time-consuming content tasks faster and free up hours of their time. For many people, myself included, time management is often the most difficult part of any given day. The free time provided by AI can help them find more time for deep focus work - a time block that many of us struggle to find nowadays - or for getting further education. Whether this is through certifications, taking courses, or dipping their toes into a brand new skill that will broaden their skillset, having all of your team members gain more skills can only benefit your team and the organization as a whole.
#2 - Using AI to uncover patterns and insights
One area AI truly excels is at uncovering patterns and details that humans can easily miss amidst all the noise in the data. AI models that automatically and continuously find valuable insights and make recommendations on actions to take would be extremely useful to organizations, including Engineering.
Take, for example, a promise as revolutionary as screening for cancers in a single drop of blood. As of writing, this seems to now be achievable thanks to AI (not just achievable, but much, much cheaper). But remember that just a few years ago it famously resulted in the extremely public downfall of Theranos.
What is the difference here? Theranos relied on humans to create the technology and underlying algorithms while the most recent developments used AI to spot patterns that humans are unable to see.
While the data you look at on a daily basis may not necessarily relate to the same life-saving technology as cancer screening, you can still greatly benefit from findings from specialized AI models.
Imagine if the sprint retrospectives across your organization were AI-assisted. Before your engineering managers even started their own investigation of completed issues and shipped pull requests they had a full summary of what their team did, potential bottlenecks to watch out for, and a list of priorities that the team may want to focus for the next sprint.
Not only can this save your organization time, but it can also help your team improve the quality of the work that the teams are doing. It will also feed into the continuous improvement cycle as the AI model can spot improvement in your existing CI/CD process - improving how your organization ships code.
#3 - Using AI to automate tasks and workflows
Another area that AI can excel in is to take manual tasks that are done today and automate them. String a few of those automated manual tasks together and you can build pretty advanced workflows. This can help individual team members, entire teams, and even entire divisions automate manual work, reduce toil, and provide everyone with more focus time.
One great example is using AI to drive code reviews. As your software engineers write code and commit their changes into our source code, they can use AI tools to analyze the code they wrote to grade code quality, scan for potential bugs, or even uncover vulnerabilities.
Where previously tools in this space relied on blacklists and whitelists of included packages (especially with sources like npm), or static code analysis that looked for suspicious code snippets, modern AI can be used to find these patterns as code is written and committed, giving a pass/fail gate that can be used to feel confident that the quality of code is kept to a higher standard. In fact, platforms like GitHub are already offering this as a built-in service.
Using services like the above frees up more time for your software engineers to spend the time they normally use for reviews to instead coach and assist their peers when needed. This can be done in the existing review process, where everyone can focus on helping team members improve their craft, but it also means that time outside of the review process can be used to help team members more proactively (increasing pair programming opportunities for example).
The human side of AI
As we can see, there are many ways to implement AI. While some tools may have the best intentions, they may come at a very human cost. The nature of AI tools is to reduce things down to raw numbers, making it difficult to take a step back and see the forest for the trees.
I hope this post has inspired you to dig deeper into your AI strategy and options, and left you better informed as you navigate through the storm of AI products being thrown our way. Let’s find ways to use AI to empower our people to not only improve the way they work and collaborate, but also give them the time and space for growth.