Many (many years ago, I was doing work with OCS (Office Communications Server) and writing code to connect and automate messages with it. That system was completely built on a TLS certificate security protocol from end-to-end, from client to server to API.
No matter what you did, you could not escape it; you had to understand certificates if you wanted to do something of use with them, and defaulting to expiry dates of 20 years was not going to work.
So I delved into the exciting (it wasn’t) world (more like universe) of certificates – all for the reason that I could understand how to use them and get the most out of them when designing solutions for our customers.
Fast forward to today, in a cloud infrastructure, we have a platform that contains features you have probably never even seen or heard of. When I perform Health Checks for organizations, I am constantly blown away by how much functionality they have built that already exists.
- Queues – we built our own, we don’t trust Queue Triggers or Storage Containers
- Versioning of APIs- we version our own code, instead of using built-in versioning by APIM
- Building our Own Deployment Pipelines – they already exist
- Building our own App – one already exists that you pay for.
I get it, everyone wants to build their own thing, but when you’re paying for a platform that does all these things for you, the supportability between maintenance and what you are already paying inevitably causes the price in your investment to go up.
And then we wonder why everything is so expensive.
Cloud is Lazy
Cloud Development can get very lazy, very fast. You can deploy inefficient code very easily, watch it work, and if it doesn’t, add some more. The number of times I go into a cloud environment to look at what they have and check this against what they need kills me every time – “You don’t need all this stuff, you just need this one thing”.
Be lazy for proof of concepts, but not for your end delivery.
Learn the Platform
I jump in and start coding all the time, ALL THE TIME, but at some point I take a step back and go – “okay, what is here that can help me make this more succinct, simpler to manage, and better to maintain”.
Whenever I’m trying to solve a problem with someone and we are stumped, I always come back to – “We can’t be the first people who have run into this issue,” and surely we are not.
Learn the platforms you are paying for, understand what they can do as a whole, so you can provide better solutions for your customers.
The Impact of AI
I use AI to help with coding problems that I know I’m going to mess up the syntax on. I’m not letting it loose on my projects, mainly because I enjoy what I deliver on my projects. I ask AI questions and generally find it’s providing me directions I had not thought of.
But to understand those responses, to question the answers AI is throwing at me, you have to know what AI is talking about, you have to know and understand the platform.
Otherwise, yes, you are letting AI do your work for you.
All this to say, you don’t need someone to tell you what you’re doing wrong in your environment. What do you need more of… is Understanding the Platform as a whole that you’re building on.