I was recently asked for how long I’ve been developing software. I think it is sensible to define the start of my professional career in this industry to 2007 when I started at adesso - that is a decade ago!
I’ve seen and done a lot in those ten years. I’ve mostly written web apps, but not only. I’ve also contributed to multiple iOS apps. I’ve worked on internal sites for a handful of users and for huge public-facing sites with thousands of active users. I’ve worked in regular employment and as a freelancer. I’ve had a lot of fun doing training and workshops. I gave a few talks at conferences. I’ve worked in the backend and in the frontend.
I’ve written software in object-oriented languages, languages that claim to be OO as well as functional languages - and languages that fall somewhere inbetween. I’ve managed my own memory but I didn’t really enjoy it. I’ve participated in quite a few hypes and trends. I’ve handed deliverables to ops-teams and I’ve been called at night during 24x7 shifts.
Looking back, I have made a lot of progress. Technologies and techniques I once enjoyed and promoted look ancient and wrong to me now. This is a good thing. If you don’t look back at your own work and feel a bit disappointed by its standards, you either didn’t learn anything or you are too content with your own work.
Maybe the biggest mistake of my career so far, was to waste too much time in technologies that even at the time felt plain wrong to me. Without pointing fingers too much, the days, evenings, and nights I spend wrestling with JSF (or JavaEE in general) were simply wasted and I will never get them back.
The more I progress in my journey, the more I believe we’ve wasted a good part of a generation of programmers to a false and plain wrong interpretation of the ideas of object-orientation (I look at you, Java!). Luckily though, the ideas of functional programming are becoming more and more mainstream. Hopefully, they won’t end up in mainstream in a similarly distorted fashion.
I can still remember a lot of fruitless discussions, trying to convince coworkers and bosses to give Clojure a try - today I fight those exact same battles with Haskell. To be honest, I’m curiously looking forward to seeing what I will be fighting for in 10 years from now? But I’m convinced, we should accept any help from the machines that they can offer. I’m just not good enough of a programmer to write code without static validation (and neither are you). And I hope to see a time where uncontrolled side effects and state mutation are frown upon the same way as uncontrolled flow-mutation (goto
) is seen today.
Overall, I’m quite disappointed with the state of our industry. We are still far too much hype driven, can’t agree on anything and constantly keep reinventing wheels, nuts, and bolts - poorly. When I read papers from the 70ies or even earlier, it truly feels like we don’t stand on the shoulders of giants but on their toes. We get ever more powerful machines and we manage to make the world worse and worse with them. Worse products through software. Computers feel slower with every release. Today, you can’t even rely on a friggin light-switch to just work, because it is just in the middle of installing a firmware update.
10 years is a long time. I will stay in this industry probably until one of us ceases to exist. But right now, it is also a good moment for a timeout. Therefore, I’ve decided to travel in 2018. I will take, what is important to me (not that much, to be honest: K., a MacBook, and some clothes will probably do). We have a one-way ticket to Bali and we will see where life takes us from there.
There is so much more to life than work. And even though mankind is actively trying to change this: the earth is still a beautiful place. You can never travel too much and you can’t visit too many cultures, people, and places. I lack the words to describe how much I’m looking forward to this journey!
However, I’m also incredibly grateful that my life is in a situation that allows me to take half a year off of everything - just to see the world. And hopefully come back to the world of software with a fresh perspective. 10 years is a really long time. I have an even longer list of books to read - many of them old by today’s standards. Some even older than myself. Some fresh off the press. Maybe - just maybe - now I can afford the time to read a few more of them. Stay hungry, stay foolish… And always keep on learning!