Adoção de IA no desenvolvimento de software – uma perspectiva interna.

Adoption of AI in software development – ​​an internal perspective.

Imagem em destaque

When I started my software development journey in 2014, learning was very different from what we see and know today. While there were some development platforms like Stack Overflow, GitHub, or SourceForge, there weren't as many resources available online as there are today, and questions posted on forums remained unresolved for days on end.

The journey was even more challenging for developers like my father, who started his career in the 90s. He told me about his days coding in Cobol and Pascal, when learning was predominantly book-based and courses were only taught on-site. . There were no online academies and sites like Udemy, YouTube or Stack Overflow were still far from being on the map – acquiring knowledge required a lot of self-study and discipline.

When faced with a problem, my father couldn't just “Google” it to see how other people solved the same problem and get the answer in seconds like we can today. Instead, he had to talk to a more experienced colleague, hoping he would have an answer, and that research could take several days. Modern capabilities, including artificial intelligence (AI) tools, have drastically changed the way we approach software development, making it much faster and more efficient.

Things were very different from my father's experience when I started as a developer. Sites like Stack Overflow started gaining popularity and developers from all over the world were helping each other. The way developers learned about new topics was evolving, and having more resources available made the journey a little easier. Over time, YouTube has also become a great source of information, with developers posting helpful video tutorials on specialized channels.

Learning about software development has evolved from reading books or in-person courses to watching a tutorial on YouTube or signing up for an on-demand course on platforms like Udemy. AI would come to take learning to a whole new level.

The rise of AI

The first AI that became popular in software development was GitHub Copilot. Here's how GitHub defines it:

“GitHub Copilot is an AI peer programmer that helps you write code faster with less work. It extracts context from comments and code to suggest individual lines and entire functions instantly.”

GitHub Copilot was launched in October 2021. It uses OpenAI's Codex to translate natural language into code. It was trained with natural language data and billions of publicly available source codes.

AI has progressed not only in software development but also in many other fields such as image processing, speech recognition, data analysis, autonomous vehicles, and robotics, and the list grows with each passing day. The one tool that really caught everyone's attention was OpenAI's ChatGPT for its versatility and user-friendly interface. Everyone can use it as it was trained with vast data from the internet, not just code.

My first interaction with this AI was very casual, with GPT-3 in January 2023. I just asked a few questions about my country to get an idea of ​​how much “it” knows – questions like best tourist spots, traditional dishes and famous sites. people – and answered all my questions accurately in a matter of seconds. This made me think this was the end of traditional search engines.

A few days later, I asked to create a very basic tic-tac-toe game using HTML, Javascript and CSS. The generated CSS wasn't the most attractive design I've seen, but it worked. On the other hand, the game itself wasn't working. I asked twice for it to be fixed and I couldn't. I was curious about this, so I started debugging the code. I found and solved the problem myself, but I wanted GPT-3 to solve it. So, after knowing what the problem was, I explained it as I would in a normal conversation with a coworker, and it seemed like I “got it” and solved it.

Practical uses of AI in software development

Today, AI can be used at all stages of software development, from inception to deployment, and even more so with chatbots to interact with customers.

With a focus on coding, GitHub Copilot and GPT-4 are the most effective tools currently available. I used them in different situations:

  • Writing regular expressions
  • Assistance in understanding what a piece of code does
  • Creating short pure functions
  • Optimizing existing code, which is very useful for complex compound Boolean expressions.
  • Talking to him to create a database structure, just for reference as it can easily get confused with a complex database
  • Writing unit tests
  • Learning to use a library/framework with practical examples
  • Getting ideas about possible reasons for any error

AI Challenges in Software Development

While AI has undeniably brought many benefits to software development, it also has its own challenges. Because it doesn't fully understand the code, relying too heavily on it to generate code can lead to complex bugs and security vulnerabilities, as well as failing to take future scalability or adaptability into account. You can also make mistakes and discover a “fact” that is not entirely true.

It may have some legal and ethical implications because it is not clear who owns the content created since it is generated from many resources on the Internet. For these reasons, although AI offers many benefits, some companies have banned the use of AI by its creators and, at the same time, other companies are taking advantage of the benefits.

The True Role of AI in Software Development

AI has evolved a lot in recent years and is now everywhere. Acts as an ally for developers in the Software Development area. I usually think of him as a highly knowledgeable “friend” who is always available to help us find a solution to any problem or help decode complex code.

AIs like GitHub Copilot provide developers with relevant code suggestions in real time, significantly reducing the time and effort required to write new lines of code, but these code snippets are just ideas. It does not know the entire context of an application and we must be careful not to implement them carelessly, as this could introduce new bugs or security holes.

GitHub published the results of a survey of over 2,000 developers in 2022 to understand the impact Copilot had on developer productivity and happiness. When using Copilot, 88% felt more productive, 74% were more satisfied at work and 96% said they were faster at repetitive tasks. Based on my experience with it, these statistics are pretty accurate. Copilot is a great time-saving tool that helps reduce syntax errors and refactor non-complex code.

On the other hand, AIs like ChatGPT are designed to assist with a wider range of tasks, not just coding. Personally, I often use it as a tool to learn new concepts or libraries in conjunction with official documentation.

In conclusion, AI complements our work as software developers, but it does not replace the value of human vision, creativity and problem-solving abilities. Instead, it complements these qualities, allowing us to focus on the fun things rather than the repetitive tasks, increasing satisfaction and productivity, and making coding more efficient.

Looking to the future, I believe we are just getting started with AI in coding. We're likely to see even more tools that offer more real-time help, detect errors early, take into account the context of the entire application, and even completely delegate some tasks to the application. But the real game changer will be when these tools really understand what we're trying to do. It's an exciting time to be a developer!

If you liked this, be sure to check out our other articles on AI.

  • A guide to incorporating AI into your workflow
  • AI Ethics: A Challenge for the Next Decade?
  • Myths About AI and Job Security: Will Robots Take Our Jobs?
  • AI and Machine Learning Software Testing Tools in Continuous Delivery
  • The obstacles of implementing AI and robotics in the healthcare sector

Source: BairesDev

Conteúdo Relacionado

Vídeos deep fake ao vivo cada vez mais sofisticados...
Aprenda como os processos baseados em IA aprimoram o...
O Rails 8 sempre foi um divisor de águas...
A GenAI está transformando a força de trabalho com...
A otimização de processos industriais é um desafio constante...
Entenda o papel fundamental dos testes unitários na validação...
Aprenda como os testes de carga garantem que seu...
Aprofunde-se nas funções complementares dos testes positivos e negativos...
Entenda a metodologia por trás dos testes de estresse...
Descubra a imprevisibilidade dos testes ad hoc e seu...
A nomeação de Nacho De Marco para o Fast...
O mercado embarcado tem uma necessidade de soluções de...
A Inteligência Artificial (IA) tem se tornado cada vez...
Ao relatar estatísticas resumidas para resultados de testes de...
Como você previne alucinações de grandes modelos de linguagem...
Nos últimos anos, a Inteligência Artificial Generativa (Generative AI)...
Domain-Driven Design (DDD) é uma abordagem estratégica importante para...
No atual cenário tecnológico, a escolha do framework adequado...
Back to blog

Leave a comment

Please note, comments need to be approved before they are published.