Previously, I described effective engineers as curious, adaptable learners keen on evolving and improving their collaborative and communicative skills. They are detail-oriented, view challenges as a springboard for innovation akin to what Elon Musk advocates and turn failures into lessons. They seek better practices and results with creative thinking, overcome difficulties with logic and optimism, and endorse deep, varied skills to solve problems and foster teamwork.
Today, I would like to touch on the significance of automation and artificial intelligence (AI). Before that, I will recount key experiences from my IT career to illustrate the constant evolution in technology and the role AI will play in upcoming groundbreaking advancements.
My professional journey began with the modular, message-passing, multi-process, and multi-user CTOS operating system by Convergent Technologies. To this day, I consider it to be one of the finest operating systems I have had the opportunity to use – we had diskless workstations, we had multi-tasking, multi-processing, and we wrote programs in segments of 64K. Here is a picture of the B21, the machine I miss the most, and on the right the B25, fondly referred to as the stackable toaster.
However, it did not have certain features that OS/2 offered at the time, and it certainly did not include the extensive range of additional functionalities and graphical interface (windows) that Microsoft Windows boasts today. There was also an occasion where I encountered a significant setback while developing a system service meant to integrate a new DES encryption module with the operating system. This setback (failure) led me to travel to San Jose in California, one of the operating system's development hubs, where I collaborated with a highly skilled guru who taught me extensively about operating system debugging and helped resolve the gremlin I had introduced in the service. The whole experience was astonishingly educational and became my initial lesson in how failure can lead to growth and spark innovation.
Upon the release of Windows 1.0, I immersed myself in assembler programming and particularly in resolving compatibility issues between CTOS and Windows. In the '90s, I recall the debut of Microsoft Solution Framework (MSF), NT 3.5, the original Visual Studio, and Visual Source Safe, which was developed by One Tree Software from North Carolina. The latter became a product and its creator, Brian Harry, became one of the leaders I admire most, as well as the driving force behind Team Foundation Server and Azure DevOps. This era introduced my second favourite device, the COMPAQ portable computer – although, when I reflect, I question the “portability.”
The early 2000s marked the inception of the Agile Manifesto, introduced Team Foundation Server 2005 with its extensive setup checklist, and saw the rise of the DevOps approach that would go on to impact my career significantly. This period led me to a new continent and company, where I had the honor to contribute to Agile and DevOps initiatives within the TFS team at Microsoft. My peers often hear me advocate for our transformation efforts; we automated extensively, executed over 70,000 unit tests in merely seven minutes on every pull-request, and embodied Donovan Brown’s definition of DevOps: "The union of people, process, and products to enable continuous delivery of value to our end users."
In the 2010’s we welcomed Azure and I joined WorkSafeBC in 2018 – see Can government agencies be innovative? for more details.
Lastly, we have seen the introduction of Azure OpenAI, GitHub Copilot, ChatGPT, and an overwhelming array of other AI innovations and chances for advancement. We are at the conclusion of the initial phase!
Below the timeline, you will find the major programming languages I have used, space programs I have tracked, and five books where I have ve consolidated my insights for others to enjoy. I may have omitted some key points, but remember, the digital realm is always evolving. Having highlighted these to underline the need for continuous learning as the technology landscape evolves, let us circle back to this blog's main topic: the inevitable change in an engineer's life and the critical roles of automation and AI going forward.
Here are two of my predictions that I would like to share and hear your views on:
Automation will not take your job, but an engineer using automation will!
Our team is committed to pioneering improvements and striving for engineering mastery by stewarding their insights and establishing guidelines to help safely navigate the realm of information technology. We implement automation to standardize and streamline monotonous tasks, freeing engineers to tackle more engaging and worthwhile projects. Yet, we observe that some engineers opt out of using automated systems, choosing instead to handle tasks manually.
Is it a resistance to change or distrust in automation that hinders adaptation? Regardless, adapting is crucial. For instance, QA testers should shift towards QA engineering and harness AI for test automation, integrating it early into the development cycle. Software programmers, too, should transition into software engineers, employing AI for routine tasks and code generation, to stay relevant in an increasingly automated field and rapidly evolving environment. The era of manual testing and coding to a specification (distinct from general development) is near the end! Keep in mind, machines excel at repetitive tasks with greater efficiency and reliability compared to humans, who may become distracted and lose concentration as their interest wanders.
Artificial Intelligence (AI) will not take your job, but an engineer using AI will!
Artificial intelligence (AI) has quickly become an integral part of our environment, processing vast amounts of data, automating routine tasks, offering tailored experiences, predicting in milli-seconds what took us days-weeks to analyse, and aiding in making decisions, thus fostering innovation and efficiency. The digital realm is brimming with potential for the optimistic and bold who aim high. I relish the chance to contribute to this crucial phase in the digital domain, with AI enabling me to tackle innovative and more strategic challenges. So, why is there such an Angst for AI?
It is unthinkable that anyone aspires to be an engineer secluded in a dim and solitary space, fearing change. We are inherently inclined to collaborate, exchange insights, innovate, investigate, and collectively concentrate on creating solutions, not fixating on issues, while consistently providing worth to satisfied users. We wish to engage in compelling and valuable work instead of monotonous and tedious tasks. Therefore, we should embrace automation and, at present, artificial intelligence. And no, we are not welcoming SkyNet or a horde of terminators – not just yet.
Looking forward to my team revealing their AI success stories on this technical blog and/or the DevOps Vancouver meetup in the near future.
Conclusion
Nonetheless, based on my current knowledge, I believe that neither automation nor artificial intelligence will be a substitute for an effective (open-minded) and skilled (continuous learning) engineer.
What do you think?