So, will we be replaced soon by AI as developers? It's a great question, and I believe no defined answer exists. On the other hand, there are already many important things for us developers to understand and things we can practice to make it less likely to become substituted one day.
In the live session "Will AI Replace Developers," we discussed this topic in detail and how we utilize tools like chatGPT and GitHub Copilot to aid our work, improve it, and learn while doing it.
🍪 Why you should read this article:
Explore the role of AI in software development with this article, which examines how tools like ChatGPT and GitHub Copilot aid but don't replace developers. Understand the balance between coding and software engineering and the impact of AI on evolving development cultures.
PS: The Podcast Version will be released on Monday here on my substack!
AI as a Supportive Tool, Not a Replacement
First, it's about something other than Skynet, Terminators, and overarching bits of intelligence who try to take our jobs. Today, available AIs like chatGPT and Copilot are helpers.
By helpers, I mean tools that help us accomplish our tasks faster, with a higher quality, and with a better learning effect. That's the possible theory; it's more complicated in reality.
While chatGPT is like a development partner who helps you answer questions in a primarily helpful way, Copilot is an autocomplete on steroids.
These two powerful tools can help you to be faster and grow as a developer. But be careful; it has severe cons, especially for Junior Developers. It comes later to this point.
📊 Poll: Is AI Part of Your Development Toolkit?
Integral part (39% votes)
Occasionally use (46% votes) ✅
Not included (13% votes)
Other (Comment) (2% votes)
You find all the poll details in the appendix of this article.
Distinction Between “Coding” and Software Development
AI is not a software developer or engineer; it doesn't make decisions or even stop you from making mistakes.
AI assists us in programming, brainstorming, and finding answers to questions that might pop up in our heads. AI supports you in a very practical way.
What AI is lacking entirely are the human skills of Software Development. Interdisciplinary transfer thinking is now impossible for AI on the level we need in software creation processes.
In short, AI is not a software developer or engineer; it doesn't make decisions or even stop you from making mistakes.
Additionally, AI needs to learn why a feature or part of the application is essential for the business or users later to align the implementation to aid the outcome, which isn’t the case right now.
Critical Thinking is something we humans can do very well. We understand the initial requirements and feedback during and after development and can integrate this knowledge into the solution as we go–AI is incapable of doing that in December 2023.
The style of how we talk to AI does impact the output a lot.
Importance of Human Oversight
AI acts like a "Highly intelligent, but careless, slightly confused, apathetic colleague with dementia"
When AI lacks Critical Thinking and human skills, we cannot blindly trust what AI creates for us. The more precise we are in the statement or question we pass as a query, the more likely it is to receive a possible fit we could, for example, take as a function for our code base.
And this is the point: We need to be precise, just about a single function, one of hundreds in our code-base.
We must know that AI acts like a "Highly intelligent, but careless, slightly confused, apathetic colleague with dementia" when working with you on your problem.
This means that you are still in charge as the human Software Engineer!
📊 Poll: AI as a Future Coding Partner: Insights from the Field
Definitely (68% votes) ✅
Possibly (24% votes)
Not likely (6% votes)
Other (Comment) (3% votes)
You find all the poll details in the appendix of this article.
Human learns from AI: Impact on Junior and Senior Developers.
The main learning phase for Juniors should be driven by Senior Mentorship.
To add some positive perks to AI, it can be very insightful about topics. The sheer speed of getting questions answered is just a dream. If you compare that with the traditional search on the web for people having similar problems, finding and reading documentation when you had a specific issue was painfully time-consuming.
🍪 I last used Stack Overflow 6 months ago. Unthinkable a year ago.
The number of things you learn during your chats with chatGPT or similar tools is incredible; for a senior, not for a junior! ⚠️
Seasoned seniors with broad experience have already developed a competence to determine what they want before working on a problem. AI is an excellent tool because the senior should be able to assess whether AI's feedback is safe to use or not.
This is a vastly different story for a Junior.
I was a Junior once and have trained many Juniors since then. Many are seniors today already, and, especially in the first years of your career, you are highly dependent on what experienced colleagues tell you.
Juniors are like sponges; they absorb every bit of knowledge they find. Which is great! But the problem is that they lack the competence to assess whether it's valid input. That is extremely dangerous for the development of a younger developer.
🍪 The main learning phase for Juniors should be driven by Senior Mentorship, Full-stop. AI is just a tool; it does not replace the human mentor.
When AI lies to you 😀
Conclusion: AI is impacting our Engineering Culture.
It's about emerging intelligent tools that revolutionize our development and engineering work
As developers, we think of programming and coding when it comes to software creation. But I see a shift towards AI taking over the efficient parts like programming and coding more and more.
🍪 We really need to differentiate between Software Engineering and Programming. Understanding this is key to understanding "Will AI Replace Developers?".
As I said in the beginning, it's not about Skynet, not about something that threatens us as humans. It's about emerging intelligent tools that revolutionize our development and engineering work. It's about focusing more on the business value, UX, user feedback, and the outcome.
👉 It's something tech leads, coaches, CTOs, and CIOs have been trying to invoke for years: Focus on the value stream.
We will become less "techy," code less, and focus more on the development process. We will transition into Conductors, away from playing instruments like TypeScript, c#, or Java. We will accomplish more while coding less.
PS: The Podcast Version will be released on Monday here on my substack!
Thanks for reading!
Adrian
🔮 Recommendation
Together with
we run the “Our Tech Journey” stream, and this topic was a part of it.Appendix: Audience Questionaire
Is AI Part of Your Development Toolkit?
Integral part (39% votes)
Developers emphasize AI's critical role, asserting that not using available AI tools is a self-imposed handicap. It's even suggested that familiarity with AI should be a criterion in the hiring process.
Occasionally use (46% votes) ✅
The largest group uses AI tools like auto-completion and templating assistants as needed. One developer shared a success story of using AI to quickly enable business stakeholders to configure workflows.
Not included (13% votes)
A segment of respondents remain unconvinced, highlighting AI's inability to grasp complex software architecture and the potential to mislead inexperienced developers.
Other (Comment) (2% votes)
A few engage in the nuanced debate of AI vs. ML, with some arguing that the term "intelligence" might be misleading for the tools currently available.
The 46 votes primarily come from Software Engineers and tech leads in small to mid-sized companies.
Extended Commentary:
Some developers see AI as a boon for productivity, crucial for tasks they wouldn't otherwise have time for, akin to a virtual pair-programming partner.
Concerns are raised about AI's capability to truly understand the intricacies of software engineering beyond generating code, with some suggesting that it can't yet replace the critical thinking required for tasks such as architecture and maintenance.
The sentiment that AI tools are becoming more effective over time is expressed, with developers noting improvements in their assistance with various languages and frameworks.
A few envision AI as a facilitator that could transform if clients could articulate their needs more precisely and if AI could maintain and evolve codebases effectively.
The transformational impact of AI is acknowledged, with developers sharing how AI has significantly changed their work habits and problem-solving approaches within a short period.
The commentary reflects a community at a crossroads with AI, recognizing its potential to revolutionize software development while maintaining a healthy skepticism of its current limitations.
AI as a Future Coding Partner: Insights from the Field
Definitely (68% votes) ✅
AI is considered a game-changing partner, especially for less familiar languages, streamlining the process and enhancing learning.
Possibly (24% votes)
Professionals recognize AI's potential in handling sub-tasks and as a learning aid while cautioning against reliance on it for entire projects.
Not likely (6% votes)
Some remain skeptical and wary of the time spent debugging AI-generated solutions.
Other (Comment) (3% votes)
A few discuss AI’s role as an assistant and mentor, enhancing productivity and providing guidance.
The 34 votes primarily come from Software Engineers and tech leads in small to mid-sized companies.
The commentary from various tech professionals reveals a general optimism about AI as a coding partner, with many noting its value in accelerating development and serving as a powerful learning tool. However, there's a consensus on human oversight, especially in complex tasks that AI cannot yet fully comprehend.
Collaborative Coding: AI is likened to a virtual pair-programming partner, beneficial for scripting and functions that work in isolation.
Learning on the Job: AI's explanations are highlighted as educational, helping understand and apply concepts in real time.
Beyond Code: Professionals note AI's utility in both coding and broader solutions, simplifying previously complex tasks.
Skepticism and Caution: Some warn against over-reliance on AI for complete projects due to issues like debugging, emphasizing the irreplaceable role of human developers.
Assistance and Mentorship: AI is seen as both an assistant and a mentor, suggesting a dual role in supporting and teaching developers.
Efficiency and Productivity: There is an appreciation for AI in increasing efficiency, particularly in tasks outside one's core expertise.
Evolution and Reality: The shift from AI hype to reality is acknowledged, with a recommendation to explore various AI tools to find where they can assist.
Quality Assurance: The importance of confirming AI's output through testing and other means is advised to ensure quality and accuracy.
Opportunities and Limitations: Excitement is expressed for AI's opportunities while recognizing that it does not solve everything, and its output should be approached with a critical eye.
Collectively, these insights paint a picture of AI as a transformative tool in software development, offering significant advantages while requiring careful management and oversight.