Skip to Content
This article has been translated from Japanese using AI
Read in Japanese
This article is in the Public Domain (CC0). Feel free to use it freely. CC0 1.0 Universal

Omnidirectional Engineers in the Liquidware Era

It is well-known that generative AI can produce photorealistic images, illustrations, and paintings simply by being given instructions.

Meanwhile, in the business world, attention is focusing on generative AI's ability to generate programs.

Conversational AI is powered by large language models, a foundational technology, and excels at conversing in various languages and translating between them.

Programming languages, used to create programs, are also a type of language. Human programmers, in a sense, translate software requirements received verbally into programming languages.

This is why conversational generative AI, which uses large language models, is also very adept at programming.

Furthermore, programming is an intellectual task where the correctness of the results can often be automatically and immediately verified. This is because a created program can be executed and automatically checked to see if it produces the desired output.

In fact, when human programmers create a program, they often simultaneously create test programs to verify the results, developing the main program while checking that it functions as intended.

Generative AI can also progress with programming while testing in the same way. If a human provides precise instructions, it's possible for the AI to automatically iterate and complete the program until it passes all tests.

Of course, due to the limitations of generative AI's programming capabilities and the ambiguity of human instructions, there are many cases where tests cannot be passed even after numerous iterations. Moreover, inadequate or incorrect tests often lead to bugs or problems in the completed program.

However, as generative AI's capabilities improve, and human engineers refine their instruction methods, coupled with mechanisms to enhance generative AI's programming knowledge through internet searches, the scope for automatically generating appropriate programs is expanding day by day.

Additionally, with the business world's focus, top companies engaged in generative AI research and development are also heavily investing in improving generative AI's programming capabilities.

In this situation, the expansion of the scope and volume of automated programming tasks that can be entrusted to generative AI is expected to accelerate.

There are many instances of individuals who have never developed programs before setting up a basic development environment using internet information, then relying on generative AI for the programming, completing projects together as a team of two.

As a programmer myself, I use generative AI for programming. Once I get the hang of it, I can complete software without editing the program at all, simply by copying and pasting code into files according to generative AI's instructions.

Certainly, there are many instances where I get stuck. These are mostly due to minor differences between my computer or programming development tool settings and common configurations, or because free software components are newer than what generative AI was trained on, causing a knowledge gap, or because my requests are slightly unusual.

In cases without such minor discrepancies or special circumstances, and when instructed to create very common software functions, appropriate programs are generated in most situations.

Towards the Liquidware Era

As a software developer, I can release the software I create, and that software, released by us engineers, is then used by various users.

The future where this software development can be done by anyone with generative AI is an extension of the discussion so far.

However, this isn't just a change on the software development side; significant changes are also coming to the user side.

The task of instructing generative AI verbally to automatically add or modify functions in software can be done not only during the development phase before software release but also during its use. Moreover, it can be performed by the software user themselves.

Software developers can define the scope of what can and cannot be changed, then release software with generative AI-powered customization features.

This would allow users to ask generative AI to modify minor inconveniences or screen design preferences within the software.

Furthermore, users could add useful features found in other applications, combine multiple operations into a single click, or view frequently accessed screens all on one display.

For software developers, enabling such user customization offers significant benefits: it eliminates the effort of implementing feature requests themselves, and it can boost software popularity by avoiding negative reviews and dissatisfaction over usability.

When users can freely change screens and functions in this way, the concept deviates significantly from what we traditionally call "software."

It would be more fitting to call it "Liquidware," implying something even more fluid and adaptable than software (which is already more flexible than hardware), and something that perfectly fits the user.

Functions were once realized solely by hardware. Then, interchangeable software emerged, enabling functions through a combination of hardware and software.

From there, we can envision the emergence of Liquidware, meaning parts that can be modified by generative AI. Consequently, functions will be realized by hardware + software (provided by developers) + Liquidware (user modifications).

In this Liquidware era, users' ideas for modifications will explode.

A groundbreaking modification idea invented by one user might become a hot topic on social media, leading others to imitate and modify various Liquidware applications.

Moreover, Liquidware capable of handling various software applications in an integrated manner is also likely to emerge. This means users could view timelines from multiple different social media platforms in one app, or search results could integrate outcomes from numerous platforms.

In this way, in a world where Liquidware is widespread, various devices, including PCs and smartphones, will provide functions that perfectly fit each of our individual lives and activities.

A Current Phenomenon

For software engineers like myself, it's crucial to understand that Liquidware isn't a futuristic concept or something several years away.

This is because even very simple Liquidware is already achievable.

For example, let's say I'm an engineer developing a web application for my company's e-commerce site.

Such a web app would have databases, sales management systems, and product shipping systems on servers managed in-house or contracted through a cloud service. When a user makes a purchase, these systems link up to handle payment collection and product dispatch.

Core business systems and databases like these cannot be arbitrarily modified.

However, a user-facing e-commerce site's web screen design can be modified to suit individual users without causing significant problems. Of course, if one user's changes affected other users' screens, that would be an issue, but individual user-specific customizations are fine.

For instance, various modifications are conceivable: enlarging text, changing the background to a dark tone, repositioning frequently pressed buttons for easier left-hand operation, sorting items by price on a list screen, or displaying the details of two products side-by-side.

Technically, these modifications can be achieved by altering the configuration files and programs like HTML, CSS, and JavaScript that display the screen in the browser.

From a security perspective, these files originally run on the web browser. Therefore, parts that can be modified by an engineer knowledgeable in web apps only handle functions and data that are safe to modify.

Thus, on the e-commerce web app's server side, a mechanism can be created to store these files separately for each logged-in user, add a screen for conversing with a chat AI, and then modify that user's HTML, CSS, and JavaScript files on the server according to their requests.

If this text, along with the existing e-commerce web app's configuration information and source code, were presented to a generative AI, it would likely provide the steps and necessary programs to add such functionality.

In this way, Liquidware is already a current topic; it wouldn't be surprising if it were an ongoing phenomenon right now.

Omnidirectional Engineers

Even with the expanding scope of AI-driven automatic programming and the advent of the Liquidware era, software development still cannot be carried out solely by generative AI.

However, it is certain that the emphasis on programming in software development will significantly decrease.

Furthermore, to develop software smoothly, a broad range of knowledge and engineering skills are required, extending from general programming to cloud infrastructure, networks, security, platforms, development frameworks, and databases—all the way up and down the system stack for the entire system to function.

Personnel with such knowledge and skills are called full-stack engineers.

Traditionally, a few full-stack engineers would handle the overall design, while the remaining engineers would specialize in programming, or focus on specific non-programming areas within the system stack, thus dividing roles.

However, as generative AI takes on the programming aspect, software development costs will be significantly reduced, leading to the planning of various new software development projects.

Consequently, in each development project, engineers who can merely write programs will be largely unnecessary; instead, a large number of full-stack engineers will be in demand.

Moreover, in this scenario, simply having full-stack knowledge and skills will be insufficient. This is because the types of software required in various development projects will diversify, meaning that development will not always be requested using the same system stack. Furthermore, demands for complex systems requiring multiple system stacks will undoubtedly increase.

For example, the system stack for a web application differs from that for business or core systems. Therefore, a full-stack web application engineer cannot be entrusted with a core system development project.

Similarly, web applications, smartphone apps, and PC applications each have different system stacks. In the world of embedded software, such as IoT, the system stack will vary completely for each embedded device.

However, as the emphasis on programming decreases and overall software development costs fall, the development of complex systems combining software with these differing system stacks is likely to increase.

While such development will require assembling multiple distinct full-stack engineers, engineers who can oversee the entire system and handle basic design will play a crucial role.

This means there will be a demand for engineers with omnidirectional knowledge and skills across numerous system stacks, transcending the boundaries of individual system stacks.

Such engineers will likely be called omnidirectional engineers.

And just as the demand for engineers who can only program will decrease due to generative AI, an era will eventually come when the demand for full-stack engineers confined to a single system stack will also diminish.

If you wish to remain active as an IT engineer in that era, you must start immediately on the path to becoming an omnidirectional engineer.

The Role of Omnidirectional Engineers

The programming languages, platforms, and frameworks that will be developed are diverse.

However, an omnidirectional engineer does not need to master all of them, because they can also receive assistance from generative AI.

If you leave it to generative AI, even programming languages, platforms, or frameworks you've never used before can be generated simply by providing verbal instructions.

Of course, there is a risk of introducing bugs or security vulnerabilities, or accumulating technical debt that could make future modifications difficult.

To identify and mitigate these risks, knowledge of the specific language or library is necessary. However, this knowledge can also be obtained from generative AI. An omnidirectional engineer only needs to be able to solidly construct procedures and mechanisms for detecting and preventing these issues, or for handling them post-occurrence.

These procedures and mechanisms do not drastically change with different system stacks. If the procedures and mechanisms for preventing bugs and security vulnerabilities and ensuring future extensibility are formalized, then the rest can be left to generative AI or engineers specialized in those specific areas.

Omnidirectional engineers do not need to possess detailed knowledge or long-term experience with every individual system stack.

One of the major roles of an omnidirectional engineer is to design how functions are distributed and how multiple complex software systems, operating collaboratively across different system stacks, interoperate.

In addition, considering how to develop and manage the entire software is also a crucial role for an omnidirectional engineer.

Omnidirectional Software

Let's consider what kind of software development an omnidirectional engineer is needed for.

Earlier, I gave the example of developing an e-commerce web application.

Under the direction of an executive tasked by top management to refresh this e-commerce web app, the planning team might come up with the following requirements:

User Community Platform Integration: This means providing a platform not just for a dedicated e-commerce app or site, but where users can interact about the products themselves and how to use them. The aim is user retention, word-of-mouth effect, content enrichment through user contributions, and the integration of feedback (both positive and negative) into product development, new product planning, and marketing.

Omni-device compatibility: This makes the user community and product information accessible from various devices, including not only web apps but also smartphone apps, voice assistants, wearable devices, and smart home appliances.

Omni-platform compatibility: This includes not only the company's own user community platform but also, for example, product listings and review sharing on comprehensive e-commerce sites, integration with social media, and functional and information linkage with various AI tools.

Business system refresh: While temporarily linking with existing sales management and product delivery systems, this also involves refreshing these systems. Post-refresh, the plan includes real-time sales data aggregation and demand forecasting, and integration with inventory management systems. Furthermore, linkage with regionally distributed inventory systems provided by delivery companies and delivery services on the carrier side will be phased in, requiring the information system to gradually adapt its integrations accordingly.

Liquidware compatibility: All user-facing interfaces will, of course, be Liquidware compatible. Additionally, internal user interfaces for product development and planning (such as information aggregation and feedback), system operations departments, and reports for management will also all be converted to Liquidware.

If a development plan for such complex software were presented, a traditional software development team would likely not accept it immediately. Alternatively, through discussions about system specifications, they would logically demonstrate the need for enormous development costs and time, pushing for significant cuts to the specifications.

However, what if generative AI could automate most of the programming, and more than half of the proposed system stacks were already experienced by someone on the team? And what if the team had a track record of successfully launching new system stacks, platforms, and frameworks from scratch with the assistance of generative AI? And what if you, as an omnidirectional engineer, have already started on this path and intend to continue down it?

From that perspective, it should look like a very attractive project. You would get to work with a planning team that brings ambitious proposals from top management, and a development team with the potential to grow into an omnidirectional software development team.

There's also the reassurance of existing systems. It's also a project that can be grown incrementally through an agile development process, starting with quick-win, high-impact features and gathering feedback from early adopter users.

Considering all this, the development of this omnidirectional software should appear to be a very attractive project.

Conclusion

With automatic programming driven by generative AI, Liquidware and omnidirectional software development are already becoming current realities.

In this context, IT engineers increasingly need to go beyond full-stack and aim to become omnidirectional engineers.

Beyond that, their scope will expand even further, moving beyond the realm of IT systems to encompass omnidirectional business engineering—engineering organizational activities themselves, by connecting customers, internal employees, and AI—and omnidirectional community engineering.

And even further beyond, I foresee the emergence of a field called omnidirectional social engineering, aimed at comprehensively improving society.