Allow me to share a personal experience that perfectly illustrates the challenges I will discuss. I was involved in a car accident where a vehicle coming from the opposite direction severely damaged the right side of my car. Following the procedure, I filed an accident report with the other party, although I found myself unable to provide my insurance number simply because I didn’t have it readily available at that moment.
In the meantime, I went to my regular dealership so that an appraisal could be carried out and the next steps for repair could be determined. I then contacted my leasing company, and one of their agents agreed with me and the dealer that I would drop off the vehicle within two weeks. A replacement vehicle would be provided, and the full repair would take one to two weeks.
However, due to my lack of foresight, I did not deem it necessary to contact them again initially. A few days later, I received a letter from them informing me of the accident – which was correct – but also stating that I had not submitted the accident report and that without it, their insurance reserved the right not to cover the damages. In fact, I had sent this document a week earlier, but to the wrong email address. Out of habit, I had used their general contact details, avoiding contacting the agent in charge of my leasing file – who had recently retired. As a precaution, I had even added the generic address, but clearly without success since the insurance department had not received it.
I then called them back urgently to obtain clarification. They confirmed that the accident report was missing, and the agent, with great understanding which I acknowledge, told me that I had to send it to another specific address because the insurance department had not been notified by their colleagues in charge of customer relations. Moreover, the latter was not authorized to provide me with a replacement vehicle until the repair shop had received their approval – even though it was the approved dealership where I had been carrying out all maintenance operations for years.
This kind employee then offered, as an exception, to handle my entire case without further difficulty since the drop-off of my vehicle was imminent, just a few days away. She knew also that my leasing contract was expiring and that I would have to return the vehicle in two weeks to obtain a new one.
While this situation caused me a little stress, it was only temporary. An hour later, the agent contacted me again to confirm that everything was settled: I could bring my vehicle the following Monday and a replacement vehicle would be provided for the duration of the repairs.
Lessons from This Experience
You may be wondering why I am sharing this story with you.
First of all, I was unaware of the procedures governing the reporting of an incident in the context of a leasing contract. Should I first contact my company, directly the historical leasing company, or the new one? When I called them, why didn’t I reach the dedicated claims and insurance department directly? Why didn’t I find any information about this on their website? Why, when everything seemed clear to me – that I would drop off my vehicle within two weeks, that a replacement vehicle would be waiting for me, and that the repairs would be handled smoothly – did things unfold differently due to a lack of following the proper procedure?
Beyond that, how can a single service company exhibit such a lack of communication between two complementary departments?
The Revolution of the “AInternet”
We are entering a new era where artificial intelligence will be at the heart of exchanges between human beings. Where everyone previously had to search for information themselves on the Internet, navigating from site to site and compiling data to find a company’s contact details, the instructions for a recipe, the contacts of a repairman, or browse the Yellow Pages, the new paradigm will rely on exchanges between humans, intermediated or not by an artificial intelligence capable of performing synchronous or asynchronous tasks, i.e. in the background, to provide immediate knowledge to the user rather than forcing them to seek it out.
And to return to my use case, the AInternet brings a revolutionized customer experience that unfolds as follows:
When I am involved in an incident, I ask my personal AI assistant to help me fill out the accident report digitally. I do not have to provide all the information since my assistant has a global context encompassing data related to my vehicle, its insurance, my contract, my identity card, my passport, my postal and telephone contact details, my insurer, the maintenance status of my car, its technical inspection certification, etc. All this information allows for automatic and complete filling of this type of interaction.
Next, I only need to ask my assistant to contact the assistants of my leasing company and my insurance company, to ensure that the report I have validated and electronically signed is transmitted and processed by these two parties.
The assistant of the leasing company then informs the agent that a replacement vehicle is required and that an approved garage must be contacted to book an appointment for the repairs. It also determines whether my car should be taken directly to the dealership in charge of its regular maintenance. The relevant agent then handles my vehicle accordingly.
The agent only has to ask their assistant for the contact details of my garage to reach out directly.
From there, a genuinely empathic human relationship is established as we build a frictionless mutual understanding of the situation. Following the garage’s preliminary appraisal report, the leasing agent and the garage are prepared to agree on an appointment date, which is then recorded in the various systems.
The garage proceeds in an automated manner with the reservations and orders for the spare parts necessary for the repairs.
Simultaneously, the leasing company manages with the insurance company all the steps required to allow for the vehicle reparation and the provision of a replacement vehicle during the downtime.
Finally, the agent contacts me personally, by phone or message on a platform such as WhatsApp, to confirm everything is in order:
The incident has been properly recorded and the insurance company will cover all costs. An appointment has been set with my garage. A replacement vehicle will be provided during this period. An estimated date for returning the repaired vehicle has been communicated. They wish me an excellent day with a smile, since their assistant and mine have handled the entire procedure seamlessly. This augmented interaction allows us to reach new heights of fluidity and ubiquity in exchanges.
I am optimistic, indeed. Why wouldn’t I be? The transformation is already in motion.
The Internet will no longer be confined to a vast catalog of information to consult, such as books, encyclopedias, or applications, where interactions must be initiated and orchestrated by us, humans. But the orchestration between an individual and an organization, between two individuals, or between an organization and a computer system, will be performed like a symphony by intelligent agents, artificial intelligences.
This demonstrates an evolution of the World Wide Web architecture, which will constitute a veritable system of systems composed of human beings, applications, automata, and artificial agents.
The challenge from now on to enable this progression towards the era of digital augmentation will be to build artificial intelligence at the heart of human interactions. It is a matter of UX innovation.
It will no longer be a question of programming these interactions in advance by limiting the possibilities, but rather of training these artificial intelligences to handle a wide range of possible scenarios while framing and securing the use cases that could result from malicious computer hacking.
Ensuring a secure web environment requires a multi-layered approach that goes beyond safeguarding the AI models themselves. Equal vigilance must be applied at the integration points, where we erect robust firewalls and implement stringent access controls. These protective measures aim to prevent artificial intelligence from inadvertently or maliciously gaining entry to sensitive resources or confidential information that could compromise the safety and well-being of individuals, imperil organizations, or even threaten the integrity of the entire system.
Thus, emerging risks, such as jailbreaking, aimed at deceiving an artificial intelligence devoid of physical senses such as sight, hearing, and spatial awareness, allowing the authentication of a person, a company, or a system, will have to be compensated by other supervision and protection mechanisms.
It is on this note that this article concludes. We are living in an era of transition rich in exciting developments, and it will be up to you to build the Internet of tomorrow: the Augmented Internet.
APIs are key to scaling your #business within the global ecosystem. Moreover, your API is a fundamental building block for augmenting universally accessible #AI services, like ChatGPT.
Building an #API, however, can be daunting for non-IT individuals and junior engineers, as it involves complex concepts like API schema, selecting libraries, defining endpoints, and implementing authentication, among others. On the other hand, for an expert backend #engineer, constructing your fiftieth API may feel repetitive.
That’s where “API Hero” comes in, specifically designed to address these challenges.
Consider an API for managing an “#Agile Planning Poker”. Given a list of functions in plain English, such as “Create Planning Poker”, “Add Participants”, “Estimate User Story”, etc., (including AI-suggested ones), the GPT will generate:
The public interface of the API (for engineers, this corresponds to the OpenAPI/Swagger spec).
#Code in the chosen #programming language, with a focus on modularity and GIT-friendly project structure.
Features like API security, configuration management, and log management.
An option to download the complete code package (no more copy-pasting needed 💪).
And there’s more!
Search for “API Hero 🤖| AMASE.io” on #ChatGPT’s GPT store. Give it a try and send your feedback for further improvement.
By the way:
Currently, GPTs are accessible only to ChatGPT Plus users.
If you want to know more about the decisive nature of API for your business, check my article/podcast “Why API are Fundamental to your Business”.
Link to the GPT: https://chat.openai.com/g/g-a5yLRJA1J-api-hero-amase-io
In this installment of the Generative AI series, we delve into the concept of “Prompt as new Source Code”. The ongoing revolution of generative AI allows one to amplify one’s task productivity by up to 30 times, depending on the nature of the tasks at hand. This transformation allows me to turn my design into code, eliminating almost the need for manual coding. The time spent typing, correcting typos, optimizing algorithms, and searching Stack Overflow to decipher perplexing errors, structuring the code hierarchy, and bypassing class deprecation among other tasks, are now compressed into one. This minimization of effort provides me with recurrent morale boosts, as I achieve significantly more in less time and more frequently; these instances are micro-productivity periods. To put it in perspective, I can simply think about it during the day, and have a series of conversations with my assistant while I commute. My assistant is always available. In addition, I gain focus time.
I don’t need to wait for a team to prove my concept. Furthermore, in my founder role, I have fewer occasions to write extensive requirement documents than I would when outsourcing developments during periods of parallelization. I just need to specify the guidelines once, and the AI works out the rest for me. Leveraging the AMASE methodology to fine-tune my AI assistant epitomizes the return on investment of my expertise. Similarly, your expertise, paired with AI, becomes a powerful asset, exponentially amplifying the return on your efforts.
Today, information technology engineering is going through a quantum leap. We will explore how structured coding is being replaced by natural language. We refer to this as prompting, which essentially denotes “well-architected and elaborated thoughts”. Prompting, so to speak, is the crystallization of something that aims to minimize the loss of information and cast-out interpretation. In this vein, “What You Read is What You Thought” becomes a tangible reality.
The Unconventional Coding Experience with AI
Although the development cycle typically commences with the design phase, this aspect will not be discussed in this article. Our focus will be directed towards the coding phase instead.
The development cycle with AI is slightly different; it resembles pair programming. Programming typically involves cycles of coding and reviews, where the code is gradually improved with each iteration. An artificial intelligence model becomes your coding partner, able to code 95% of your ideas.
In essence, AI acts as a coach and a typewriter, an expert programmer with production-level knowledge of engineering. The question may arise: “Could the AI replace me completely? What is my added value as a human?”
Forming NanoTeams: Your AI Squad Awaits
My experience leads me to conclude that working with AI is akin to integrating a new teammate. This teammate will follow your instructions exactly, so clarity is essential. If you want feedback or improvements in areas like internal security or design patterns, you must communicate these desires and potentially teach the AI how to execute them.
You will need to learn to command your digital teammate.
Each AI model operates in a distinct yet somewhat similar fashion when it comes to command execution. For instance, leveraging ChatGPT to its fullest potential can be achieved through impersonations, custom instructions, and plugins. On the other hand, Midjourney excels when engaged with a moderate level of descriptiveness and a good understanding of parameter tweaking.
A New Abstraction Layer Above Coding
What exactly is coding? In essence, coding is the act of instructing a machine to perform tasks exactly as directed. The way we’ve built programming languages is to ensure they are idempotent, repeatable, reliable, and predictable. Ultimately, coding is translated into machine language, creating a version that closely resembles human language. This is evident in modern languages like TypeScript, C#, Python, and Kotlin, where instructions or controlling statements are written in plain English, such as “for each”, “while”, “switch”, etc.
With the advent of AI, we can now streamline the stage of translating our requirements into an algorithm, and then into programming code, including structuring what will ultimately be compiled to run the program. Traditionally, we organize files to ensure the code is maintainable by a human. But what if humans no longer needed to interact with the code? What if, with each iteration, AI is the one updating the code? Do we still need to organize the code in an opinionated manner, akin to a book’s table of contents, for maintainability? Or do we merely need the code to be correctly documented for human understanding, enabling engineers to update it without causing any disruptions? Indeed, AI can also fortify the code and certify it using test cases automatically, ensuring the code does not contain regressions and complies with the requirements and expected outcomes.
To expand on this, AI can generate tests, whether they be unit tests, functional tests, or performance tests. It can also create documentation, system design assets, and infrastructure design. Given that it’s all driven by a large language model, we can code the infrastructure and generate code for “Infrastructure as Code“, extending to automated deployment in CI/CD pipelines.
To conclude this paragraph, referring to my first article in the “Generative AI series”, it is apparent that Natural Language Processing is now the new programming language expressed as prompts. The Large Language Model-based generative AI model is the essential piece of software for elaborating, structuring, and completing the input text into code that can be understood both by human engineers and digital engineers.
The New Coding Paradigm
This fresh paradigm shift heralds the advent of a new form of coding—augmented coding. Augmented coding diminishes the necessity of writing code using third and fourth-generation languages, effectively condensing two activities into one.
In this scenario, the engineer seldom intervenes in the code. There may be instances where the AI generates obsolete or buggy code, but these can often be rectified promptly in the subsequent iteration.
We currently operate in an explicit coding environment, where the input code yields the visible result on the output—this is known as Input/Output coding.
The profound shift in mindset now is that the output defines the input code. To elucidate, we first articulate how the system should behave, its structure, and the rules it must adhere to. Essentially, AI has catapulted engineers across an innovation chasm, ushering in the era of Output/Input coding.
Embracing Augmented Coding: A Shift in Engineering Dynamics
The advent of augmented coding ushers in a new workflow, enhancing the synergy between engineers and AI. Below are the core aspects of this transformation:
Idea Expression: The augmented engineer is impelled to express ideas and goals to achieve.
Requirement Listing: The engineer lists the requirements.
Requirement Clarification: Clarify the requirements with AI.
Architecture Decisions: Express the architecture decisions (including technology to use, security compliance, information risk compliance, regulatory technical standards compliance, etc.) independently, and utilize AI to select new ones.
Coding Guidelines: Declare the coding guidelines independently and sometimes consult the AI.
Business Logic: Define the business logic in the form of algorithms to code.
Code Validation: Run the code to validate it works as intended. This becomes the first order of acceptance tests.
Code Review: assess the code to ensure it complies with the engineering guidelines adopted by the company.
Synthetic Data Generation: Use AI to generate data sets that are functionally relevant for a given scenario and a persona.
Mockup-API Generation: Employ AI to generate API stubs that are nearly functionally complete before their full implementation.
Test Scenario Listing: Design the different test scenarios, then consult stakeholders to gather feedback and review their completeness.
Test Case Generation: Make AI to generate the code of test cases. The same technique applies to security tests and performance tests.
AI can even operate in an autonomous mode to perform a part of the acceptance tests, but human intervention is mandatory at certain junctures. It’s crucial to bridge results with expectations.
Hence, when uncertainties arise, increasing the level of testing is prudent, akin to taking accountability upon acceptance tests to ensure the delivered work aligns with the expected level of compliance regarding the requirements.
Non-Negotiable Expectations
In the realm of critical business rules and non-functional requirements such as security, availability, accessibility, and compliance by design, these aspects are often considered second-class citizen features. Now that AI in coding facilitates the choice, these features can simply be activated by including them in your prompts to free you up more time to rigorously test their efficiency.
Certain requirements are tethered to industry rules and standards, indispensable for ensuring individual or collective safety in sectors like healthcare, aviation, automotive, or banking. The aim is not merely to test but to substantiate consistent performance. This underscores the need for a new breed of capabilities: Explainable AI and Verifiable AI. Reproducibility and consistency are imperative. However, in a system that evolves, attaining these might be challenging. Hence, in both traditional coding and a-coding, establishing a compliance control framework is essential to validate the system’s functionality against expected benchmarks.
To ease the process for you and your teams, consider breaking down the work into smaller, manageable chunks to expedite delivery—a practice akin to slicing a cake into easily consumable pieces to avoid indigestion. Herein, the role of an Architect remains crucial.
Yet, I ponder how long it will be before AI starts shouldering a significant portion of the tasks typically handled by an Architect.
Ultimately, the onus is on you to ensure everything is in order. At the end of the day, AI serves as a collaborative teammate, not a replacement.
Is AI Coding the Future of Coding?
The maxim “And is greater than or” resonates well when reflecting on the exponential growth of generative AI models, the burgeoning number of published research papers, and the observed productivity advantages over traditional coding. I discern that augmented coding is destined to be a predominant facet in the future landscape of information technology engineering.
Large Language Models, also known as LLMs, are already heralding a modern rendition of coding. The integration of AI in platforms like Android Studio or GitHub Copilot exemplifies this shift. Coding is now turbocharged, akin to transitioning from a conventional bicycle to an electric-powered one.
However, the realm of generative AI exhibits a limitation when it comes to pure invention. The term ‘invention’ here excludes ideas birthed from novel combinations of existing concepts. I am alluding to the genesis of truly nonexistent notions. It’s in this space that engineers are anticipated to contribute new code, for instance, in crafting new drivers for emerging hardware or devising new programming languages (likely domain-specific languages).
Furthermore, the quality of the generated code is often tethered to the richness of the training dataset. For instance, SwiftUI or Rust coding may encounter challenges owing to the scarcity of material on StackOverflow and the nascent stage of these languages. LLMs could be stymied by the evolution of code, like the introduction of new keywords in a programming language.
Nonetheless, if it can be written, it can be taught, and hence, it can be generated. A remedy to this quandary is to upload the latest changes in a prompt or a file, as exemplified by platforms like claude.ai and GPT Code Interpreter. Voilà, you’ve just upgraded your AI code assistant.
Lastly, the joy of coding—its essence as a form of creative expression—is something that resonates with many. The allure of competitive coding also hints at an exciting facet of the future.
Short-Term Transition: Embracing the Balance of Hybrid A-Coding
The initial step involves exploring and then embracing Generative AI embedded within your Integrated Development Environment (IDE). These tools serve as immediate and obvious accelerators, surpassing the capabilities of features like Intellisense. However, adapting to the proactive code generation while you type, whether it’s function implementation, loops, or SQL code, can hasten both typing and logic formulation.
Before the advent of ChatGPT or GPT-4, I used Tabnine, whose free version was astonishingly effective, adding value to daily coding routines. Now, we have options like GitHub Copilot or StableCode. Google took a clever step by directly embedding the AI model into the Android Studio Editor for Android app development. I invite you to delve into Studio Bot for more details on this integration.
Beware of Caveats During Your Short-Term Transition to Generative AI
Token Limits
Presently, coding with AI comes with limitations due to the number of input/output token generation. A token is essentially a chunk of text—either a whole word or a fragment—that the AI model can understand and analyze. This process, known as tokenization, varies between different AI models.
I view this limitation as temporary. Papers are emerging that push the token count to 1M tokens (see Scaling Transformer to 1M tokens and beyond with RMT). For instance, Claude.ai, by Anthropic, can handle 100k tokens. Fancy generating a full application documentation in one go?
Model Obsolescence
Another concern is the inherent obsolescence of the older data on which these models are trained. For example, OpenAI’s models use data up to 2022, rendering any development post that date unknown to the AI. You can mitigate this limitation by providing recent context or extending the AI model through fine-tuning.
Source Code Structure
Furthermore, Generative AI models do not directly consider folder structures, which are foundational to any coding project.
Imagine, as an engineer, interacting with a chatbot crafted for coding, where natural language could reference any file in your project. You code from a high-level perspective, while the AI handles your GIT commands, manages your gitignore file, and more.
Aider exemplifies this type of Gen AI application, serving as an ergonomic overlay in your development environment. Instead of coding in JavaScript, HTML, and CSS with React components served by a Python API using WebSocket, you simply instruct Aider to create or edit the source code with functional instructions in natural language. It takes care of the rest, considering the multiple structures and the GIT environment. This developer experience is profoundly familiar to engineers. The leverage of a Command Line Interface – or CLI, amplifies your capabilities tenfold.
Intellectual Property Concerns
Lastly, the risk of intellectual property loss and code leakage looms, especially when your code is shared with an “AI Model as a Service”, particularly if the system employs Reinforcement Learning with Human Feedback (RLHF). Companies like OpenAI are transparent about usage and how it serves in enhancing models or crafting custom models (e.g. InstructGPT). Therefore, AI Coding Models should also undergo risk assessments.
The Next Frontier: Codeless AI and the Emergence of Autonomous Agents
These agents require only a minimal set of requirements and autonomously devise a plan along with a coding strategy to achieve your goal. They emulate human intelligence, either possessing the know-how or seeking necessary information online from official data sources, libraries to import, methods, and so on.
However, unless the task is relatively simple, these agents often falter on complex projects. Despite this, they already show significant promise.
They paint a picture of a future where, for a large part of our existing activities, coding may no longer be a necessity.
Hence, the prompt is the new code
If the code can be generated based on highly specific and clear specifications, then the next logical step is to consider your prompt as your new source code.
It means you can start storing your specifications instructions, expressed as prompt, then store the prompt in GIT.
Suddenly, Continuous Integration/Continuous Delivery (CI/CD) becomes Continuous Development/Continuous Certification (CD/CC), where the prompt enables the development of working pieces of software, which will be continuously certified by a testing agent working in adversarial mode: you continuously prove that it works as intended.
The good thing is that benefits stack up: the human specify, the AI code/deploy and the AI certify, to finish with the human using the results of the materialization of its thoughts. Finally, the AI learns along with human usage. We close the loop.
Integrating New Technology into Traditional Operating Models
AI introduces a seamless augmentation, employing the most natural form of communication—natural language, encompassing the most popular languages on Earth. It stands as the first-of-its-kind metamorphic software building block.
However, the operating model with AI isn’t novel. A generative AI model acts as an assistant, akin to a new hire, fitting seamlessly into an existing team. The workflow initiates with a stakeholder providing business requirements, while you, the lead engineer, guide the assistant engineer (i.e. your AI model) to execute the development at a rapid pace.
Alternatively, a suite of AI interactions, with the AI assuming various roles, like dev engineer, ops engineer, functional analyst, etc. can form your team. This interaction model entails externalizing the development service from the IT organization. Here, stakeholders still liaise through you, as lead engineer or architect, but you refine the specifications to the level of a fixed-price project. Once finalized, the development is entirely handed over to an autonomous agent. This scenario aligns with insourcing when the AI model is in-house, or outsourcing if the AI model is sourced as a Service, with the GPT-4 API evolving into a development service from a Third-Party Provider like OpenAI.
AI infuses innovation into a traditional model, offering stellar cost efficiency. Currently, OpenAI’s pricing for GPT-4 stands at $0.06 per 1000 input tokens and $0.12 per 1000 output tokens. Just considering code generation (excluding shifting deadlines, staffing activities, team communication, writing tasks, etc.), for 100,000 lines of code with an average of 100 tokens per line (which is extensive for standard leet code), the cost calculation is straightforward:
100,000 × 100 = 10,000,000 tokens; (10,000,000 tokens × $0.12) ÷ 1000 = $1,200. This cost equates to a mere two days of development at standard rates.
For perspective, Minecraft comprises approximately 600,000 lines of Java code. Theoretically, you could generate a Minecraft-like project for less than $10,000, including the costs of input tokens.
However, this logic is simplistic. In reality, autonomous agents undergo several iterations and corrections before devising a plan and rectifying numerous errors. The quality of your requirements directly impacts the accuracy of the generated code. Hence, mastering the art of precise and unambiguous descriptive writing becomes an indispensable skill in this new realm.
Wrap up
Now, you stand on the precipice of a new coding paradigm where design, algorithms, and prompting become your tools of creation, shaping a future yet to be fully understood…
This transformation sparks profound questions: How will generative AI and autonomous agents reshape the job market? Will educational institutions adapt to this augmented coding era? Is there a risk of losing the depth of engineering expertise we once relied upon?
And as we move forward, we can only wonder when quantum computing will introduce an era of instantaneous production, where words will have the power to change the world in real time.
I was first introduced to the term VUCA by my ex-colleague, Julian TROIAN, a leader in coaching who steers the talent management practice. This revelation came during a particularly challenging phase for us, mirroring the struggles of many other companies. We found ourselves navigating the intricacies of the COVID lockdown while simultaneously undergoing a significant shift in the corporate way of working. Our project portfolio was expanding, driven by the rapid pace of transformations, and we felt the weight of increasing regulatory pressures. But we recognized that these challenges were not ours alone. Then, significant disturbances emerged: the Eastern Europe conflict and a surge in inflation, to name a few.
Moreover, the world stood on the brink of simultaneous technological revolutions. Innovations like blockchain and the nascent promise of the metaverse hinted at new horizons. Yet, it was the seismic shifts brought on by Generative Artificial Intelligence that seemed most profound.
VUCA is an acronym encapsulating the themes of vulnerability, uncertainty, complexity, and ambiguity. Herbert Barber coined the term in 1992 based on the book “Leaders: The Strategies for Taking Charge”. I believe many can relate to these elements, sensing their presence in both professional settings—perhaps during office hours—and in personal moments with family.
Life, in its essence, might be described by this very term. We all traverse peaks and lows, facing situations of heightened complexity or vulnerability. The challenge is not just to navigate these periods but to foster strength and ingenuity, arming ourselves for future obstacles.
I consider myself fortunate to have garnered knowledge in enterprise architecture—a domain that inherently equips any organization, product, or service with resilience, making adaptability part of its very DNA.
In the subsequent sections, I explore strategies for developing VUCA antibodies.
From Vulnerability to Resilience: Building an Unshakable Future
Rather than getting bogged down by vulnerabilities, it’s about harnessing resilience. Robustness is the key to building thick layers of protection, ensuring longevity in our ventures. By deliberately creating anti-fragile mechanisms, we’re better prepared for tough times. This resilience doesn’t just happen; it’s constructed. Architects weave it into their designs across various realms:
Information Systems: These are designed to be failure resistant. Potential mistakes and erratic behaviors are predicted and integrated into the system as possible anomalies. In such events, responsible teams must give clear procedures to users, operators, and administrators to restore the system to its standard operational mode.
Data Management: From acquisition and processing to analytics and visualization, there’s complete control over the data flowing into the system. This range from a service request made over the phone, a command initiated by an AI, or even a tweet that prompts the system to respond.
Security: Safeguarding the system against potential hacks is crucial. Additionally, it’s vital to design the system in a way that vulnerabilities don’t open doors for intrusions. Depending on the chosen architectural delivery method, this can be addressed proactively or reactively.
Infrastructure: The foundational physical infrastructure, tailored to the system’s needs, must be aptly dimensioned. At times, specialized hardware like GPU-driven servers, or programmable network devices might be essential to cater to particular needs during both the development and operational phases.
Organization: People, integral to the corporate ecosystem, influence the system’s effectiveness. Their actions and behaviors enhance system efficiency, especially when elements like trust, making amends for failures, regular maintenance, and adaptability to change are activated.
All these aspects aren’t mere byproducts; they’re deliberately designed system features.
From Uncertainty to Probable Planning: Navigating with Confidence Through Uncertain Waters
Predicting the future is beyond anyone’s capability, but architects can narrow down scenarios to the most probable outcomes. Through modeling techniques like system design, trend analysis, scenario planning, and causal loops, they can forecast with a higher degree of accuracy. However, the planning phase isn’t without challenges:
Resources: There are times when constraints in time, finances, skills, and materials can make a proposed solution unfeasible. Recognizing this early on is vital.
Leadership: A wavering decision-maker, filled with doubt, can be a significant impediment. This is a leadership challenge that needs addressing at the top. In such a situation, the architect must highlight the unstable matter with benevolence and candor.
Team: The implementation is only as good as the team behind it. If team members don’t possess the necessary skills or their abilities don’t align with the mission’s complexity, especially when executing multiple plans simultaneously, it will compromise the execution of the plan.
Expertise: last but not least, the architect’s seniority and the time allocated to address your transformation’s VUCA elements also play a critical role.
From Complexity to Engineering: A Blueprint for Simplification
Sometimes, complexity arises from perception, misunderstanding, or underestimating a situation – often, it’s a mix of these elements.
Imagine you have three wooden chairs, and you wish to create a sofa. Is it even possible? Fortunately, Ikea offers a DIY toolbox that can help you realize this vision. When you describe your idea to the store specialist, she confidently directs you to aisles A8 to C12 for the necessary components. At first, you feel relief. But soon, doubts about your abilities confront you. Even with your experience in crafting wooden furniture, you’re unsure about the mechanisms you’ll need, the type of finish to choose, the tools required for precise cuts, and the best materials for durability. Are these materials environmentally friendly? This confusion and uncertainty are akin to experiencing VUCA.
The architect’s role is to first understand the complexity, determine the facts, and uncover what’s unknown, converting it to known information. Then, the challenge or problem is segmented into manageable pieces. I refer to this process as “Undesign.” The goal of undesigning is to get a clear and detailed view of the end goal by atomizing the current state, structure, and behavior. This is achieved through methods like decomposition, deconstruction, alternate system modeling, and sometimes reverse engineering. Subsequently, the architect uncovers a path to transform and assemble these components.
The essence of engineering is to assemble these components using identifiable, simple building blocks. These blocks are selected, modified, added, and connected in a logical order, ensuring the right materials, technologies, and tools are used. People with the right skills can then efficiently bring the project to life, ensuring it’s as seamless and enjoyable as possible. Even the user’s psychological experience matters!
In summary, what seems intricate and complex can be distilled into simpler, manageable parts.
From Ambiguity to Lucidity: Transitioning from Wishful Thinking to Tangible Outcomes
Architects don’t just exist in the present; they shape the future. Their responsibilities lie in meticulously designing and planning changes that will inevitably impact an organization’s products or services. Any vision, no matter how abstract, becomes initially tangible through their work. They ensure this by providing explicit construction instructions, detailed models of the final product, and ensuring the requisite resources and skills are in place. By doing so, architects play a pivotal role in turning ambiguity into precision.
Moreover, it’s the architect’s responsibility to align ambitions with the resources available, ensuring that goals are realistically achievable.
In wrapping up, VUCA can be perceived as a daunting challenge. But, with the right leaders onboard, RePEL becomes a natural response to unfriendly environments and stressful times. They hold the key to transforming volatile situations into clear, well-defined future pathways, keeping the enterprise entropy under control.
There are many job careers to “step up” or “side step” from IT Dev Engineer. The following introduces 14 jobs to which you can start planning your next career move.
Technology Consulting
Join an ICT consulting company to provide technology consulting. The goal is to specialize in a dedicated technology or focus your attention on a specific technology stack. You are selling your expertise, methods, and best practices.
Thus, your activities will mainly be: installation, configuration, integration, performance tuning, security hardening, and guidance. For example, ELK Stack specialist, Neo4J expert, Microsoft Azure Cloud champion, etc.
Project Manager
Your expertise will be mainly focused on planning, coordination, communication, and budget management. Your experience in IT will also help you to identify pitfalls and manage delivery and expectations. You could also be specialized in Agile Delivery and get a Scrum Master certification.
In addition, you will develop financial acumen. Keeping spending in check is an important part of project management. Decisions, such as hiring contractors, conducting RFP, and cloud service consumption optimization, have an impact on the overall project investment.
Business Analyst
You will focus on your functional expertise in the frame of an industry vertical, such as Banking, Healthcare, or Food services, to provide an in-depth analysis of functional and non-functional requirements.
Then, leverage your IT experience to increase the feasibility of the solutions.
Provide thought insights on product feature prioritization
Discover new business trends
Provide expert-level internal support and customer support.
Architect
You have a different flavor of architect roles here. To name a few, Software Architects, Infrastructure Architects, or Solution architects will move into the realm of architectural design and increase the scope of your actions and the weight of your decisions.
The end goal is to continuously deliver high-level plans and detailed plans that have been worked out with product managers, business analysts, IT engineers, etc. so that product implementations fit completely to expectations given the resources and constraints.
Ops Engineer
As a side step, you can focus on other IT jobs such as Ops Engineer, or specialized System Administrators (Sys Admin), where you will focus more on platform automation, reliability, and observability. There is more configuration, administration, forensics, and less coding.
But you will still code. Shell (Bash, Powershell, etc.) and scripting will be your best friends!
You will abide by the good practices of Site Reliability Engineering (SRE) and ITIL governance, most specifically within Change Management, Incident Management, and Problem Management.
Test Engineer
If your mind is more driven by probing things and ultimately driven by quality, this job is for you.
Test engineers focus on elements that are not in line with requirements and the expected “correct” behavior. In addition, they will bend the product until it breaks.
It is all about detecting as early as possible the elements that will go against the fulfillment of the functionality, or hamper the user’s experience. It is a continuous practice as each change has the potential of breaking working features.
They are highly useful advisors as they guide you in the right choice, and the valuable tradeoffs, as IT delivery is often about the decisions between quality, timing, and costs.
Security Engineer
It takes another way of thinking, almost reversing the IT developers’ mindset. As a security engineer, you work in the realm of “what if” and “be ready when”.
It is about playing defensive, thinking in terms of security zones, trust limits, sometime in trustless systems (Zero Trust Architecture), and managing identity and access rights.
The ultimate purpose is to erect an unshakable foundation because a crack in your fortress will be undoubtedly disastrous.
Like Tower Defense games, it is a fun job, and Cybersecurity jobs are in high demand.
UX Designer
If you are sensitive to ergonomics, aesthetics, and customer behavior, and you are already acquainted with frontend development, a jump to UX design, and regularly extended to UX/UI design.
UX, as User Experience, focuses on the events leading to the experience, the beginning of the experience, the path the user walks, and the end of the journey.
UX designers will focus on making the moment “enjoyable”, “frictionless”, and sometimes, “memorable”. Hence, the user’s feelings will be considered a critical piece of data during the design exercise.
Alternatively, the UI (User Interface) Design concentrates on the aesthetics, the action of polishing, turning something common into a unique piece that links to brand identity. Masters in this area are considered digital artists.
IT Manager
Then, if you feel the need to lead, coach, mentor, organize, and decide about the next step: walk the path of the IT Manager.
First and foremost, understand that it is primarily about the people as your job continuously focuses on ensuring your colleagues are in the optimal state for fulfilling their job in the most enjoyable way possible, moving away obstacles, and sources of confusion or disorganization.
Start with learning how to manage a team, a small one (1 to 3) to start with. It takes a different kind of skill set for managing people. It is not because you are a sound engineer that you will be a good people management.
Finally, management truly shines when you learn how to be a leader, and even more when you teach leadership.
Data Management Expert
In this case, it is all about the data. Designing Data models, managing existing data (consistency, integrity, etc), releasing new schema, improving query performances, patching data, performing data migrations, managing reference data, etc.
You will perform a lot of data analysis and forensics. Mastery of the meaning will be key and you are highly valuable to your company / to the industry for these skills.
Data Scientist
Your sole purpose is to find gold in your data, hence your job is to be a researcher using advanced tools such as statistics, graph visualizations, machine learning, deep learning, etc.
This job is perfect for explorers and pioneers. You will navigate the sea of data (Data warehouses, Data Lake, Data Mart, etc.) often to seek an answer to a question, or in pursuit of pieces of information unseen before.
You will find correlations, clean the data, aggregate them, practice feature engineering, create models, and, to some extent, reuse or create new A.I. architecture.
The point is that you must be good with data and maths, especially statistics. There is much less coding, yet most libraries such as Pytorch, Tensorflow, and Brain.js are built upon Python, JavaScript, and R. Coding is more of a tool in this case.
IT Risk Engineer
This discipline consists in transforming the organization by incorporating risk elements inherent to bad practice and non-compliance to industry standards (HIPAA, ISO 9001, BIAN, …), regulated framework (GDPR, NIS, …), practice standards (ITIL, COBIT, …), and corporate standards.
As an IT Risk engineer, your activities are:
Designing and enriching the risk management methodology
Running day-to-day operations, controls, and governance to ensure the enterprise stays in adequation with compliance.
Coding IT programs that guarantee automatic compliance by design.
Actively mentoring other colleagues in developing risk awareness
Typically, IT risk elements are subject to compliance checks run in the scope of audits.
IT Auditor
IT Auditors are the ones verifying compliance with standards and regulations. You can work as an internal auditor or an external (independent) auditor.
You will work within a control framework and an IT auditing methodology to highlight compliance findings and gaps with respect to a standard or a regulation.
For the latter, you will likely represent a body of regulation or a body of certification. Either way, you will more often find a job in the top tiers consulting firms, such as EY, BCG, Infosys, Cap Gemini, or large companies that are either mandated by the regulator to have an internal audit organization, such as in Banking.
Technical Writer
Technical writers are experts in writing professional documentation. Your purpose is to engineer documentation in such a way that it will holistically be understood by a specific audience, could it be an end user, an administrator, or a developer.
You structure your documentation so that its information architecture is easily grasped by the reader. In addition, the progression is engineered in such a way that the reader will learn throughout its journey what concepts mean, how they are related to each other, and how to repeat tasks to become autonomous.
A technical writer deeply understands that documentation is part of “the product definition”, therefore it must be polished, finished, visually designed, and user-focused.
Typically, the best documentation promoted by the best ICT companies is written by these experts. They work with Content Management Systems, proof-writing systems, templates, reader-friendly fonts, and rich illustrations, within the consistency of a design system created by a UX/UI Designer.
The European Data Act has recently been published.
It aims at clarifying and strengthening the governing framework of the #dataeconomy.
In the nutshell (extract):
“The Data Act will give both individuals and businesses more control over their data through a reinforced data portability right, copying or transferring data easily from across different services, where the data are generated through smart objects, machines, and devices.”
For example, a car or machinery owner could choose to share data generated by their use with its insurance company.
Such data, aggregated from multiple users, could also help to develop or improve other digital services, e.g. regarding traffic, or areas at high risk of accidents.”
Some thoughts on this
1️⃣ I wonder to what extent the boundaries of your data ownership can be explicitly defined, then transparently coded in IT systems, so that a “data asset” is legally bound to you as your property.
2️⃣ After this, you could ask Facebook, Instagram, and TikTok to share a piece of the cake: % of the revenue generated from your data. Let’s face it, it looks like a game-changer, if it can really be implemented.
3️⃣ Ultimately, you can capitalize on GPDR architecture. It pushes the concepts of data ownership, consent management, data counters, data KPI, data censorship management, IAM, data expiry management, etc.
4️⃣ Beyond multicloud oversight solutions, this is an excellent use case for permissioned blockchain, like Hyperledger Fabric. (e.g. Infrachain )
5️⃣ Innovative business models to arise like “Mutual Data Funds”, or Open Data Lakes”, where a set of businesses or individuals would provide a set of qualified and certified data sources to act as “Value Added Data Sources”, something similar to Bloomberg or Reuters for financial News.
Also, these Mutual Data Pools are fitted to be plugged as Oracles in blockchains (#ethereum, #chainlink, #binance, etc.)
I can already envision the pitch of startups like “We are the Bloomberg of space mining Data” (which would be awesome by the way👍)
6️⃣ This could boost the API economy. But also push further the adoption of GraphQL and AsyncAPI standards.
I am amazed by the sparkling eyes of someone discovering what he or she can achieve with Enterprise Architecture and IT Architecture.
This wonderful effect usually starts with a casual conversation, like one of those happening when you meet someone for the first time at an event exposing the disruptive changes in your industries.
I had that conversation the other day.
Coming out of the main conference room, I was thirsty, so I walked in the direction of the bar. New beverages? Of course, count me in. The drink is unusually green. Same colors as one of those “Diabolo-Menthe” I had in my childhood in Paris. But this glass is foggy. While I am looking at the recipient trying to guess what that magic potion is made of, the bartender is observing me. During this moment of hesitation, he said: “It’s coming from Japan. You are going to like it”. Despite his confidence, he did not convince me. How could he know my tastes anyway? Nevertheless, I drank the mysterious beverage, and, oh boy, he was right. The — whatever the name — was delicious.
Someone next to me was trying a foggy red elixir. When she caught the surprise on my face, she engaged in the conversation.
I answered politely, and introduce myself.
“Nice to meet you. My name is Yannick. Chief Architect at ING”. I shake her hand and I follow up with: “We are experiencing interesting changes, indeed. For the better, I believe.”
“Ah, so you are in real estate construction? Very nice! the industry is flourishing, you must be a happy man!”
“I’m in construction indeed. However, I build businesses, not buildings.”
She pauses for a few seconds. “What do you mean? Are you not managing your own architecture firm?”
“Not a firm, but an Enterprise Architecture department in one of the largest financial technology groups on earth. Still, it feels the same as running your own business. The expertise of my team consists of methodically designing and planning the development of products, services, or even the entire lines of business, in the most optimal and sustainable way possible. Whatever we provide fits the customer’s needs, and is made according to its finance, timing, opportunities, technologies, regulatory scope, etc. We consider all aspects. Basically, no matter the complexity, we have a solution for you.”
“Ah, interesting! I didn’t know such a job even existed. And by “all aspects”, you mean…?”
“Let’s say you’ve come up with a brilliant idea to differentiate yourself by proposing a new product line or rethinking your services. Using an Architecture construction method for businesses, I will first guide you in defining and detailing your requirements and the goals you want to achieve. Quite often, what you think you want is not what you need.
Second, I’ll ask you questions to discover requirements, including some you have not thought about in the first place, and some you wouldn’t believe it is important to care about them.
Third, we will list your constraints and spot the legal framework you must comply with. Moreover, I’ll check with you what you expect as an outcome given your budget and resources. The purpose is to demystify beliefs from the start, then, I will share with you what it takes to get what you want. Indeed, this practice is similar to the building industry, there are rules you have to follow, like environmental guidelines, materials used, construction permits, etc.”
“Ok, I’m starting to get it now. Tell me more.”
“Sure. After having completed the aforementioned activities, the Architect does the first design. It is a sketch of the solution to meet your expectations. The purpose is to assess the impacts, but also to make the product more visual and tangible. It is followed by some research to identify the components that can match your needs, in the best ways possible. I said “ways”, with an S, because what matters are the choices YOU make along the way. It all comes down to giving you alternatives to preserve your freedom of choice.
Ultimately, the architect will lead you to the best decisions.
In this design phase, they are several workshops, discussions, negotiations, and information sessions held to detail the master solution design and to thin out financial analysis.
From this point, we will initiate together a dossier, based on the agreements and scope of work. This mutual understanding acts as a contract.
The first phase starts with an order for which the result will be an iterative analysis of your requirements, an architecture blueprint, a construction planning, a quote, from which any partnership with product development companies can manufacture your product and services.”
“This looks like a very fun job, very complex, and demanding. Can you be knowledgeable in all these domains? “
“It depends” — This is the architects’ favorite quote.
“The architect is an expert in, at least, two domains: a business domain and a technological domain. They are PI-shaped. For example, I started my career as a Development Engineer, and evolved as an expert in Information Systems Integration, with a Business specialization in Financial Services and Insurances.
Additionally, they must know the purpose and the mechanisms of other domains and how they fit together. They grow a System Thinking. For example, a company has a Marketing department, a Finance Department, an IT department, a Sales department, etc. Each of them has a specific reason to exist, and they are made up of a plethora of activities that are fundamental elements of the corporate machine. Before selling, the Marketing intent is to present, demonstrate, attract the customer but also to analyze the potential client while continuing to engage the existing customers. To sell better, IT digitize the sales catalog and specs of the products, while having the CRM available on a mobile app, so that Sales can connect with the prospect anywhere and anytime.
I could go on, but the point is an architect considers each of these domains, each user interaction, each process, each application, each technology, each data, each skill as a building block that needs to be assembled to meet your needs and comply with the agreed requirements.
It is like getting several boxes of Lego, figuring out what the blocks are relevant, and detailing the instructions to achieve the construction. Therefore, there is no need to be an expert in multiple domains, but you need to appreciate their purpose and understand how an industry works to be relevant to your customers. In practice, we reach experts when needed.”
“Humm. It sounds simple to understand yet complex in the execution.”
“You are correct.”
“But how come I didn’t hear about Architects for businesses before? Thinking about it, your job seems necessary from the moment an enterprise reaches a certain size.”
“Perhaps you did, there are more architects than you think. For various historical reasons, Architecture is associated with the Information Technology department. Hence most of the time, people in companies consider us like IT folks doing IT stuff, whereas what we deliver are business and technology strategy, business and engineering analysis, business and engineering design, business and engineering planning, and business and engineering innovations.
Almost every change and improvement in your value chains need software and hardware. So it does not surprise me, our core skill is engineering. We thrive in manufacturing predictability and precision.
Nevertheless, I understand totally why people categorize architects exclusively in a technical domain if they are continuously presenting themselves using a single part of their expertise. Sometimes it is comfortable !”
“Maybe. Now that you mention. In general, we discuss with our IT specialists whenever we need to change, create new features, or fix things. We trust them, but sometimes it feels like they over-complexify things.”
We both joyfully laugh.
“I was just sharing my feeling here. I am nowhere near capable of assessing if they could do faster or better. We know they do their best. Yet, we wish we would have more flexible and more modern IT systems, more automated stuff, and good-looking user interfaces. Well, at least they do work!”
“Trust me, this is what matters the most. I have a very simple Architecture motto:
1st it needs to work great all the time, 2nd it must be easy to use, remember, teach, and maintain 3rd it should look awesome.”
“Amen to that. It makes me wonder, though… If Business and IT people can build things already, why would I need an architect?”
“Good question. To answer you, I’m going to start with: I prefer you to not need me.”
“I wasn’t expecting this. I’m confused… And curious!”
“I know. Why would you need a civil architect to fix your light bulb, change your kitchen sink, or even change the facade of your building? No, you don’t need one for the activities. You call the electrician, plumber or you do it yourself. You need specialized builders or repair persons. And autonomy is the best for everyone. But if you’re looking for building a new house, extend your house with a new room, or change the location of your bathroom, you might want to call your architect. You can, eventually, do it without one. Though, it is your decision of running the risk to spend more money than expected, to have the construction take more time than expected, to receive something that may not meet your expectations or worse. The decision is entirely yours.”
“I get your point. So when and where should I get an architect? Do I need a Bat-symbol?”
“For most small changes, you don’t need an architect. Rule of thumb, If the structure does not change, the scale of impact and volume stay similar, you don’t touch your foundation, and you don’t bring any new substantial data or business functions, ask your engineers, or senior business analyst to make the change. But at some point, your companies get big enough that people start losing sight, control, and understanding of how everything comes together. The systems of an enterprise are simply too complex to be dealt with by people busy with specific tasks daily. Furthermore, it is neither their core knowledge nor their core activities. And as if it wasn’t enough, the pace of technological disruptions keeps increasing.
As a rule of thumb, you need an architect when you:
Want something custom
Are dealing with complex programs of work
Don’t know where to start
Need to acquire or leverage a piece of technology
Seek guidance to build enterprise functions that are sustainable and scalable
Require to plan an actionable strategy with a good level of accuracy
Either you want something that everybody can get or you want something custom.”
“Are there different kinds of architects? I mean, we have different kinds of builders like plumbers, carpenters, electricians, etc.”
“Architects are … architects. There are flavors of architects. Let’s say they have specialties. Some of them are experts in the infrastructures, some in the data, others in software, while some focus their expertise on a specific industry. The only thing that matters, from a customer point of view, is that they provide the same service and they work together.
They have the same fundamental knowledge and way of operating. Architects might differ in their technique though. with the practice of various Architecture methods such as Zachman, TOGAF. Some companies build their own because it fits better with their industry and their organization such as EAgile for ING. Some are more specialized, like my AMASE methodology for startups and innovative organizations. I could tell you more but I’ll save this for another time.”
“I thank you for these explanations and for your time. To be frank, this is an eye-opener. I need to talk with my executive co-workers.”
“My pleasure, Ms. X. One more thing. Do you know what the origin of the word “Architect” is?”
She looks above like she was looking at the answer deep in her memory. Then a second later, the spark. She said, with the scintillating eyes
The MDM journey should definitely start with an analysis and the identification of the short-term goals you want to achieve. In fact, MDM will be a service for the whole company.
MDM is for:
A mall for your most valuable data
Contains end-to-end footprints of your business activities
An aggregation of rigorously organized data
Its scope starts with your core business information
Offers data-driven views of your processes that span over multiple lines of business.
You should start your MDM journey by:
Analyze in detail the pros and cons of putting in place MDM. MDM is more about governance as distributed discipline than technology.
Create a core project team that will analyze and defend the establishment of MDM in your company.
Launch an awareness campaign. Then, educate people about the advantages and responsibilities when the business is operated with MDM
Identify which data will be part of the MDM Strategy
Define an Enterprise Data Model (EDM). This is a common catalog so that everybody in the company understands the business terms. Thus, it is also a means for calibrating internal communication. Ultimately, your MDM system is the digital implementation of your EDM
Identify and standardize your Reference Data
Design your Information System Architecture as to which data flows and systems will take part in it.
Choose an MDM system technology. This application will be the core of the MDM execution and operations. Take into account the available skills on the market.
Define your Data Quality Indicators because data quality management is paramount.
Establish the MDM governance processes and roles (data owners and stewardship)
Design your firsts reports and dashboards, then collect feedback about their value. As a result of this, increase the data scope by iteration.
Communicate a LOT the benefits of MDM, to finally advertise the benefits. For instance, those would come from the golden data source, improved data quality, richer dashboards, unlocked analytics insights, etc.
Also, MDM is not a one-time exercise, it is a continuous practice. So make sure there is an organization owning the MDM system and the MDM governance!