How you ship is everything
Back in my early days as a software developer I was keen to keep up with all the latest innovations, frameworks, and yes fads in software development.
It’s why I downloaded the earliest releases of Visual Studio (Everett, remember that? Yeah we’re old now!) and tried every new shiny feature months before the official release.
In the early 2000s ‘keeping up’ was something it felt like you could actually do.
Framework and IDE releases were infrequent, interesting open source projects were relatively few and far between.
But as my career developed and I spent more time working in companies (rising through the ranks from junior to senior, and eventually managerial positions) I learned the importance of being pragmatic.
It’s great to be excited to explore different options and tools (that might help you ship better, or faster).
But then you need to ship.
Why you can’t outsource your thinking to AI#
I spent much of yesterday at a company I used to work for, and it brought home just how much technical choices matter (and linger).
Apparently, nearly 12 years ago I decided we should use PetaPoco for database access in a mission critical app for managing stock levels (and ordering the right things at the right time).
At this point there’s no-one left in the company who can maintain this particular app.
But it’s still running, at the heart of a company that relies on it every day.
You can’t vibe-code something like that.
But you can use AI to help you figure out what to build, how to architect it, how to slice the work up into smaller features.
And ultimately, if you want to, to write the code for you.
The best way to keep up is to ship#
AI is so noisy, and so fast-moving, that it creates a very real pressure - that feeling of needing to keep up or be left behind.
And the noise is incessant. I can’t remember seeing anything comparable - maybe that brief period where everyone started talking about Web 3, or NFTs.
It’s all too easy to get sucked into spending endless hours talking about, and playing with AI.
And I do believe running small experiments is key.
But the best experiments help you improve your craft, and the engineers we need right now are those who can figure out how to ship - reliable code that works, and keeps working, that solves real problems.
AI, at times, feels like a magic wand that can do your bidding.
All you have to do is point it at your idea and it will magically create and ship it for you!
But in practice it’s like everything else, it does some things well, and some things badly.
And a lot of that comes down to the mindset and posture of person holding it.
So have those important conversations with stakeholders, be pragmatic, and focus on getting feedback sooner rather than later.
After all, the thing you’re building today may still be sustaining a profitable business in 12 years time :)
Just don’t trust AI to do everything for you.
Instead, explore how you can leverage AI to help you ship software that makes a difference.
— Jon
Your skills aren't becoming obsolete. They're becoming essential.
Practical engineering principles for building software that works - with or without AI.