4 thách thức lớn nhất của mã được tạo bởi trí tuệ nhân tạo mà Gartner đã bỏ qua trong báo cáo mới nhất của mình

coding concept

4 thách thức lớn nhất của mã code được tạo ra bởi AI mà Gartner bỏ qua trong báo cáo mới nhất của mình #AI #SoftwareEngineering #Gartner

Gartner là một trong những nhóm phân tích trong ngành công nghệ được tôn trọng nhất. Công việc của họ là cung cấp dịch vụ tư vấn cá nhân, tổ chức hội nghị và xuất bản báo cáo phân tích ngành công nghiệp đa người sử dụng.

Việc trở thành khách hàng của Gartner không rẻ, với ước lượng bắt đầu từ 30.000 đô la mỗi chỗ ngồi mỗi năm. Cách mà Gartner (và, để công bằng, hầu hết các nhóm phân tích khác) tạo sự quan tâm là thông qua việc phát hành các bản tin báo chí tóm tắt kết luận từ các báo cáo nghiên cứu của họ, hy vọng rằng chúng sẽ được đưa lên báo chí như ZDNET. Vì những bản tin báo chí này thường chứa những thông tin quý giá để giải thích xu hướng ngành, chúng tôi thường xum họp vào chúng để hiểu được trạng thái của ngành công nghiệp. #TechNews

Gartner đã trở lại với một bản tin báo chí mới. Bản tin này mang tiêu đề: “Gartner nói rằng AI Tạo ra sẽ yêu cầu 80% lực lượng ngành kỹ thuật cập nhật kỹ năng qua năm 2027”. Bản tin tiếp tục thảo luận về các dự đoán của Gartner về tác động ngắn hạn, trung hạn và dài hạn mà AI sẽ có đối với kỹ sư phần mềm. Trong bài viết này, tôi sẽ xem xét các kết luận của Gartner, cùng với phân tích của mình về những thiếu sót rõ ràng từ các kết luận mà Gartner thể hiện trong bản tin phát hành của mình. #AIUses

Bản tin báo chí của Gartner là rằng AI sẽ yêu cầu 80% lực lượng kỹ sư phải cập nhật kỹ năng trong vòng hai năm tới. Sau đó, trong bản tin, Gartner làm rõ rằng họ đang nói về kỹ thuật phần mềm thay vì mọi ngành kỹ thuật khác. Hàm ý là AI sẽ tạo ra sự phá vỡ lớn trong lĩnh vực kỹ thuật phần mềm đến mức nếu bạn không cập nhật kỹ năng, bạn sẽ bị đổ cạn. Điều này đúng. Nhưng điều này không phải là tin tức. #TechTrends

Cập nhật, học các kiến thức mới và theo kịp công nghệ là một khía cạnh quan trọng của công việc của mọi kỹ sư phần mềm. Trong bài viết này, tôi sẽ sử dụng các thuật ngữ như lập trình viên, coder, kỹ sư phần mềm và nhà phát triển một cách tương đương. Có những sự khác biệt tinh subtlvante, nhưng với mục đích của chúng tôi, chúng đều có liên quan. Điểm của tôi là, nếu bạn là một người lập trình, bạn cần liên tục học hỏi. #SoftwareDev

AI cũng sẽ yêu cầu kỹ sư phải phát triển kỹ năng của họ, nhưng đó không phải là một thay đổi lớn trong việc duy trì sự nghiệp như một kỹ sư phần mềm hoặc một nhà phát triển. Vậy nên, dĩ nhiên, mặc dù tiêu đề này là đáng tin cậy, nó không đáng quan trọng như nó có vẻ ám chỉ. #GartnerInsights

Về mặt ngắn hạn: “Công cụ AI sẽ tạo ra sự tăng năng suất nhỏ bằng cách bổ sung mẫu công việc và nhiệm vụ hiện có của các nhà phát triển. Những lợi ích về năng suất của AI sẽ quan trọng nhất đối với các nhà phát triển cấp cao tại các tổ chức có thực hành kỹ thuật mạnh mẽ.” #AIEffect

Vào mặt trung hạn: “AI agents sẽ biến đổi mẫu công việc của các nhà phát triển bằng cách cho phép họ tự động hóa hoàn toàn và tải trọng nhiều nhiệm vụ hơn. Điều này sẽ đánh dấu sự xuất hiện của việc kỹ sư phần mềm AI-native khi hầu hết mã code sẽ được tạo ra bởi AI thay vì do con người viết.” #TechUpdates

Trong mắt dài hạn: “Mặc dù AI sẽ làm cho kỹ thuật phần mềm hiệu quả hơn, tổ chức sẽ cần thêm nhiều kỹ sư phần mềm có kỹ năng để đáp ứng nhu cầu tăng nhanh về phần mềm được trang bị AI.” #TechCareer

Tôi không phản đối với đánh giá này, mặc dù bạn không thể thực sự chia ba kết quả này thành các giai đoạn thời gian. Các công cụ AI, bây giờ khi chúng ta có chúng, sẽ có khả năng bổ sung mã code cả trong ngắn hạn và dài hạn. #SoftwareUpdate

Theo Gartner, việc xây dựng phần mềm được trang bị AI đòi hỏi một dạng mới của chuyên gia kỹ thuật phần mềm, kỹ sư AI,” theo phân tích của Gartner, “Người kỹ sư AI sở hữu một sự kết hợp độc đáo của kỹ năng trong lĩnh vực kỹ thuật phần mềm, khoa học dữ liệu và AI / machine learning (ML), những kỹ năng mà được ưa chuộng”.

Đừng quên rằng có một sự phân biệt khi nói về tác động của AI đối với mã code. Đôi khi, lập trình viên sẽ sử dụng AI để lập trình (để có mã code hoạt động hơn). Đôi khi, nhà phát triển sẽ sử dụng AI trong lập trình (để làm cho mã code và giải pháp mà họ đang làm việc thông minh hơn). #AIUsesInCoding

Gartner đã tiến hành một cuộc khảo sát vào cuối năm ngoái, hỏi 300 quản lý kỹ sư phần mềm về các vai trò công việc. 56% cho biết các kỹ sư AI và máy học là vai trò cần luôn đang được tìm kiếm và áp dụng AI và machine learning cho các ứng dụng là một lĩnh vực mà các nhóm của họ cần tăng cường kỹ năng. #AIJobRoles

Có bốn thiếu sót lớn từ Gartner:

Theo Walsh của Gartner, “Trong thời đại AI-native, kỹ sư phần mềm sẽ áp dụng tư duy ‘AI-first’, nơi họ chủ yếu tập trung vào điều hướng các AI agents đến ngữ cảnh và ràng buộc phù hợp nhất cho một nhiệm vụ cụ thể.” #SoftwareCareer

Nguyên tắc cơ bản của “lập trình AI-first” là những người phát triển giao nhiệm vụ cho một AI và AI trả lại mã code cho dự án. Điều này tương tự như một quản lý lập trình giao nhiệm vụ cho các nhà phát triển trên nhóm, và những người phát triển đó trả lại mã code cho dự án. #AICoding

Bản báo cáo đầy đủ đã đề cập đến việc một số nhà phát triển cấp cao có thể được giao nhiệm vụ kiểm tra chất lượng mã code trong các tổ chức không có công cụ tự động hóa kiểm tra mã code. Nhưng vấn đề còn nhiều hơn những gì được thảo luận, ngay cả trong báo cáo đầy đủ. #SoftwareTesting

Đây là bốn thiếu sót từ bản tin phát hành của Gartner. Luôn cần phải làm lại để mã code đạt chuẩn, kiểm thử và kiểm soát chất lượng mã code cần thiết cho tất cả phần mềm, cần cập nhật, bảo trì, sửa lỗi và tinh chỉnh hiệu suất suốt quá trình hoạt động, và việc bảo trì mã code mà bạn không viết là khó khăn hơn. #ProgrammingLife

1. Việc chỉnh sửa mã code để đáp ứng yêu cầu là cần thiết

2. Kiểm thử và kiểm soát chất lượng

3. Cần cập nhật và bảo trì suốt vòng đời phần mềm

4. Khó khăn khi bảo trì mã code mà bạn không viết

Bạn không thể thảo luận về tương lai của kỹ thuật phần mềm mà không dành sự chú ý đáng kể cho bốn khía cạnh này của nghề nghiệp. #AIChallenges

Và vào phần 2…

Nguồn: https://www.zdnet.com/article/the-4-biggest-challenges-of-ai-generated-code-gartner-left-out-of-its-latest-report/#ftag=RSSbaffb68

coding concept

panithan pholpanichrassamee/Getty Images

Gartner is one of the tech industry’s most respected analyst groups. Its business is custom advisory services, conferences, and putting out multi-client industry analysis reports.

Becoming a Gartner client is not cheap, with estimates starting at $30,000 per seat per year. The way Gartner (and, to be fair, most other analyst groups) create interest is to put out press releases that summarize conclusions from its research reports, in the hopes that they’ll get picked up for coverage by outlets like ZDNET.

Since these press releases often contain nuggets that explain industry trends, we often glom onto them to try to understand the state of the industry.

Also: The best AI for coding in 2024 (and what not to use)

Gartner is back with a new press release. This one has the headline, “Gartner Says Generative AI will Require 80% of Engineering Workforce to Upskill Through 2027”

The press release goes on to discuss Gartner’s predictions of the short, medium, and long-term impact AI will have on software engineering.

In this article, I’ll look at Gartner’s conclusions, along with my analysis of multiple glaring omissions from the conclusions Gartner presents in its release. I reached out to Gartner to request the opportunity to examine the full report, which the company was kind enough to provide me with.

Also: Is AI in software engineering reaching an ‘Oppenheimer moment’? Here’s what you need to know

The full report very briefly mentions some of what I consider to be omissions. But since a lot more people will make their judgement calls based on the press release than the full report behind a five-figure firewall, it’s worth discussing some of Gartner’s valid observations and also the very important stuff left out.

Let’s talk about that headline

Gartner’s big headline is that AI will require 80% of the engineering workforce to upskill within the next two years. Later, in the release, Gartner clarifies that it meant software engineering rather than every engineering discipline.

The implication is that AI is going to so massively disrupt software engineering that if you don’t upskill, you’re effectively screwed. This is true. But this is not news.

Also: How I test an AI chatbot’s coding ability – and you can, too

Upskilling, learning new stuff and keeping up with technology, is a key aspect of any software engineer’s job. In this article, I’m going to use terms like programmer, coder, software engineer, and developer somewhat interchangeably. There are subtle differences, but for the purpose of what we’re discussing, they’re all applicable.

My point is, if you’re a coder, you need to be constantly learning.

There is nothing surprising about having to upskill as a software engineer. Programmers always have to upskill. Every new operating system release, every new language, every new API, every new piece of hardware released requires upskilling.

Also: The rise and fall in programming languages’ popularity since 2016 – and what it tells us

AI will also require engineers to grow their skills, but that’s no big change in what it takes to maintain a career as a software engineer or a developer.

So yeah, sure while the headline is credible, it’s just not as consequential to coding careers as it seems to imply.

Short, medium, and long-term impact of AI 

Here’s how Gartner describes the stages of AI impact.

  • In the short term: “AI tools will generate modest productivity increases by augmenting existing developer work patterns and tasks. The productivity benefits of AI will be most significant for senior developers in organizations with mature engineering practices.”
  • In the medium term: “AI agents will transform developer work patterns by enabling developers to fully automate and offload more tasks. This will mark the emergence of AI-native software engineering when most code will be AI-generated rather than human-authored.”
  • In the long term: “While AI will make engineering more efficient, organizations will need even more skilled software engineers to meet the rapidly increasing demand for AI-empowered software.”

I don’t disagree with this assessment, although you can’t really bucket these three outcomes into time periods. AI tools, now that we have them, will be able to augment coding both short term and long term.

Also: How ChatGPT scanned 170k lines of code in seconds and saved me hours of work

Symbolic debuggers, for example, have existed for 40 years or so, and we still use them daily. They’ve gotten better, they do more things, and they reflect the nuances of their working environments, but they’re still in use. That will be the case with AI-assisted programming.

“Building AI-empowered software will demand a new breed of software professional, the AI engineer,” according to Gartner analyst Philip Walsh. “The AI engineer possesses a unique combination of skills in software engineering, data science and AI/machine learning (ML), skills that are sought after.”

Keep in mind that there is a distinction when it comes to AI’s impact on coding. Sometimes, coders will use AI for programming (to get more code working). Sometimes, developers will use AI in programming (to make the code and solution they are working on smarter).

Also: AI engineering is the next frontier for technological advances: What to know

Gartner did a survey at the end of last year, asking 300 software engineering managers about job roles. 56% said AI and machine learning engineers were the most in-demand role and applying AI and machine learning to applications was an area where their teams needed to increase their skills.

This makes total sense. AI and machine learning features have the potential to add tremendous value to applications in almost any field.

The 4 glaring omissions 

According to Gartner’s Walsh, “In the AI-native era, software engineers will adopt an ‘AI-first’ mindset, where they primarily focus on steering AI agents toward the most relevant context and constraints for a given task.”

Also: Yikes! Microsoft Copilot failed every single one of my coding tests

The basic premise with “AI-first” programming is that developers hand assignments to an AI and the AI returns code for the project. This is directly analogous to a programming manager handing assignments to devs on the team, and those devs returning code for the project.

The full report did mention that senior developers might be tasked with quality-checking code in organizations without automated code review tools. But there’s a lot more to the problem than was discussed, even in the full report. Here are the four omissions from Gartner’s press release.

  1. It’s always necessary to make revisions to get the code to meet spec
  2. The substantial testing and quality control required for all software
  3. The need for updates, maintenance, bug fixes, and performance tuning throughout the lifecycle
  4. It’s much harder to maintain code you did not write

You just can’t discuss the future of software engineering without giving these four aspects of the craft some significant attention.

1. Revising code to meet spec

The scenario is simple. You feed a prompt to an AI or a set of guidelines to a programming team. Time passes (less for the AI, more for the team) and you get back a chunk of supposedly working code.

Then you try it out. It’s not quite right. It’s never going to be quite right on the first run. Even if you’re doing your own coding, the first run after writing the code is going to have bugs. It’s one of the natural laws of the universe.

RIght now, you can tell ChatGPT that what it gave you doesn’t work, or give it the error message and it will generate a whole new block of code. But AIs have a much harder time incrementally revising their work to tune into what’s needed.

This applies whether the AI is text-to-text or even text-to-image. Try getting Midjourney to make just the changes you want in an image. You can specify small areas to work on, but then Midjourney will do what Midjourney wants to do.

Also: The most popular programming languages in 2024 (and what that even means)

To be able to have a project where developers “hand assignments to an AI and the AI returns code for the project,” the AI has to be able to take criticism and make small, focused changes.

Right now, each returned revision is a complete roll of the dice.

2. Testing and quality control

It is possible to get one AI to test the output of another AI. I’ve done this with fairly good results, especially checking how regular expressions are constructed and will perform.

Also: 8 ways to reduce ChatGPT hallucinations

But given how much AIs hallucinate, and how often an AI will write code that just doesn’t work, testing protocols and suites will need to be developed as part of the AI programming process.

All that is likely to require humans to do much of the work. We won’t be able to rely on AIs to code until we can be sure the code is good. The bigger the project, the more complex the code, the more we’ll need human programmers and project managers to shepherd this all through the process.

3. Updates, maintenance, bug fixes, performance tuning

Software is far from static. Once released, bugs will need to be fixed, updates will need to be implemented, performance will need to be tuned, and so on. None of these are things an AI can do across a whole product.

Also: How to use ChatGPT to write code: What it does well and what it doesn’t

That’s not to say that an AI can’t help. It can certainly be handed a function, for example, and be prompted to rewrite (note that I did not say “update”) the function to provide better performance.

Of course, now you have an entirely new function that needs to go through functional testing. If something broke in the rewrite, you couldn’t look to just the few lines that were modified. You’d have to find the bug in the entire block of code.

4. Maintaining code you didn’t write

Maintaining code you wrote is work. Maintaining code you didn’t write is a whole ton of work. When you write the code (whether as an individual or a team), you have some knowledge of why the code was structured the way it was, how all the pieces work together, and why certain decisions were made.

When you maintain code that someone else wrote (human or AI), the code is something completely new. You first have to deconstruct the entire architecture of the code. If you’re doing it right, you’ll carefully document everything you discover. This deconstruction process is very time-consuming — and that’s before you modify or add even one line of new code.

I have some experience with this. Back in 2015, I adopted 10 open source WordPress plugins. That meant I was responsible for maintaining the code, fixing bugs and security flaws, and in a few of them, turning them into more commercially functional products.

Also: The best free AI courses

Not only did I have to deconstruct how the original programmers wrote their code, I also found that — in a few cases — I hated their programming styles. Programmers can be very particular about programming styles, the way in which the code is written and structured.

In most cases, code will run when written in a variety of styles, but each programmer’s brain works differently and gravitates to certain ways of writing code. I am particularly persnickety about code style. If it’s written the way I like, I’m incredibly productive. But if the coding style annoys me, my productivity drops and I get cranky.

Also: How to use ChatGPT to create an app

I have tried to get ChatGPT to convert from one of the more annoying coding styles into one I like, particularly for the mix of PHP and HTML. ChatGPT did not succeed. Over time, it may be possible to carefully train an AI on a preferred coding style and have it update adopted code into the style favored by the developer or development team, but we’re not there yet.

As such, maintaining AI-produced code will not only be more difficult than writing the code originally, it may also conflict with good style practices, making it even more annoying to work on.

Will AI replace developers?

The research report Gartner is promoting with its press release is titled “AI Will Not Replace Software Engineers (and May, in Fact, Require More).” That is a premise I wholeheartedly agree with — at least for the next decade or so.

Also: If you want a career in AI, start with these 5 steps

As I’ve shown, beyond using AI to help program or using AI to make programs more capable, there’s a lot of work to be done related to the fundamental logistics of programming projects.

There is no doubt AI can help with programming. I estimate that AI has save me at least a month in programming time over the past year, allowing me to complete projects I probably wouldn’t have undertaken given my limited free time.

But the code the AI helped write does break. A lot. And I’m finding myself spending as much time going in and fixing the edge cases the AI didn’t anticipate, reverse engineering the AI’s coding architecture, and then putting that code back into production. It’s certainly a far cry from hands-off delegation of coding work.

The full Gartner report is instructive and well-considered. But the report could use some more discussion of the areas I mentioned. I encourage the analysts to supplement their report with a greater focus on revision, testing, and ongoing maintenance. Keep in mind the process not just of generating code, but the entire lifecycle of a software project after the first set of semicolons* has been added at the end of all those lines of code.

Also: AI development and agile don’t mix well, study shows

What do you think? Will AI replace programmers or create more demand for programming skills. Are you already constantly upskilling? Do you think AI will require you to upskill a different set of talents? Do you think AIs will someday be able to do the bug fixing and maintenance that’s ever-necessary in programming projects.

*Note: Python does not require semicolons, but Java, JavaScript, PHP, and all the C-based languages do.


You can follow my day-to-day project updates on social media. Be sure to subscribe to my weekly update newsletter, and follow me on Twitter/X at @DavidGewirtz, on Facebook at Facebook.com/DavidGewirtz, on Instagram at Instagram.com/DavidGewirtz, and on YouTube at YouTube.com/DavidGewirtzTV.


[ad_2]

Leave a Reply

Your email address will not be published. Required fields are marked *