X
    Categories: Featured

You just don’t understand software.

You just don’t understand software – no really.

I’ve worked in software engineering for about twelve years. In that time I’ve been a software engineer (C#, Java, Python), an automation tester (Selenium, Cucumber, Loderunner), a product owner (for some of the biggest products in the world), & now, I lead those very similar engineers as either a Scrum Master, Agile Lead, Delivery Manager or Head of IT. I’ve got it right, I’ve got it massively wrong & the learnings & experience I’ve built in what is now a 22 year+ career in IT as not only a Head of IT, but public speaker, former business owner, Silicon valley tech bro & big 6 Management Consultant, I think is monumental.

And you just don’t understand software.

The good ol’ 8-bit days.

Let me tell you what I mean by this. Back in the 90s, I worked with colleagues who were in their technical hey-day between 1983 & up to the present at the time. They brought with them a rudimentary Boolean-esque understanding & approach of how software works. That was because they grew up seeing 8-bit computing develop, languages like BASIC & if you were lucky, some 6502 assembly. They came from the factory punch card era.  A lot of those folks I saw go into team management positions as the software landscape changed between 90 & 99’, they were often massively guilty of over-simplifying the art of software engineering as it was in that new time, by turning every conversation into a Boolean logic tree. From my perspective, this is when the notion of Agile was born in my mind, and I imagine neatly this is where it happened across the pond also. They often didn’t get what was at the time more ‘modern’ software development approaches.

As we approached the early 2000s, a raft of low barrier of entry front end technologies came to the forefront (JS, React, Vue, Node, etc), everyone was building websites on the side (just like everyone has a podcast nowadays, me included on both counts!) & the way software was thought of shifted a bit. It became cookie cutter. WordPress templates, one-click plug-ins. You know the drill. There was still academic knowledge of software & infrastructure sure by many, the OSI seven-layer model, the waterfall & V approach to software etc, Agile was still in it’s infancy somewhat, but also, everyone was coding in-browser, lightweight component libraries for websites & a lot of front end driven apps being spewed into the market in part, due to WordPress blowing up & everyone & their gran being a ‘web master’. & an almost zero barrier to entry. Software was dogsh*t. But it was also equally good at the same time.

I felt this was peak ‘understanding’ of software though despite some of the quality of the software especially in industry. During this time I held the roles of Junior IT Manager, Software Tester, Project Manager & what I saw was the most mature approach to software understanding in many organisations if I compare to what I see in 2025. The management of these organisations had come from a recent background of the last twenty years at-least seeing this evolution & understood that behind every app, there was infrastructure, code to be tested, hosting to configure & front end technologies that needed a UX, a UI & everything in between. My own experience of the Agile SDLC was building also. I find those who grew up from 1980 but experienced technological shifting between the 90’s & 2000’s are where the sweet spot is.

2015 onwards for me became a mess. Technology had started to peak & the same tech world that I observe today in 2025 wasn’t too far off back in 2015. We started to get VR, ML, rudimentary Ai, I started learning all the things I didn’t know, so did the teams & orgs I worked in. I was now Product Owner, or Delivery Manager, or IT Project Manager &  even I was hitting walls of inexperience myself as I failed to understand some of the complexities of hardware architecture, networking & the Internet itself. Despite being a ‘tech pro bro’.

‘z-gen’ers are not tech savvy like everyone says they are

As I worked hard to develop experience in these areas, something which started to trouble me but I put to one side, was the inexperience of not only some of the teams around me, but also the arse end of the millennial generation but now ‘the Zee generation’. I started talking at schools & universities, I became a STEM ambassador running code clubs & I became startled. Folk now understands just the user experience, just the Tik Tok reel, just Facebook, just how ‘following someone’ works. Children are marvelled at as ‘tech natives’ & comments like ‘we didn’t know how to use a computer in our day’ all compound to reality which is often not true. They are not ‘tech native’ more ‘tech user native’ – there is a difference. They know how to watch a YouTube video, or that website which allows you to save all the images. They even know how to open up a browser window & throw a prompt into Chat GPT. But what was becoming ever-so apparent was a total lack of understanding of what was happening behind the scenes. How Wifi works, how social media algorithms work, how Ai works, grass roots fundamental internet architecture. How to build a PC even.  I even found myself doing a talk at a huge public sector company on how a packet of information traverses the Internet – foundational stuff that I thought was that, foundational but lost on so many.

In 2025, we now have an equal problem. We’ve never had more generations of folk in the working open market, all bringing with them their skewed & sometimes faulty beliefs & experiences into software teams. Software has become pervasive, ubiquitous & simplified to a point of it being a marketing exercise with in-box turnkey solutions being sold. Everyone understands software right? It’s just software? It’s just logic on a screen? Oh get Chat GPT to do it. Let’s find someone in India to build it for a Fivver. Only those who truly build software with a passion for the craft & nod to quality know that this bastardisation of a subject so complex, is prone to such catastrophic failure which manifest in the software released. Failure not only in teams but in the product itself then. I even talk about the notion of is software getting worse here, go & take a read of it!

I see really dangerous groups of people being formed into teams, new millennial & z-gen coders are often both limited by their narrow vision to software development & what software is, the SDLC & how to approach it, or older team members hampered by their foggy view of the world as it was decades before. Sandwiched in between are management consultants, or young spritely scrum masters, or Delivery Managers (bull-shit merchants as I like to call them, kidding not kidding) & between the lot, do you really wonder why most of the software you use today is flakier than a box of Kellogs. You can talk about the ‘Spotify model’ or ‘ SAFe’ all you want, but the reality is software is an economy being built by the lowest common denominator. Sure, you off-shore that piece of code. See how that works out for you.

So you just don’t understand software.

In almost every organisation I inhabit, or am asked to, I often find myself doing a slide with a burger on it. The burger represents each ‘layer’ of what is involved in software but not only that, I’ve expanded this image to include ‘sides’, with each ‘side’ now being an often-unavoidable component in software engineering that’s often not given enough thought. From API development to testing (often forgotten about & an industry in it’s own right), low code & no code solutions like the Power Platform, Cloud, IaaS, PaaS & automation. Middleware, the difference & separation between embedded code-on-a-chip & general software, the SDLC, containerisation, automation…..breath breath breath Mario…..THATS JUST THE BACK END BURGER, I’M GONNA NEED A FRONT END SIDE OF FRIES!

*in walks Manager stage left* but surely we can get Chat GPT to do it.

*face palm*

Organisations responsible for building software, (& I tell many organisations they are tech companies even if they don’t think they are), need to start taking responsibility to ensure they understand all the intricacies & nuances of what they are building, & build it right. From start-ups wasting investor money to public sector orgs wasting tax-payer money, to killing off teams of good engineers who are often throttled, impeded or told to ‘just build it & ship it’.

Leaders & Managers need to take responsibility for what they don’t know. It’s not acceptable in my mind to not have fundamental understanding of all this stuff, to be able to make better, smarter decisions. Sure, & look, I’m not saying there are not high performing teams around the world turning out world class software, I’ve been fortunate enough to observe both of them. But generally, it’s a dog pile of fragility & technical obfuscation & it’s really no wonder the ATM on the high street often crashes, or you can’t pay for parking because the API which talks to the cloud from the in-car-park machine has failed because it hasn’t kept up with changes made by the payment gateway!

You just don’t understand software.

Never, have I ever been so assured that here in 2025, all the technical pre-requisites above I’m suggesting need to be in place, all the knowledge I’m purporting you need to take responsibility for, means very little without the accountability that you have as an individual working in technology.

Never has so much free learning been available to all. From the cloud vendors falling over themselves offering courseware, to everyone running a killer YouTube channel on every tech topic that exists to Udemy, Linkedin learning & everything in between. Part of any investment strategy or team leadership strategy has to be ensuring everyone has a level playing field of core fundamental experience & knowledge to build out good software foundations. Sure you need specialists, & skillsets dependant on role, but t-shaped in my mind has never been more important. I mean proper t-shaped also, not just bullshit t-shaped.

If you’re a tech leader, a CTO, a Head of IT, CIO or anything between, don’t just rely on your experience from the 80’s & 90’s. Shit has changed. Go & build yourself an Azure landing zone. Go & stand up a fleet of AWS containers. Write a ‘hello world’ in Python. Build an MQTT message bus. I’m deadly serious. Your team, your org & your product will thank you.

What am I trying to say.

I think what I’m trying to extol are the virtues of if you’re in anyway responsible for software, understand software, understand the SDLC, & understand of-the-moment engineering & delivery techniques. Don’t bring just 1980’s experience to a 2025 world & rely on it solely. If you’re a leader, with a Cx title, you really do need to have a base level understanding of all this stuff regardless of whether you have folk around you who are meant to do that for you.

Mario De'Cristofano:
Related Post