Software Engineering at a crossroads

My journey of software engineering started about 25 years ago around 1999, when I was a high school student in a little city Ezhou in China. It was before China rejoining WTO and the fast developing of it's economy and technology. I had never seen a computer at the time, without knowing what a computer is and never mention things like email and Internet, a small article from 《读者》(Chinese "copy" of Reader's Digest, yes "copy" not copy.) persuaded me to beleive 21st century will be the century of Computer, I enrolled Computer Science as my major for all the universitries I applied.

Although Computer Science in general covers hardware and software, but if one wants to do hardware then he/she probably need study electrical engineering. So Computer Science basically means software engineering as a career. The small article was quite right, information technology has been in high demand in the past 25 years, so far. I had been busy working on all sorts of software projects and companies ever since my first job.

It has been so busy that I barely had chance to think again (after leaving university) what software actually is. Only until recently, AI, specifically LLMs had mastered coding and Agents are now capable of producing working website by natural language, that I started think again what software is, and realised how facinating it is , even after doing software job for more than 20 years. Text book defines software as a set of instructions, data, or programs that tell a computer how to operate and perform specific tasks. If I look at the definition today, it is not just telling a computer how to work anymore. It has been "telling" almost everything how to work, be something small as a smart wrist band or something big as nuclear power plant, be something trivia as doing laundry or important as running a country. Because we are able to abstract almost everything to information/data , which can be processed by computer. The "set's of instructions", which used to be CPU instructions, could now be instructions to your microwave, your bank for financial transactions or even a rocket engine.

Software consists of a set's of instructions and data. As instuctions can be represented as data, software naturally has the characteristic of "data", which costs almost nothing to re-produce and transfor. I think that is one of the reasons why tech companies could make billions of billions dollars, as their cost of making copies is almost zero. But what really makes software stand out from just 'data' is it has some "Idea" of how certain things should be operated, and it is programmed to apply the idea. Think about it, isn't it fascinating that it's merely an idea? Even the creation (design, implement and test ) of the software, does not require physical material, it's all just ideas.

Recently, there has been a lot of reports about AI taking over coding jobs, and capable of creating software and web-site in no time. It seems software engineering has come to a crossroads, will it gradually taken over by AI and eventually become a obsolete industry/career, or will it embrace AI and revolutionize to a new form and be "great again"?

With AI seemingly mastering software creation, I doubt it is capable of producing great ideas, ideas about how certain thing should be operated to help addressing real life challenges. Challenges that human faces. As ultimately, those are where all the values come from and money goes. With AI further advancing it's skills, it will further reduce the cost of software implementaion, and make the Idea of software more valuable.

With all the challenges we are facing, and sure they will be new challenges, the demand of software (idea of how certain thing should be operated) will only ever increase. And with the help of AI, more and more people will come with their own ideas of solving challenges, that might only be faced by few people or himself/herself.

And as a software engineer myself, it's undeniable that a significant part of my effort in work was spent on implementing software, but helping business solving challenges was the real job. With AI to help with implementation, I should shift my effort to understand the business and come up with better ideas. If I can still have the job 😄.

With improving productivity from AI, it is inevitable that the resource demand for existing scope of work will decrease. Although it's also true that, with the rise of AI, the scope would be expanded, but not sure by how much and where it's going to be. Some software engineers might lose their job, including myself, which did bother me for quite a while. I thought about starting some odd food business, or find a physical demanding job like a plumber or sparkie, I even thought about living offgrid, farming and hunting/foraging my own food so that I don't have to have a job. But I realised I would stand a better chance to try to expand the scope. Meaning besides contributing ideas to my workplace, I should also come up with ideas solve real life challenges, with the help of AI, starting from challenges of my own life. By doing this I could not only address some of my challenges in life, but also better utilise AI as my helping hands, instead of seeing it as enemy that 'stealing' my job. As aparently, last thing I should do is standing at the wrong side of the history.

** As the main purpose of writing this post is to practice my English, no AI technology is utilised when creating the post. However I will use AI to review and suggests improvement on the post, and this post will remain it's non-ai enhanced form.