The time we spend during our programmer’s life
Getting stuff done, and building something useful
As programmer I want to program. I want to build cool stuff, by writing a bunch of code. Instead I have to deal with a lot of other shit.
The reason my life as programmer’s stinks is twofold:
- It’s hard to focus (because I’m getting disturbed)
- It’s hard to focus (because I’m doing other stuff)
Coding takes an amount of concentration. For this they gave us cubicles. We said we hated cubicles. So instead they gave us open floor plans. What we really want was doors.
But even when I have some “programming focus time” I often do other stuff. Other things like infrastructure, security, designing, reviewing, upgrading, migrations, buildings, testing, deployments and meetings. We want to build.
Programmers however found a trick, make everything code:
Infrastructure → IaC (Infrastructure as code)
Security → SaC (Security as code)
Designing → Writing graphs (chart.js)
Build software → Build languages
Deployments → CI/CD Scripts
Testing → Writing (automated) unit tests
Migrations → Migrations scripts / Recipes (OpenRewrite)
Controlling → Code review
Discussing → Pair programming
And of course a lot of scripting.
This is all fine, and as a software engineer we program a lot of things as part of the job. But we are kind of trick ourselves, or maybe the companies we work for, tricked us. When we write deployments, when we are testing, when are busy with security, we are not solving real world problems, we are not creating solutions. Shouldn’t that be the goal of programming? To write useful programs.
But now our trick to make everything code gets outtricked. The good and bad thing about code, is that it can be automated. The good thing is we can make our own life is easier, the bad thing is we can make our programmer’s life obsolete. We did this by creating AI.
Yes, an AI can do a peer review, write a unit test, deploy our software. Then, we can build stuff? So in this respect AI is great. Now we don’t need to upgrade the code, migrate to another framework, write tests, spend time on TLS certificates. The things that takes IT project years, and years.
This is probably why programmers are so bad at estimations, because they only think of the code to write, and forget about all the things around it:
As a junior programmer you have in your head to build great stuff, and help the world. However the three weeks in your head turn into 3 months, and the 3 months turn into 3 years, and the 3 years turn into 30 years. Until your career is over.
As a senior you kind of accept this as a fact, and do all the stuff that are needed. Wouldn’t AI be a blessing in the sense that our estimations are finally correct? That we can finally focus on building solutions?
The question is isn’t this wishful thinking, and aren’t we out even worse then before. Think of this line of thought:
Will AI replace me for building cool stuff? And am I forever stuck in meetings for the rest of my life? Fortunately there is always a side project:
For me, at the end, programming is just a tool. Just another hammer. AI could be another hammer, or the one that operates the hammer. Will you the one that manage the one that operates the hammer, or will we fell into endless recursion, without ever getting anything done?
For now, AI isn’t good enough. It hallucinates, it writes insecure code, and we spend more time talking to a chatbot then actually writing code. AI is just another distraction.
Everyone knows that when the hype is over, AI will be productive one day. I think at first it will be a co-pilot for us, and a happy time will come in our programmer’s life. In the end, however, it will be the pilot, and who knows if a programmer’s life is still needed for a next generation.
So I don’t know where it ends right now, but one thing I learned as a programmer: You can wait for tools to get better, for programming languages to get more powerful, and for AI to be your ultimate assistant. Those advances made me more productive, but not as productive as doing things myself. By learning better programming skills, automating my work, and adapting to the new reality. That’s life.