Categories
Artificial Intelligence ChatGPT GPT3 GPT4 IT Architecture IT Engineering

API Hero 🤖” – The #GPT That Codes the API for You 🙌

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:

  1. The public interface of the API (for engineers, this corresponds to the OpenAPI/Swagger spec).
  2. #Code in the chosen #programming language, with a focus on modularity and GIT-friendly project structure.
  3. Features like API security, configuration management, and log management.
  4. 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:

  1. Currently, GPTs are accessible only to ChatGPT Plus users.
  2. 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

🫡

Categories
Artificial Intelligence Automation Autonomous Agents ChatGPT GPT4 Information Technology IT Architecture IT Engineering Robots Technology Testing

Navigating the Future with Generative AI: Part 2, Prompt Over Code – The New Face of Coding

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:

  1. Idea Expression: The augmented engineer is impelled to express ideas and goals to achieve.
  2. Requirement Listing: The engineer lists the requirements.
  3. Requirement Clarification: Clarify the requirements with AI.
  4. 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.
  5. Coding Guidelines: Declare the coding guidelines independently and sometimes consult the AI.
  6. Business Logic: Define the business logic in the form of algorithms to code.
  7. Code Validation: Run the code to validate it works as intended. This becomes the first order of acceptance tests.
  8. Code Review: assess the code to ensure it complies with the engineering guidelines adopted by the company.
  9. Synthetic Data Generation: Use AI to generate data sets that are functionally relevant for a given scenario and a persona.
  10. Mockup-API Generation: Employ AI to generate API stubs that are nearly functionally complete before their full implementation.
  11. Test Scenario Listing: Design the different test scenarios, then consult stakeholders to gather feedback and review their completeness.
  12. 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

Names like GPT Engineer, AutoGPT, BabyAGI, and MetaGPT herald a new branch in augmented coding: the era of auto-coding.

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.

CD/CC with Adversarial AI Agent
Continuous Development/Continuous Certification (CD/CC) with Adversarial AI Agent

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.

🖖

Categories
Business Career Information Technology IT Architecture Self development Technology

What roles exist in IT for software developers to pursue after they are tired of coding?

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.

Your knowledge spreads over the spectrum of:

  • Contribute to project activities
  • Acquiring the voice of customers
  • 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.

🫡

Categories
Architecture Business Data Architecture Enterprise Architecture Information Technology IT Architecture Organization Architecture Technology UI Architecture

“Leading you to the best decisions” - A story about the unimaginable benefits of Architecture in Businesses

Green arrows that illustrate the theme "Leading you to the best decisions"

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

“Master Builder!”.


Photo by Frank Busch

Categories
Artificial Intelligence Automation IT Architecture Technology

Intelligence of Information Systems – From Simple Mind to Overmind