If You Think Your Job as a Developer Is To Write Code, You Are Mistaken

Discover why developers must understand their responsibility beyond code creation to mitigate threats.

June 11, 2024

Coding with AI
(Credits: Shutterstock)

Nevena Petrovic, content manager of DataArt, delves into AI’s influence on developer tools and why understanding AI’s limitations is crucial for developers.

How has AI impacted developers’ tools? Why is it dangerous to uncritically trust AI-produced code, and what is the new type of security threat called prompt injection? Top experts from Microsoft, JetBrains, and DataArt shares insights on what these leading companies have in store for us shortly. 

The last edition of DataArt’s IT NonStop Conference discussed how enterprises and developers can use GenAI to make processes faster and less expensive. One of the first sessions was a moderated panel discussion regarding the influence of AI on tools and what we can expect in the future. In this article, we highlight key insights from each speaker.

Navigating the Complexities of Developer Responsibility

According to Dr. Jodie Burchell, data science developer advocate at JetBrains, at this point, LLMs do not produce reliable code. Generating any part of a system, compiling it, and automatically deploying it can potentially lead to dangerous side effects. You are responsible for the code you put into production and for double-checking that everything created is something you’re happy to take ownership of. 

The additional problem is a new type of security threat called prompt injection, where people can hijack LLMs to make them do things you might not want them to do. So, suppose you’re giving LLMs access to databases or information your system might need access to run automatically. In that case, you risk getting hijacked, and you might dump all your customer data into the hands of someone who may be a malicious player.  

We don’t use any of the data we collect for training, track, or store any code, and we won’t work with any third-party providers that do so. However, we do have security and anti-fraud checks built into our AI service.  

We’ve deliberately called JetBrains AI Assistant because it’s designed to be a companion to you – help you be more productive, but not to replace developer functionality. AI tools take boilerplate tasks that can be boring or slow down development and help speed them up by giving you a template to work with. 

It collects information like the current file you’re working on, the programming language, environment information, such as the dependencies you have installed, and the structure of the project file. You can also opt to have it collect recent behavior. And then, under the hood, we’re building prompts based on this information and a couple of simpler ML models embedded within the IDE to predict what’s most relevant for that context to go into the prompt. So, the result is customized for the specific problem you’re working on.  

It would be best to remember that AI agents’ knowledge base is locked when trained. So, if you want to work with a problem in a very recent framework, going straight to documentation might be more appropriate.  

Something I say again and again is that if you think your job as a developer is to write code, you need to understand what your job is. Many aspects of the software development job go beyond code creation, like architecture or soft skills and human understanding required to solve business problems.  

So, yes, the IT jobs will change because juniors can get on board more quickly. But isn’t that just an extension of what productivity tools have always been doing – shortening the learning curve and getting juniors faster to the more senior level that requires much more nuance and focus on the business context and communication?

See More: How AI Will Affect Developer Workflows

Maximizing Developer Productivity

Andy Huang, partner solution architect at Microsoft, says, a reason why you might want to leverage these AI tools is to stay in the flow. I find that context switching is costly. Going from the IDE to a browser to another tool can be taxing. Meanwhile, staying within the IDE, allows you to stay focused. 

AI Assistants can help developers in many ways. A junior developer might consider an approach they have not considered. At the same time, a senior developer might leverage AI to fill in boilerplate code to reduce repeatable tasks. On top of that, these tools can help operations teams, too. They can even help with scripting languages like Powershell and XML or infrastructure as code such as Bicep.  

Interestingly, AI tools can suggest codes of the same or better quality than the average developers. Now, we can still ignore security and DevSecOps practices. We should still include code scanning tools, dependency checks, and secret scanning. We don’t want to take it as is. 

And the best way is to get your hands dirty and try them out a little. You are in the driver’s seat and should provide context and directions. It’s not like a magic wand that will handle everything for you. You, as a developer, are still the pilot. You are the one that must review what’s going on. 

Harnessing AI’s Potential Beyond Code Generation

According to Dmitry Baykov, technical director AI/ML at DataArt, we will get immense value as soon as we automate the bigger chunks of work, not only in one file generation but also in one service generation or product generation, like AI generating a website or a landing page. I think that’s what we will see soon – AI building a project or even a product.  

The other exciting part is what we can do with AI besides coding. When it comes to user stories generation, we had a project where we used AI technology to generate the acceptance criteria for building the new system from the old 30-year-old SQL code! Then, we could also generate the human-readable SQL description for developers and even migrate it to a modern technology stack. 

It has yet to be covered by any tool because it’s very customized. It depends on your legacy technology, what you want to do, how fast you want to migrate, and to which quality you can automate. That’s another big point where we see the applicability of AI technologies, even though they’re still in development. This project gave a 40 % productivity boost, measured by hours.  

Another idea I want to share is LLMs assessing another LLM. There are open-source projects where people put a model in different roles and places. Let’s say I want to create a new product. I ask it to give me the idea, and then it goes through product design, UI, UX, and explaining different stuff. Then we can go with: Treat me as a user of this product, which we’re just thinking about creating, and interview me as a user.” So, we can put different masks within the same interface. This is very important because, in the future, we might be able to generate the code, assess it with a secure fine-tuned model, and then execute it with another piece of software. Then, we would be sure that it’s doing what it needs to do. But it’s just a concept now. 

The feature I am waiting for is the no-code level, where we don’t care if it’s Python or Java, where we can generate a landing page or an e-commerce website and update the website without dealing with the code.  

Despite these developments, I think basic programming skills will remain important—the foundational skills for writing code, knowledge of how the Internet works, and what HTTPS is. A good thing is that these same tools can help with learning and education. You can boost productivity in education in the same way. You can also be much more confident about how you try to make your code optimal. I think the overall learning level will increase, and the future of developers’ skills will combine learning and developer productivity.

Image Source: Shutterstock

MORE ON DEVELOPERS

Nevena Petrovic
Nevena Petrovic is a Content Manager at DataArt. Due to her deep interest in Japanese culture, she majored in Japanology at the University of Belgrade, Serbia. Although initially outside her field of expertise, DataArt has allowed her to broaden her knowledge of IT and innovation. Every new article is a fun new challenge and an opportunity for growth. Keen to discover what the future holds, Nevena embraces every new experience with anticipation.
Take me to Community
Do you still have questions? Head over to the Spiceworks Community to find answers.