How AI is Evolving Traditional Software Development

Zahid Parvez
3 min readSep 6, 2023
Photo by Rick Mason on Unsplash

For anyone who knows me well, you’ll most likely realize that I have an unhealthy obsession with LEGO for an adult. There’s something very satisfying about using small building blocks to create something bigger, whether you’re following preset instructions or taking the time to plan and create something truly unique.

While I personally am not a fan of Play-Doh, I do recognise that it can be used to create very creative and detailed pieces. Perhaps, if one is so inclined, you could combine LEGO’s structural integrity with the creative and detailed application of Play-Doh to create a unique masterpiece.

In traditional software development, you’re assembling pre-defined “blocks” of code/syntax/logic, much like LEGO bricks, to build a functional program. Every piece has its purpose, and you’ll need to follow certain paradigms or algorithms to get the desired outcome.

On the other hand, working with AI and Machine Learning (Large Language Models in particular at the present, but the concepts apply to most types of AI/ML) feels more like working with Play-Doh. These models bring a level of adaptability and creativity, allowing computer programs to tackle problems in more fluid and innovative ways.

At a high level, the differences are as follows:


Traditional Programming: Logic is explicit, each bit of logic is explicitly defined. Every behaviour, output, decision, and control flow, and algorithm used within the application is manually defined.

AI/ML: Logic is implicit and is learned from data rather than relying on explicitly programmed logic. AI/ML models generalize from the examples they were trained on.


Traditional Programming: Outputs are deterministic in traditional software development. Given the same input, the same output is produced every time, making the outputs deterministic and repeatable.

AI/ML: AI/ML models are generally probabilistic, meaning their output can vary with the same input. There is no guarantee that the output will be the same every time, even if some model interfaces allow the requestor to control the model’s ‘creativity’.




Zahid Parvez

I am an analyst with a passion for data, software, and integration. In my free time, I also like to dabble in design, photography, and philosophy.