Generative AI and Engineers of Future
I had just completed watching a ChatGPT Video and was taking a walk. ?I was just thinking about disruptions that keep happening In IT and how as engineers needs to keep reinventing to stay relevant.?A funny though came to me when thinking about the Shift Left principle where engineering teams take more ownership, “When we keep moving activities by applying shift left what will people on the right do".
I started to think a bit deeper on how the roles of engineering teams have changed over last few decades and about how the future is holding for software engineers.
Just the way we code and well as programming languages leveraged has evolved and changed every decade.
From programming language prospective we started with assembly languages then moved to procedural languages, OOPS, Functional Programming and now Low Code / No Code platforms lines of code has been drastically reducing.?
In terms of writing code, we started from basic text editors like VI where developers need to write code as well as manage formatting to a more robust IDEs that helps in developer productivity to more recent tools like GitHub Co-Pilot where AI becomes a pair programmer.
The key intent of the tools and accelerators are improved developer productivity to enable engineers to focus on business logic that provide customer value.
I have been reading articles as well as listening to analysts on how AI is changing how we code. We have seen many discussions about jobs getting vanished due to AI on one side and others saying AI will be enablers for developers.
?I am summarizing my thoughts with the caveat that no one know the future we can only be as nibble and agile to adopt to disruptions.
I wanted to start this article by sharing a few thoughts on AI & in specific Generative AI:
Garbage In Garbage out
AI Models are not Perfect?
Coders should be the Master
·???????Garbage In Garbage out:?Any model is as good as the competency of the person who is leveraging. Engineers need to understand AI models capabilities, limitations, and attributes to calibrate the model and get the best outcomes.
·???????AI Models are not Perfect: ?Model Outcomes are based on the trained data as well as its capabilities. Engineers cannot take outcome as 100% correct and need to validate and fine-tune the output based on the specific expectations.
·???????Coders should be the Master: ?Good Coders will be Good Masters of models; likewise bad Coders will make any AI models look bad.
Let us me share my thoughts on some of the key attributes that will be critical for Software Engineers to stay relevant and manage disruptions including AI.
The below diagram show cases some key attributes that I think will be key for engineers to be relevant in the face of disruptions like Generative AI.
1)??????Coding and Engineering Principles:
?Coding will continue to be most critical skill and it should come as a surprise.?As already mentioned earlier, AI models should not be experts and we need strong coders to validate / manage the AI Model outputs as well as interface it in right manner.?
The basic Software engineering principles are not going to change and will be relevant. End of the day irrespective of who generates the code software engineering principles are going to be essential for robust code.?Engineers who have mastered software principles Modular code, Clean Code principles etc. ?are always going to stay ahead pf the pack.
领英推荐
Case in Point:
Another example could be Low Code Platforms.?I have seen enormous difference in competency of engineering folks who have spent significant coding experience before moving to Low Code Platforms then someone who started working directly on Low Code Platforms.
2)??????Full-Stack Mindset:
Full Stack mind set is the second attribute I see is as critical in future as well.
Full Stack developer is currently an in-thing in the industry.?We see job postings that ask is for a Full Stack developer along with a 3-page JD covering every tech stack and tools under the sun.
I have a different take about Full Stack developer, my view is this cannot be based on tech stack / tools but full stack mindset. The mindset here is about someone being agile & nibble, has open mind to up-skill / cross-skill up skill as well as adopt to disruption’s like ChatGPT, GitHub Copilot etc.
Case in Point:
We have seen enterprise adopting Product structure teams adopting You Build, You Run philosophy. The expectations of engineers to be agile and nimble to adapt to disruptions is what is full stack mindset.
3)??????Customer Domain Competency
The third one is Domain Competency. It is not that domain is not important now but in the new disruptive world of AI including generative model, domain competency more specific with customer value chain will become more important for engineers than we have imagined.
Hence for Engineering Teams in addition to what they are building Who there are building for and the value they will be generating will become more critical. The more someone has customer specific domain competencies the engineers can understand what brings value than just technical capabilities. ??
Case in Point:
I was reading a report which quoted a CIO stating only 5% of code written is adding value to stakeholders.??The 5% may be an exaggeration, but point is about enhancing customer value multiple times when engineers know the domain the customer is operating on.
Also, increasingly LLM models will also become more domain specific and more specific to a customer data.
4)??????AI/ML Understanding
AI/ML cannot be ignored and has already going to bring more disruptions across industries including IT.??The last attribute that I feel is going to be important for every developer is basic understanding about AI models to be productivity. This also will help align to the major disruption that is happening currently.
There is a thought process in the industry that in the future we will have customized Language Models getting trained based on specific customers data. Engineers may need to work on the models to leverage code generated to the context of customer.
?The understanding of models means knowing the??capabilities of the model, understand its limitations, knowing the parameters for tuning the model. You are driving the model for your benefit. AI/ML is a must know aspect for every software engineer.
?????????????Case in Point:
ChatGPT is being leveraged across fields including coding.?How ever we do know the limitations of the model like providing incorrect information in most authentic way, not provide real time data updates, need to provide right context to get right information etc. We need a good coder to leverage ChatGPT code output as well as validate its output.
To summarize AI tools will drive productivity improvements that enables more work to be completed with less coders. The productivity improvements will reduce # job opportunities resulting in top coders getting opportunities in the new norm. There is no denying that there will also be new AI roles getting created opening as part of AI disruptions.
AI models may be able to generate code but you still need a good
coder to leverage it to full potential. Also engineers need to adopt
to tech distruptions like AI to stay relevent.
Solutions and Architecture - HCLS EMEA at Amazon Web Services (AWS)
1 年Excellent guidance to the builders community, Rajesh!
BPM consultant
1 年Nice post
Senior Solutions Director at HCL Technologies
1 年Correct Good Developer will always be ahead and very much required. Superb article.