Rethinking Software Programming: AI-Assisted Development

Rethinking Software Programming: AI-Assisted Development

We now live in a time when it's possible to develop an app using natural language, without any prior programming experience. This was unimaginable just a few months ago, however, AI made it a reality. Nonetheless, while non-programmers can create simple apps, doing so may introduce significant security vulnerabilities and technical debt. Therefore, it is mandatory to understand both traditional programming principles and how to collaborate with AI in the coding process effectively, as well as to rethink the way we see development.

AI-assisted development (AIAD) refers to a collection of tools and methods that use AI and ML algorithms to transform how software is built and is something to learn in itself. In this article, we will discuss a few aspects that come with AI coding, from agent tool calling to parallel tasks, and from prompting to building context, keeping in mind that knowing programming principles is still essential for secure and maintainable code.

AI Coding: The Why and the How

Tools such as Cursor, Microsoft Copilot with Visual Code, Replit, and others can help in developing software faster. However, some rules need to be followed if you wish to develop a great app. Think of AI as your AI-powered pair-programming buddy that’s integrated into your workflow.

Agent

In the context of AI-assisted development, an agent is a program that goes beyond simple conversation, can perform specific coding tasks, or solve problems based on prompts. Agents utilize large language models (LLMs) or other AI technologies to understand user requests and produce solutions.

Agent Tool Calling

Agent tool calling refers to an AI agent’s ability to use external tools or functions to carry out user requests, often automatically. Agents can query APIs, run linters, call a compiler, search through documentation, update records, perform database operations, send messages, and perform a wide range of actions on behalf of the user. This empowers AI agents to handle and execute complex tasks and interact dynamically with various systems, making them more capable than basic conversational AI.

Tab Completion

Tab completion or autocomplete is a feature in many code editors or AI coding assistants that suggests possible completions for partially typed code or text. AI-assisted autocomplete can use ML models to provide more context-aware suggestions than traditional keyword-based autocomplete, accelerating coding speed and reducing syntax mistakes.

Edit lines

Although AI assists in generating code, developers are encouraged to review and modify outputs as needed.

Parallel tasks

Parallel tasks refer to running multiple tasks in separate chat tabs. This helps both with efficiency and with keeping the AI in check to follow exact requirements and not change other aspects out of the blue.

Background Agent

Using an AI agent is especially useful for long-running tasks that can be handled asynchronously, rather than requiring your constant attention. For example, some advanced models, like Claude Opus from Anthropic, can process tasks in the background for several hours. This means you can delegate complex or time-consuming work to an agent and let it handle the process without needing to monitor it the whole time. This can save time and allow you to focus on other priorities while the agent works independently.

Prompting

Prompting is probably the most well-known term on this list, as it is the sure way of giving clear instructions to AI models.

Rules

When using any type of AI or agent, it is important to set clear rules so the agent acts as you expect while working on your task. These rules help make sure the AI’s responses fit your needs and follow your company’s standards. By defining how the agent should behave, you can avoid unwanted results and ensure that the AI works in a way that matches your usual ways of doing things. This helps make the AI more useful and reliable for your work.

Building context

To build context, you need to provide clear and specific prompts, use systematic file sharing by pasting relevant code snippets (legacy code, audit code, etc) or uploading files to provide the AI with function signatures, class definitions, or API contracts, summarize the project goals (what you are building, tech stack, key business logic, or known constraints), reference past interactions, use consistent naming and structure, and document as you go.

AI-Assisted Development for Complex Tasks

There needs to be a critical balance between automated assistance and the need for human supervision or manual edits. We have mentioned this previously in another article on how certain team roles will be redefined by AI.

Tools with AI embedded natively in IDEs, such as Cursor, Microsoft Copilot, and so on, allow you to code faster, avoid context-switching, and get real-time help as you build.

They offer:
Context-awareness: IDE-integrated AIs understand your local codebase and project structure.
Zero context-switching: No need for browser search.
In-line suggestions: Get intelligent autocomplete, refactor hints, and bug fixes as you type.

However, with the advent of mainstream AI, there are also some organizational challenges, among which we can mention:
Skill gaps: AI is advancing fast, and employees need to be up-to-date skill-wise with the new technologies. Time needs to be dedicated to this effort.
Security and governance concerns: It’s essential to keep in mind aspects of security and AI governance. It would be best to have AI use policy documents at the company level.
Lack of the right technology: With so many new technologies appearing overnight, you need to test and choose the best technology for your organization, and that requires both time and careful consideration.

As we always mention on the Alteus.ai page, AI is here to augment skills, not replace them.

Best Practices in AI-Assisted Development

The road to success is paved with efficient prompting, but also some other rules:

  • Change one thing at a time
  • Be specific in your requests
  • Start a new chat for each task
  • Organize and save your most effective prompts
  • Have AI governance well-defined in the company

Real-World Case Study

We, at eSolutions, started integrating AI coding into our projects early on. We have thus had the opportunity to test it within an external project, for developing front-end pages with an incredible increase in efficiency and decrease in total development time.

At the same time, during our AI (every)Day event and other internal learning initiatives, we’ve tested some other tools and used them for various internal projects. Our colleagues developed different projects in a short period of time, with components and flows that would otherwise have taken weeks to be implemented.

We continue to test and iterate, and to be up-to-date with the latest in AI, while maintaining important aspects such as clean code, security, and other programming best practices.

AI-Assisted Development Workshop

This article provides a brief overview of AI-assisted development, but further exploration is encouraged through hands-on workshops or in-depth training.

If you or your team wish to learn more, you can join our AI-assisted development workshop, where you can find out:

  • The practical benefits and current limitations of AI in software development
  • The steps required for a smooth adoption of AI tools within your team
  • How to address privacy, governance, and security concerns
  • How to leverage these technologies effectively long term

 

About the Authors

Emil Calofir

Emil Calofir is an experienced software engineer with a solid background in the IT and services industry, including healthcare, gaming, telecom, banking, retail, and logistics. He is passionate about Generative AI and is currently the Head of AI at eSolutions.tech, where he leads the integration of AI solutions into various projects. Emil started his career in mobile game development but has since moved into software engineering, making important contributions at Deutsche Bank and Orange Romania, especially in API development, microservices, and data warehousing.

Andreea Jakab

An enthusiastic writing and communication specialist, Andreea Jakab is keen on technology and enjoys writing about cloud platforms, big data, infrastructure, gaming, and more. In her role as Social Media & Content Strategist at eSolutions.tech, she focuses on creating content and developing marketing strategies for the eSolutions website, blog, and social media platforms.

Subscribe for Latest Updates