News & Insights

CodePath CTO: AI is enabling, not replacing, software engineers

Written by CodePath | December 6, 2023

The rapid adoption of AI is disrupting workflows for knowledge workers across various industries. Software engineering isn’t any different. In a GitHub survey, 92% of all developers claim to use AI tools at work or in their personal time.

But what does the future of engineering look like with the evolution of AI? Will AI replace engineers?

In this article, we sit down with Nathan Esquenazi, Co-Founder and CTO at CodePath, to discuss how software engineers use AI, possible challenges with scaling AI implementation, and what the future of software development could look like with AI. 

AI and changing developer workflows 

AI is already changing how software engineers generate code, problem-solve, and work with their teams. 

According to Esquenazi, every software engineer will be accompanied by assistant-like AI tools that understand basic coding, directions from its human engineer partner, and the organization’s role, which will help with:

  • Increased productivity
  • Faster experimenting and testing
  • Automation
  • Collaboration

Let’s look more closely at how AI is changing developer workflows. 

Increased productivity

While AI isn’t replacing software engineers, tools like GitHub and ChatGPT can help engineers increase their productivity.

Engineers can work with AI to complete routine and data-heavy tasks, including:

  • Quicker coding - AI tools like GitHub can help generate or review code alongside the developer. They can also identify potential coding errors and offer suggestions for improvement.
  • Data analysis - "I can already go to some of these generative AIs today, take in a database, and put it in a CSV,” Esquenazi says. "Then, you can ask it to give you a detailed comparison analysis."
  • Decision-making - Ask AI tools to help make software and business decisions based on goals, problems, and data.
  • Efficiency - Get how-to guidance on specific tasks, concepts, and errors.

Faster experimenting and testing

Software engineers can use AI to improve efficiency with experimenting and testing. Instead of manually testing each line of code or an entire system, speed up the process by working with AI.

Common types of software testing you might use to ensure a system is appropriately working are:

  • Localization testing - examines if a system correctly works for the environment (i.e., language and function)
  • Regression testing - verifies that an update hasn’t disrupted existing features
  • Automated testing - conducts pre-scripted test cases for repetitive tasks
  • Crowdsources testing - performs real-time manual tests by a crowd of experts
  • Exploratory testing - gives testers flexibility in how they analyze an application to discover potential bugs and test functionality

Engineers can use AI to perform some tests and analyze data. However, AI shouldn’t perform all tests, like crowdsourcing.

Esquenazi argues that human input remains necessary in experimenting and testing. AI doesn’t understand all imperative facets, including user experience nuances and business logic. For example, AI can develop small code samples with direction from a skilled software engineer, but it won’t go to the next development step.

Automation

According to Esquenazi, it is unlikely for AI to replace software engineers entirely in its current state or in the near future. However, AI will likely automate a certain percentage of tasks entry-level engineers perform, particularly routine ones like writing repetitive code blocks.

While automation handles specific tasks, engineers will have more freedom to focus on creative and strategic work. Engineering managers and leaders can view this as an opportunity to have entry-level engineers focus on more impactful tasks like discussing ideas with their team, designing software systems, and writing new code.

Collaboration

Most software engineers regularly collaborate and communicate with peers and cross-functional teams (i.e., design), and AI is making this easier.

More than four out of five developers expect AI coding tools to create more collaborative teams, per the GitHub survey. Groups can use AI tools to share codes, track changes, and give feedback.

“I have (AI Code Review) on GitHub. And so every time I or someone on my team pushes code to GitHub, there’s actually an AI that’s going through and reviewing the change request,” Esquenazi says.

Software engineers can also collaborate with AI on projects, which is especially helpful for early talent. For example, one can role-play and brainstorm with ChatGPT by giving a detailed scenario and constraints to help spark creativity.

Challenges with AI implementation in the workplace

While AI is already helping everyday software engineering tasks, these tools are still evolving. As Esquenazi puts it, we’re at the “birth of a revolution” in software engineering. But some challenges prevent teams from leveraging and implementing AI-driven solutions. 

Let’s explore these challenges of AI implementation: disjointed toolsets, coding issues, and security concerns.

Disjointed toolsets

The existing cloud software landscape makes it difficult to collaborate and share data across tools. Development processes still rely on the inputs of human engineers to solve platform concerns, define structures and frameworks, and integrate the entire tool stack.

To address disjointed toolsets, companies must research various AI software to find what works. GitHub has multiple AI features, including coding, collaboration, and copiloting.

Choose tools that can help you meet your objectives. Then, train your AI and software engineers to work together efficiently.

Coding issues

While AI can help developers generate code faster, there can be structural issues with AI-generated code - making and the act of relying heavily on AI.

  • Overuse - Relying on AI too much can create a lack of exposure to real-world complexity and critical thinking, leading to AI being used as a crutch instead of a helpful tool.
  • Bugs - While AI can help identify bugs, AI-generated codes also run the risk of including bugs.
  • Maintenance - If software engineers try to leave coding entirely up to AI, it can be difficult to maintain. While AI can create simple code blocks, it can’t keep up with its own software, and it’s up to engineers to identify issues and how to resolve them.

To overcome these issues, engineers shouldn’t rely completely on AI to build complex products. AI is a companion, not the lead.

Security concerns

Many companies lack mature data policies and practices, and sharing proprietary data with AI tools is a possible security risk. For example, your systems could become vulnerable to attacks and breaches of sensitive data if confidential information is exposed.

To address these concerns, train AI tools in secure coding practices and ensure engineer direction. Software engineers must be on standby to quickly respond to any issues.

The future of AI and software development for engineers and engineering leaders

The future of software engineering is evolving with AI, affecting both early talent and senior engineers. Esquenazi says to manage these changes, software engineers must upskill by learning how to:

  • Integrate these tools appropriately
  • Copilot with AI
  • Be more productive as AI helps with efficiency

AI also impacts how engineer leaders structure their teams and choose their tech stack. With the proper tools and training, AI can help engineer’s jobs and positively influence organizations. 

How AI impacts early talent

While AI isn’t replacing engineers or jeopardizing job security, it’s changing what roles look like. 

Early talent is at an advantage because, according to Esquenazi, “people who pick these skills up now are ahead of the curve to become the most valuable engineers.” He adds, "no engineer will be working without an AI copilot in the future, so knowing how to is essential." 

To successfully copilot with AI, emerging engineers need to learn:

  • New programming languages for suitable AI development
  • Machine learning for data analysis 
  • Critical thinking for managing results

A growth mindset is also necessary since developers must continue adapting and receiving skills to work alongside these evolving tools effectively.

How AI impacts technology organizations

For technology organizations to succeed, they must grow with AI. Companies need to leverage existing talent and the perspectives of senior leaders to guide their teams through current and future changes.

In the coming years, AI will impact how companies:

  • Plan for the jobs of tomorrow - Existing roles will change as engineers do more with AI’s help. New roles might include data science, AI ethics, and AI integration.
  • Redefine hiring standards and criteria - New hires should have appropriate skills for effectively working with AI. Esquenazi states that even though AI can handle specific tasks, it also creates new ones, which new hires need to be able to do.
  • Train employees - Organizations must appropriately train early talent on their tech stack and empower current employees to learn how to implement AI into their jobs.
  • Discuss and make decisions with leaders - Revise decision-making processes to implement AI to improve efficiency while still considering human insights. 

The AI-enabled future of software engineering is here

Organizations that get ahead of the curve and keep up with the changing landscape of software engineering will have the most success. Companies can do this by aligning their workflows, tooling, and talent acquisition.

As engineers are sharing tasks with AI tools, developer workflows are changing. This is helping engineers increase productivity, experiment and test faster, automate more tasks, and collaborate. While AI tools help handle routine and data-heavy tasks, engineers can spend more time on complex and creative projects.

With AI evolution comes challenges, including disjointed toolsets, coding issues, and security concerns. You can overcome these by properly training AI tools and ensuring engineers appropriately use AI without solely relying on it.

Companies must regularly re-evaluate and revise tooling for engineers to implement AI as it continues developing. It's important to hire talent with modern skills and a growth mindset to continue upskilling. You should also plan for future jobs as AI evolves and revise training processes as needed.