If you haven’t heard yet, Devin is an attempted world’s first AI software engineer that writes code by itself. It can understand what you want to make, write code for that requirement, test it, debug it, and fix the code all by itself. It is a software engineered by the company Cognition Labs. Devin will definitely change how the software development cycle works in typical products and services companies.
How does Devin work?
Devin has a huge repository of algorithms and best practices in computer science. Given a large task, it breaks down into smaller problems that it can deal with and has repositories of code and algorithms to tackle. It does the project planning too in terms of when it has to deliver the large task and how to plan and tackle each sub-task.
It works on Python and JavaScript largely and it starts writing code to solve each of the sub-problems. Devin is positioned to be an assistant for software engineers and not to replace them. Think of it as like – when software engineers write code, they do refer to snippets from Stack Overflow, etc. Devin can become a handy assistant to software engineers. Devin’s role in enterprise software development will be more like acting as an assistant to software engineers. The goal is to reduce the development cycle and make software engineers’ and product managers’ jobs easy and effective.
Currently, Devin is working with a small set of software developers to help them in automating test cases, debugging, and deploying smaller applications. It is soon expected that Devin can play a larger role in mainstream enterprise development in the next 5-10 years. Devin especially excels at testing and debugging software and still needs to make its inroads in core development. It also excels at fine tuning large language models (LLMs) such as the Llama. Devin can currently take up jobs to build specific ML models and is already taking up some work from Upwork Jobs.
Who is creating Devin?
Cognition Labs is the name of the company that owns Devin, and Scott Wu is the head of the company who is driving the development of this program.
What is it capable of doing in the SDC?
Devin can currently write code, test and deploy the code in environments.
- Writing code: Devin can write code in JavaScript and Python and can build apps, websites, and other applications.
- Testing code: It can test its own code or other code. It places multiple print statements and checks for the right output and any loopholes in the code while testing and debugging.
- Deploying code: After testing the code, Devin can deploy the code in desired environments and sandboxes for people to use them.
Devin’s main aspects would be planning and reasoning and to correct its own decisions and paths of development and code. Additionally, it can also plant secret messages in images.
Impact on Software Professionals
Currently, Devin is able to solve 13-14 out of the 100 software problems posed to it. This itself is a very big deal because the earlier models could only do 1-2 problems. The near future aim would be to take Devin close to the 50 percent mark. And, if the 50 percent mark is achieved, then Devin can be revolutionary. It can be used as an assistant in software development to speed up, to improve accuracies, and to develop common modules really fast. Obviously, real software development is not about plug-and-play reuse, there will be a lot of customizations in places even where there is heavy reuse. So, Devin has to be able to understand the context very well and be able to replicate code in various contexts.
Nevertheless, the outlook is definitely that future software developers will work along with Devin-like softwares than doing everything by themselves, kind of akin to auto-correction when you’re writing sentences. On the outlook, it looks like Devin can excel at fixed solutions like testing use cases, and hence companies could use it first for testing purposes post human QC testing and compare both the cases. This means we could see companies testing this software along with humans for fast and heavy training. Eventually, this will lead to a place where developers and QAs use Devin as an assistant and will improve accuracy and effectiveness in shorter cycles of time.
AI will help us to be more productive and will be more of an assistant to do things faster. The way we develop software, the cycles, and the processes will change for the better. But, we will certainly not like a world where AI is doing everything, and humans are just idling. Humans may move into more of a creator role, so there will be a large proportion of people who will be creating than what we have now and fewer people executing than what are now. It is like automating the process of building and hence the labor will be less and there will be more number of architects. The result is the cost of buildings and the time taken to build the building will become lower and shorter. But, it is not like the world is doomed or software engineers are doomed. We will shift into another gear of evolution where as creators you also need to understand execution but need not necessarily require execution from you. Imagine, different AI software driving the Formula 1 cars and would that be a delight to watch? Absolutely no. But, a formula 1 car driven by a human and taking advantage of AI software to auto tune parameters live is something that is definitely exciting. The objective is not to fill this world with bots – it is to move into a paradigm shift of human productivity.
Hope this is useful, and we will keep you updated on Devin AI.
You may like to read: The Logic of an Antivirus Software, Programming vs. Machine Learning vs. Deep Learning, & How do we use Waves in Communications?