Featured post

Modern software development: Coffee, laptop, and AI

Did the AI-powered software development companies' epoche start?

Subscribe for our newsletter
close

What do engineers from Artelogic, a software development company, need to develop the best-in-class solutions for their clients? Productive PC, updated knowledge, a cup of good coffee, and… AI.

Since AI advancement in the last years, many biases about its impacts on many areas have been circulating. Software development isn’t an exception. Many controversial assumptions, from “AI dismisses software engineers” to “AI creates new opportunities for talents,” arise occasionally and stir up the human imagination. 

Meanwhile, software development companies worldwide can’t ignore AI advancement and spread. Can they transform the AI potential threats into opportunities?

“AI has potential in software development, primarily in planning and research, automating mundane tasks, and writing boilerplate code expeditiously.” – says Oleksandr Trofimov, CTO at Artelogic. – “In software development are a lot of routine tasks that don’t require specific knowledge. For example, checking API calls or managing data exchange between the system’s modules could be delegated to AI, freeing the experts to perform the strategic tasks or devising the high-level solutions.”

The technology leaders at Artelogic, a software development house, have valuable experience that provides an optimistic answer to this question.

“Hello, I’m an AI bot, your new junior developer…”

Andrii Burda, a Senior Engineering Manager at Artelogic, has over ten years of experience in management in web and mobile development teams. He keeps his and his team’s knowledge up-to-day, so they organically started the use of AI tools once it became affordable.

“We usually add 30% to the task’s estimate for refactoring, writing tests, etc. Now this time can be decreased to 10% or even less thanks to AI, – says Andrii Burda. – I checked our code using AI, and it was able to detect a simple performance issue that was missed by engineers and fixed it. So, our client will receive better functionality by spending fewer funds”.

Senior Engineering Manager at Artelogic, software development company
Andriy Burda, Senior Engineering Manager at Artelogic

Artelogic’s engineers apply AI tools like ChatGPT and Github Copilot for the following tasks:

  • Ask AI than Google. AI provides more precise answers that allow engineers to solve an issue quickly.
  • Optimizing code. Engineers usually write code the way they used to do it. AI quickly analyzes code and proposes its own changes.
  • Writing unit tests. Many engineers don’t like to write tests, and AI generates tests with pretty good quality and speed.
  • Code autocomplete. AI helps to write code quicker. It just suggests part of codes that can complete comment, method, or even class.
  • Finding bugs. Many IDE tools have simple code validators but cannot detect logical issues. AI seeks possible bugs better, and also it can find logical bugs.

Quality Assurance hero

Another area of software development where AI can contribute is Quality Assurance. AI-driven analytics can help identify the root cause of bugs and issues more quickly, allowing software teams to develop fixes faster. This can result in better overall quality of the software product, while also reducing time spent on bug-fixing activities. Furthermore, AI can be trained to recognize patterns in existing bug reports and flag similar ones that have yet to be reported, helping to identify software issues before they can lead to customer complaints.

Engineering Director at Artelogic, software development company

Ihor Prudyvus, Engineering Director and Head of the Quality Management Office at Artelogic, noticed: “The QA team usually uses it for test data generation. It is a standard practice that during the test execution, a lot of test data is used. Sometimes this data has to be very specific and accurate, with appropriate patterns, and in order to create it, we spend a lot of time; however, AI tools allow us to do that in seconds”.

QA engineers also can use AI for test documentation creation, especially test cases.

“Of course, there are cases that require human interaction & understanding the business context that cannot be provided by AI yet, however for simple cases like login form validation – it is pretty helpful,” – summarized Ihor Prudyvus.

Challenges of AI for the software development company

Although AI tools significantly boost software development workflow, all engineering managers agreed that experts should verify AI outcomes.

“AI just started its way in the engineering world. So, I don’t recommend fully trusting the result generated by AI. A few times, I found issues in the code optimized by AI. Also, some tests developed using AI don’t cover all outlined cases,” – said Andrii Burda.

Oleksandr Trofimov, CTO at Artelogic, mentioned that “the value for clients isn’t the fact of usage AI, but skills and knowledge of the experts who know how and in which cases apply AI, and how to supervise it.”

CTO at Artelogic, software development company
Oleksandr Trofimov, CTO at Artelogic

While AI can greatly enhance software development, it also presents certain risks and concerns that must be addressed. As OpenAI’s large language model, ChatGPT, becomes increasingly popular, concerns surrounding using AI tools are transforming into government action. National authorities are now tasked with the challenge of establishing regulations and policies for this transformative technology.

Earlier, the Italian government banned ChatGPT over data privacy concerns. The government has relaxed the ban temporarily, provided OpenAI meets a set of demands. Currently, the French government is examining the tool as well. The European Data Protection Board has also created a task force focused on ChatGPT and AI privacy regulations.

Large language models pose several concerns. One is the amount of data they collect and use, which may include sensitive information like copyrighted material. 

“The AI platforms as a self-learning model have to consume constantly a ton of data; otherwise, it couldn’t learn and improve itself.” – says Andriy Burda. – “For that reason, any trustworthy software development company should implement a transparent policy of using AI tools in software development and testing. Our clients have to be sure that no piece of sensitive data is leaked”. 

The trick of AI is that nobody can isolate the AI tools by deploying them on the local server without external access – such measures make AI totally witless and useless, as it needs to update its knowledge with terabytes of information distributed on the internet. Or to collect this data and store them locally with constant updates – but it sounds weird for the average software development company.

We usually add 30% to the task’s estimate for refactoring, writing tests, etc. Now this time can be decreased to 10% or even less thanks to AI.

Andriy Burda, Senior Engineering Manager

“In the software industry, we also can come to a situation when software buyers would require the software development company to secure the accountability and traceability of the AI tools’ actions and logic used in development or testing. Since deep-learning algorithms could hardly be exposed to reverse engineering, the clear accountability of AI is questionable. As such, AI can simplify mundane tasks, but the architecture, logic, and high-level solutions must all rest on human expertise. It’s a complex and constantly evolving industry, but one whose progress is too important to ignore.” – mentioned Oleksandr Trofimov.

Looking forward to “black swan”

AI-powered software development companies can bring many benefits to their clients if the use of AI is ethical and transparent. First, IT vendors should explicitly declare the use of AI in the software development process. To be totally transparent, it is a good practice to define at the start of the collaboration which AI tools, for which tasks, and in which scope engineers plan to use. The ethical use of AI implies the complete restriction of exposing sensitive data for building models for training. 

But on the other hand, AI tools can assist developers in seeking a better solution that, in turn, can make the application more reliable and ensure higher customer satisfaction. Also, AI frees up engineers from redundant routine tasks, and they can commit more effort to the more essential tasks. 

“We are only in the early stage of this breath-catching rally,” – says Oleksandr Trofimov. – “The future prepares a lot of surprises for us.”