Artificial intelligence is far from being a new concept. However, the emergence in recent months of tools such as Dall-e or ChatGPT put this technology at the center of the debate.
Especially in the world of software development, where mature and proven tools such as Copilot already exist, the debate was stimulated. Are we facing a panacea that with just a few commands is capable of creating any application from end to end, completely eliminating the complexity inherent in programming? Are we facing a threat that could replace developers?
As always when these dilemmas arise, the reality is never at the extremes. Not all software development will be solved through a prompt in just a few seconds, nor will talent with technological skills be discarded in the short or medium term. It is an excellent tool to help improve productivity in projects and the quality of end products.
Throughout history, technology has provided better tools to rethink and improve the work already being done. Today, no factory would ever think of opting for manual assembly, just as no mathematician does math by hand. Innovation is being used to take tedious, mechanical, or repetitive tasks out of the way and concentrate on the deeper, more creative, or humanly complex aspects of the work.
With generative AI we are at a similar point. Experienced professionals will likely leverage the virtues of this technology combined with their knowledge to generate solutions with more significant impact in less time. Indeed, programmers will enjoy bypassing the annoying parts of their work (what in development jargon is known as boilerplate code) to produce the minimum necessary, save time and not work so hard. The former has less reason to worry than the latter about being replaced by technology since they practically stop delivering added value.
In practical terms: let’s think of a COBOL programmer (something that seems prehistoric but still exists today). Back then, it was a language that consumed weeks, in which the developer had to type hundreds of thousands of lines of code, line by line. Then the program was tested and the whole text had to be revised in case of an error.
In conclusion: the professional spent months creating an application but not thinking about improving it, evaluating new functionalities, or analyzing how to increase the impact on the business, but typing. As time went by, the tools became simpler, and with that, the balance in the amount of development time applied to “bureaucratic” issues such as typing and those destined to strategic issues changed.
Today, the rationale is evolving. A programmer can indicate something concrete to ChatGPT or Copilot like: “I need to create a library to connect to an API, with these features, and in this language,” and he will indeed receive a code fragment that meets that need. Again, the personality of the professional plays a role here. There will be the “lazy one,” who will only copy and paste what he has received. Still, there will also be the one who, with intelligence and goodwill, will enter into a process of editing and iteration, establish changes, request different versions with subtle variations, and even interact with AI to arrive at a code of a better level than that first attempt.
Many dilemmas remain to be solved. For example, Copilot was built from all the code that all programmers created on GitHub, the most popular code repository. Therefore, it could often be using snippets written before by someone else and should therefore be covered in terms of intellectual property. Did the program effectively create something new or did it simply copy what already existed?
Moreover, one of the benefits highlighted about generative AI applied to software development is that it speeds up and simplifies code verification. There is also an unresolved challenge here: the programmer is sharing a fragment of the application that, up to that point, is private, opening the door to specific security vulnerabilities.
In Making Sense, we are committed to training new talent: generative AI tools are like bicycle wheels for those just starting. One seems to be keeping the balance, but you can only continue riding with help. So, we must reinforce training and even support them in using these types of solutions so that people can capitalize on them and stay within their growth and professional development goals.
In summary: Generative AI is not Terminator coming to conquer the world and take all our jobs. But it is a paradigm shift that forces us to rethink, adapt, and, in the case of the software industry, apply it to improve the quality of digital products.