Developers on Autopilot: How AI Assistants Are Transforming Software Development
Are AI Tools Helping or Hurting Developers’ Core Skills?

On Dec. 28, 2014, flight 8501, an Airbus A320–200, crashed into the Java Sea just one hour after taking off from the Indonesian city of Surabaya. All 162 people on the plane lost their lives in the crash.
Crash investigators concluded that the failure of an important computer system that helps control the plane’s rudder and the crew’s attempt to reset the system by removing and replacing a circuit breaker caused the crash.
Turning the system off and on by replacing the circuit breaker is sometimes done when the plane is on the ground. However, doing the procedure in flight disengaged the plane’s autopilot and auto-thrust systems. Subsequently, the pilots could not keep the aircraft under control.
While the failure of a critical system was a contributing factor, the pilots’ inability to manually fly the plane after the autopilot disengaged was another key issue.
Similarly, software developers today have powerful AI copilots, like GitHub Copilot and Amazon CodeWhisperer, that assist with coding. However, this reliance on automation raises concerns about how developers maintain their skills when faced with situations where they must manually navigate complex problems.
In this article, I will explore the similarities between the autopilot systems used by airplane pilots and the AI assistants available to developers. By examining studies on the effects of automation on pilots, I will draw parallels and identify lessons that we, as developers, can apply to our use of automated coding tools.
The retention of manual skills in the cockpit

In modern aviation, autopilot systems have become essential tools, enabling pilots to concentrate on other critical tasks. Several research studies have investigated how these systems influence manual flying skills within automated cockpits.
In their study, Stephen M. Casner and his colleagues aimed to understand how prolonged use of cockpit automation affects pilots’ manual flying skills. They concluded:
We found that while pilots’ instrument scanning and aircraft control skills are reasonably well retained when automation is used, the retention of cognitive skills needed for manual flying may depend on the degree to which pilots remain actively engaged in supervising the automation.
Furthermore, the study implies a need for training programs that encourage pilots to stay actively engaged with automated systems to maintain their cognitive flying skills.
In another study, “The Effect of Automation on Human Factors in Aviation,” Jamie P. Brown et al. examine how modern-day automation impacts pilots’ skills and performance. They conclude that:
Automation has been proven to improve human performance under normal conditions, but in the event of an automation failure, performance decreases regardless of human or machine capabilities.
They also highlight how complacency and automation bias can undermine flight safety. The paper stresses the importance of maintaining a balance between automation and manual control, emphasizing that pilots need to be actively engaged and trained to manage automated systems effectively.
In a final study called “Effects of Automation and Electronic Devices on Board Aircraft on Pilot Skills, Training Requirements, and Flight Safety,” Daniela Ficová et al. highlight how cockpit automation supports pilots’ strengths but also brings challenges, such as skill degradation and reduced situational awareness. They conclude that
The trend of aviation surely shows the need for even further increase of cockpit automation, but to maintain safety, it is necessary to keep up with the evolution and adapt also the pilot training and education.
All these studies illustrate the dual-edged nature of cockpit automation, highlighting the potential risks and benefits associated with increased reliance on automated systems.
They all emphasize the importance of balancing automation with manual control and underscore the need for ongoing training to ensure pilots remain actively engaged and capable of handling unexpected situations.
Similarly, AI-powered assistants like GitHub Copilot in software development offer great promise for enhancing productivity but pose potential challenges regarding skill retention and critical thinking.
The developer’s autopilot

I have always strongly advocated for tools that enhance my productivity as a developer. Whether it’s quicker hardware or utilizing tools like ReSharper or the latest JetBrains IDE for refactoring or generating function skeletons, I’m always looking for ways to streamline my workflow.
Given this, it should be no surprise that I’ve been using ChatGPT and GitHub Copilot for almost two years. I use them extensively for designing, coding, and even rubber ducking. In my experience, these tools have significantly boosted my productivity.
The impact of these AI-powered assistants on developer productivity is not just a personal observation. Several studies have explored this phenomenon in detail.
In the paper “Measuring GitHub Copilot’s Impact on Productivity,” Albert Ziegler et al. investigate the influence of AI pair-programming tools like GitHub Copilot on developer productivity.
The study confirmed my feeling that AI tools significantly boost developer productivity. They note that junior developers experience the most significant gains. Further, the study highlighted that the benefits span various productivity aspects, such as task time, product quality, cognitive load, enjoyment, and learning.
Another study showed the possible negative implications of using GitHub Copilot. In the paper “Coding on Copilot: 2023 Data Shows Downward Pressure on Code Quality,” William Harding and Matthew Kloster analyze the impact of GitHub Copilot on code quality. They conclude that
AI-powered code assistants may increase code churn and decrease maintainability, urging developers and engineering leaders to monitor their code quality carefully and prioritize code reuse.
Although I did not find any research explicitly addressing the decline of cognitive skills among developers using AI assistants, I’ve been contemplating the parallel between an airplane’s autopilot and us as developers.
Does our skill deteriorate if we continue using these tools without additional training? Or should we view them as another layer on top of our programming language? After all, we don’t program in assembler anymore — at least, I don’t. Perhaps it’s just a matter of evolving to a higher level of abstraction.
Like airplane pilots, I believe it’s only a matter of time before we see a decrease in complex problem-solving skills among developers who rely too heavily on these tools.
In the next section, I’d like to explore how we can continue using developer copilots while maintaining our problem-solving skills.
Balancing automation and manual skills

All the research regarding the use of autopilot in aviation points to a common theme: while automation enhances performance during routine operations, it can lead to skill degradation in pilots, especially regarding manual flying and cognitive tasks.
The aviation industry has responded to these findings by emphasizing the need for training programs that encourage pilots to stay engaged and maintain their skills. This ensures they can take over when automation fails, or they need to perform complex tasks manually.
In the same vein, software developers using AI-powered tools like GitHub Copilot need to balance the benefits of automation with the retention of their problem-solving and coding skills.
The lessons learned from autopilot research suggest that developers should actively engage with their code, critically assess AI-generated suggestions, and practice manual coding regularly.
Sharpening your saw
You have probably heard the story about sharpening the saw. If not, it comes from Stephen Covey’s book The 7 Habits of Highly Effective People. In Chapter 7 of the book, Covey writes the following:
“Suppose you were to come upon someone in the woods working feverishly to saw down a tree. ‘What are you doing?’ you ask. ‘Can’t you see?’ comes the impatient reply. ‘I’m sawing down this tree.’ ‘You look exhausted!’ you exclaim. ‘How long have you been at it?’ ‘Over five hours,’ he returns, ‘and I’m beat! This is hard work.’ ‘Well, why don’t you take a break for a few minutes and sharpen the saw?’ you inquire. ‘I’m sure it would go a lot faster.’ ‘I don’t have time to sharpen the saw,’ the man says emphatically. ‘I’m too busy sawing!’”
This approach, often referred to as “sharpening the saw,” encourages continuous improvement and helps developers stay engaged with the fundamentals of coding, even while utilizing advanced tools like AI pair programmers.
One effective way for developers to maintain their skills is through deliberate practice. Techniques like code katas, coding challenges, and using sites like Codewars or LeetCode can help developers sharpen their problem-solving skills and keep their coding abilities sharp.

Final thoughts
This article underscores the importance of developers actively engaging with AI tools like GitHub Copilot to maintain their problem-solving and cognitive skills, even as these tools assist with routine tasks.
Just as autopilot systems have changed how pilots navigate their roles, AI-powered assistants are transforming software development. The parallel between pilots and developers is clear: both must balance the benefits of automation with the need to retain their core competencies.
Research into the effects of cockpit automation has shown that while it enhances performance during routine operations, it can lead to skill degradation, particularly in manual and cognitive tasks.
Similarly, studies on AI pair-programming tools have highlighted potential productivity boosts but also potential negative impacts on code quality and maintainability.
To remain effective, developers should strive to stay engaged, critically assess AI-generated suggestions, and practice manual coding regularly.
Adopting habits like sharpening the saw through deliberate practice, coding katas, and solving coding challenges on platforms like Codewars or LeetCode can help developers maintain their skills and adapt to evolving technologies.
In conclusion, while AI tools offer great promise for enhancing developer productivity, balancing automation with ongoing skill development is crucial to ensuring developers can effectively handle complex problems and unexpected situations.
If you’re a developer using AI-powered assistants, take a moment to reflect on your coding habits. How often do you engage in manual problem-solving without relying on AI suggestions?
Challenge yourself to spend some time each week practicing manual coding or tackling new coding challenges to maintain your skills.
Please share your experiences and tips for balancing automation with skill development in the comments.

This story is published under Generative AI Publication.
Connect with us on Substack, LinkedIn, and Zeniteq to stay in the loop with the latest AI stories. Let’s shape the future of AI together!
