16 Aug 2023 · Culture

    Will AI Take Software Engineering Jobs?

    6 min read
    Contents

    The discussion regarding whether AI will supplant software engineering jobs has been in the air since companies like OpenAI, Google, and Facebook launched various LLM models, including GPT-4, Bard, and Codex. These models handle numerous tasks, such as code completion, code generation, and documentation, up to a certain level. But does this threaten the livelihood of software engineers? In this article, we’ll explore the potential impact of AI on the role of software engineers. Additionally, we’ll delve into the advantages AI offers to software engineers and the tools available to enhance their productivity.

    Human vs. AI Programmer

    A software engineer’s role encompasses more than just coding or debugging. Daily, they engage in a multitude of tasks, ranging from requirement gathering and drafting design documents to architecture design and writing tests.

    In this section, we’ll juxtapose how an AI programmer approaches engineering tasks against the methods of a human programmer.

    For clarity, let’s evaluate a few software engineering tasks.

    Task 1: Draft an SQL query to retrieve products with the highest prices from the products table.

    We prompted GPT-4 to generate an SQL query for this task. Here’s the output it produced:

    It’s evident that the query it generated is correct. Let’s test another task.

    Task 2: How do you design a database schema for an e-commerce website?

    What might GPT-4’s output be? Would it actually design a database schema or merely offer information? Let’s review the results.

    AI software engineering

    For this task, GPT-4 produced database models with key constraints, which could be suitable if they meet the requirements for an e-commerce platform. However, the output lacks critical details such as the relationships between tables and necessary indexes, both of which are pivotal for scalability and performance. Furthermore, the model didn’t include visual aids like an ER diagram, which was anticipated.

    After examining both tasks, it becomes clear that AI models excel at straightforward assignments that demand specific information. However, when confronted with intricate engineering tasks like designing a database schema, architecture design, or refactoring, they don’t quite deliver the comprehensive results one might hope for. Such tasks necessitate a thorough grasp of the requirements—a domain where human programmers, like you, still reign supreme.

    You might ponder whether AI could easily adapt to this too, and you’re not wrong in thinking so. Yet, there remain many areas where AI falls short. It’s essential to remember that these models are predominantly trained on historical data.

    For instance, consider this response from GPT-4 when prompted about “How to use the Next.js AI SDK with my app.”

    Benefits of Using AI in Programming

    From the previous section, it’s evident that AI can assist with numerous tasks. In some instances, it delivers precisely what we need, while in others, it offers enough context to guide us. Here are a few advantages of incorporating AI into our daily workflow:

    • Increased Creativity: Envision having an engineering task. You’ve found a solution, but believe there’s room for improvement. AI models, like GPT-4, can suggest enhancements or better alternatives.
    • Generating Ideas: Earlier, we observed that when prompted, GPT-4 offered a foundation for a database schema. Similarly, if you’re ever uncertain about an issue’s resolution, an AI assistant can provide context.
    • Debugging Code Faster: If debugging consumes hours of your day, AI can alleviate this. Simply feed it your code and error logs, and it can propose a solution or even rewrite the code if necessary.
    • Improved Productivity: While the advantages of AI are manifold, the ultimate aim for developers is boosted productivity. Imagine asking GPT-4 to write unit tests for a specific class. If it produces tests that are 90% accurate, only minor adjustments are required. This speed in creating tests frees up time for other duties. This is but one example; numerous situations exist where AI can amplify productivity.

    Diverse AI Coding Tools

    By now, the merit of coding AI assistants is clear. But which one should you choose? Below are some options, each with unique offerings:

    • Cody: Developed by Sourcegraph, this free AI assistant features Cody Chat for programming-related inquiries. It offers auto-completions and “recipes,” which are predefined prompts applicable directly to chosen code. Notably, it uses your entire codebase context when providing results.
    • GitHub Copilot: A product of GitHub, this assistant initially focused on auto-completions. While its early iterations might have been less than stellar, recent updates offer more relevant suggestions and code snippets. An upcoming feature, Copilot Chat, aims to address a broad spectrum of programming queries.
    • Codium AI: Codium’s main thrust is aiding developers in rapid test writing. While I found their test generator somewhat lacking for my needs, their test case generation and other tools may suit many developers. They’ve also introduced a product called PR Agent.
    • OverFlow AI: StackOverflow has announced its intent to launch an AI assistant for IDEs. Their goal is to harness StackOverflow’s expansive data and expertise to create an AI model offering suggestions directly in the IDE. Although it’s still in its infancy, its potential is intriguing.

    While this list highlights a few AI coding assistants, myriad companies are pioneering AI tools to assist developers. It’s worthwhile to explore several options and identify what complements your workflow. Remember, the goal is augmentation, not replacement. Embrace these innovations and see how they can elevate your coding experience!

    Future of AI Dev Tools

    The utility of AI coding assistants for today’s developers is evident. Yet, will their capabilities be confined solely to coding tasks? Aspects like CI/CD pipelines, version control workflows, and documentation also beckon. AI’s role in automating and enhancing various facets of software development is set to expand. Here are some potential advancements:

    • AI-Assisted Version Control: AI can scrutinize code alterations, suggest apt commit messages, identify potential merge conflicts, and recommend pull requests. Such interventions promise a more seamless version control process.
    • CI/CD Automation: AI models can evaluate code modifications and autonomously activate CI/CD pipelines, deploy shifts to designated environments, and execute rollbacks if required, ensuring expedited deployment.
    • Documentation Generation: Rather than manual drafting, AI has the capability to create documentation from code annotations and examples, conserving developers’ time.
    • Issue/Bug Triage: By examining issue submissions, AI can direct them to pertinent teams or developers based on content and tags, thereby hastening the resolution process.
    • Security Analysis: AI tools can pinpoint potential security breaches within code and suggest rectifications.

    Conclusion

    This article highlighted AI’s prospective influence on software engineering vocations. It’s irrefutable that AI, in its burgeoning capacity, aims to bolster software engineers in refining their craft and amplifying their efficiency. We also explored various AI-centric tools beneficial for day-to-day development activities. We welcome your perspectives on this topic—please share your thoughts in the comments!

    2 thoughts on “Will AI Take Software Engineering Jobs?

    1. The intersection of AI and software engineering is an exciting space, and your article explores it brilliantly. It’s clear that AI is shaping the future of software development. The real-world examples and insights you shared are invaluable for anyone in the tech field. Get more information related to this article on connect2luton.co.uk.

    Leave a Reply

    Your email address will not be published. Required fields are marked *

    Avatar
    Writen by:
    Deepak Kumar is a full-stack developer with two years of experience, experienced mainly in React.js and Flask. He is also an open-source contributor and creates technical content related to development. Lately, he has also developed a keen interest in AI-assisted development, aiming to explore how artificial intelligence can streamline and revolutionize software development.
    Avatar
    Reviewed by:
    I picked up most of my skills during the years I worked at IBM. Was a DBA, developer, and cloud engineer for a time. After that, I went into freelancing, where I found the passion for writing. Now, I'm a full-time writer at Semaphore.