DEV Community

Borja Sánchez for One Beyond

Posted on


Software developers and AI: enemies or allies?

McKinsey Global Institute suggests that in 2030, intelligent agents and robots could replace as much as 30 percent of the world’s current human labor.

Could software development be one of them?

If we look back on history, the fear of evolution is understandable, every change comes with consequences and the need for us to adapt and evolve. During the 19th century, many human jobs were automated and replaced by machines. The current evolution is not focused just on automation, we have jumped to the next level with the development of Artificial Intelligence (AI).

Let me give you a brief glimpse of AI.

Image descriptionEx Machina (Alex Garland) - 2014

Even though we all have used it and could give some examples of its integration in our daily activities (Alexa, google assistance, Siri, etc.), the reality is that not everyone knows exactly the complexity of AI and its uses.

Artificial Intelligence is focused mainly on two fields: robotics and machine learning. While robotics is a branch of engineering and science for which its use is commonly known, machine learning is a more unfamiliar field that is becoming increasingly important.

Machine learning is based on the use of data and algorithms to give computers the ability to simulate the human brain. Therefore we could say it is used to allow machines to undertake some tasks such as reasoning, knowledge representation, planning, learning, or natural language processing, imitating the way a human would, This imitation not only extends to the procedures themselves but also to the way in which humans learn them.

Coming back to our field, a handful of applications were developed and designed in the past few years to generate and write lines of code automatically, some would say in a cheaper and faster way than humans would. That is just the beginning of what seems to be inevitable in our field.

Do we need to worry?

First of all, we can’t forget that AI is created to imitate human brains, and it is based on data that already exists so, even though a machine can analyze an immense amount of data to get an accurate result, there is something that cannot still simulate creativity, critical thinking, ethics and morality, amongst other traits.

Some of the most commonly used machine learning algorithms are: neural networks, which are good to recognize patterns; linear regression is used to predict numerical values based on linear relationships between values; logistic regression, good for yes/no answer to questions; clustering, useful to identify patterns that can be grouped; decision trees, used to predict numerical values and classify data into categories and random forests, which uses a number of decision trees to predict a value or category. As we can see, even though AI can process and work with immensely more data than we humans can, we have a non-linear thinking that can’t be replaced, at least for now.

Wanting to go a step further, not all people realize how complex our job is. If you ask a friend what a software developer does, the answer you are likely to get is “coding”, but that’s not even the tip of the iceberg.

Software developers have a wide range of tasks besides writing code, that are even more important such as understanding business requirements, connecting large tech stacks, debugging erroneous code, updating software and communicating with stakeholders and with the team itself. These tasks require different skills including curiosity, focus on details, to be self-taught, proactive, passionate, adaptive to the change, a good communicator, and of course, good at coding.

So even though some big companies are creating apps like Bayou, DeepCoder or Commit Assistant, they are far from building an algorithm that can analyze the complexity of a project and translate it to a cohesive solution based on an understanding between the programmers and the stakeholders. AI needs simple and clear directions or descriptions of what to do and cannot decide what to prioritize or what is the best option in multiple possible responses.

Image descriptionSophie the robot during the Web Summit 2018 in Lisbon, Portugal on November 7, 2018. (Photo by Rita Franca/NurPhoto via Getty Images)

That is why the answer, at least for now, is no. Human programmers are likely to remain one of the strongest demands in the coming years. Nevertheless, we can’t fight the development of AI in our field and we shouldn’t either.

Rather than being afraid of AI, we should embrace it. As in the industrial revolution, automation freed us from repetitive work, allowing us to focus on using our brains to generate new ideas. AI can liberate software developers to focus on more complex tasks and also we can be assisted by AI to prevent some errors before they even appear, or to create a better code in our project.

Top comments (0)

Here is a post you might want to check out:

Regex for lazy developers

regex for lazy devs

Sorry for the callout 😆