Bauhaus, GenAI and Software Development

David Pereira
4 min readJan 23, 2024

--

A reproduction of the 1923 Bauhaus exposition poster, created in p5.js

2024 is the second year I participate in the genuary challenge. Each day a prompt is given to participants to create digital art based on it. You can use any framework or coding language you like. In my case, I have selected p5.js as my creative coding framework. This year, though, I decided to use this challenge to try another tool as my creative pal: Generative AI.

I took advantage of being part of the Microsoft 365 Copilot at my company to try to mix my hobby and my job. In this case, I wanted to understand more deeply how Generative AI can change the Software Development Lifecycle (SDLC).

The starting point was promising. GenAI vendors already report productivity gains exceeding 40% in software development life cycles (SDLC), while more conservative analysts like Forrester Research indicate a more conservative improvement of 15–20%. The first genuary challenge prompts confirmed that GenAI can streamline code generation dramatically, but it was not until I got to the Jan. 18th prompt that I start to think on the complete lifecycle on a more profound way.

January 18th prompt was “Bauhaus”. I decided to try and recreate the famous 1923 Bauhaus expo poster. It was when I was trying to create the prompt for the GenAI to generate the p5.js code when I started realizing some relevant implication: there are multiples ways to map requirements to code (in this particular case, we could prompt by saying we want regular prisms with a black shadow or specify the exact color details of a 6x8 square matrix).

Two different options to approach the prompting necessary to reproduce the 1923 Bauhaus expo poster using p5.js

Apparently, these two options are equally valid and can lead to the same result if prompted correctly. Nevertheless, option 2 demonstrated to be much more difficult for the AI to understand correctly, despite all of the efforts put on describing the basic elements and patterns consistently.

I ended up using option 1 to achieve the desired result, and that led me to some thoughts regarding one of the first challenges GenAI based SDLC will face:

Good prompting and model grounding for working with specific architectures will bekey for achieving the best results possible and wil dramatically affect the quality of the output, specially in terms of maintainability, extensibility and scalability.

The requirements & planning SDLC phases will require very expert profiles in both enterprise architecture patterns and business, combining (or working with) expert prompt engineers. Also, a continuous specialized training of the AI models on corporate architectures will be key for a maintainable code. Going back to our simple Bauhaus example, imagine that our company architecture is based on using prisms (option 2) instead of squares (option 1). We will need our developers to have both the architecture knowledge and the prompting knowledge needed to automate code generation following our design patterns. We already have some guidelines on how to prompt to maximize results (Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4), but I assume we will be seeing further specific improvements targeting software development.

Now let’s move to the testing phase of the SDLC. When an error occurs or a bug is introduced in the code, it will be usually difficult for non expert developers to spot, as the code has mainly been generated by AI models.

While the Development & Testing phase can greatly benefit by code automation, and increasing automation rate will require expert engineers for companies not to fall in an AI over-reliance that can have a long term on the code maintainability.

We are still in the early stages of GenAI-based SDLC, and yet some relevant AI researchers like Andrej Karpathy are already pointing out how we need to move from prompt engineering to flow engineering, based on a recent paper by codium.ai:

AlphaCodium: From Prompt Engineering to Flow Engineering

Some predictions on how GenAI-based SDLC will evolve the following years (2024–2026+):

  • 2024: GenAI will be applied in SDLC tasks without major changes in operational models and methodologies. Prompt engineering will be the primarily solution, while SDLC activities will not be connected in a flow through GenAI.
  • 2024–2026?: SW methodologies will start to get redesigned for GenAI. There will be a first level of flow integration in which an ecosystem of different LLMs will be connected together through agents.
  • 2026+?: Coding and tech activities will start to get strongly commoditized; value and focus will be in business layer (Requirements, Business logic, …) as only human supervision is needed for highly autonomous GenAI software development systems will full integrated activities.

It is clear that GenAI is already starting to have a huge effect on how we develop software, and this effect will only get bigger in the coming years. We need to stay in control of this SDLC transformation and think in detail how or SW developments and roles need to change in the following years.

--

--

David Pereira

Data & Intelligence Partner at NTT DATA Europe & Latam. All opinions are my own. https://www.linkedin.com/in/dpereirapaz/