Why did we allow the Big Tech to ruin our profession?
I started my first programming job in 1990. Today, 31 years later, I’m still at it — creating software full time. Looking back, I cannot…
I started my first programming job in 1990. Today, 31 years later, I’m still at it — creating software full time. Looking back, I cannot but marvel how things have changed.
But let me start from the beginning. Back in 1990s, there was no Extreme Programming, no Agile, and Scrum was not being used as a process for delivering software. My job back then was to help companies automate their business processes. Interestingly, that job description hasn’t changed in the ensuing three decades. But what has changed is how we go about automating business processes.
All throughout the 1990s decade, my job title was Programmer/Analyst. I was not only viewed as someone who programs computers, but also as someone who is expected to analyze the problem area. Back then, my job was to familiarize myself with the regular business processing (usually conducted manually), and to seek out opportunities for improvement. Which parts of the tedious manual processing could be automated?
Also, 25–30 years back, we were not only expected to analyze the business operations and seek opportunities for improvement and program computers to leverage such opportunities. We were also expected to run the system. I remember working on automating business operations for a number of hospitals in British Columbia. I would meet with various hospital staff and administrators to learn about their pain points and see whether I could help write a system that could ease their pains. If we agreed on what needed to be built, I’d build it with my team, but that wasn’t the end. I’d then drive to the hospital, install the system, train the staff how to use it, and also serve as a go-to maintenance guy.
Let me tell you — back then, my software creation job was much more satisfying than it is today. Today, any software creation job seems riddled with endless frustrations. What happened? Why did we swap something that used to work with something that is causing frustrations to all parties involved?
The Big Tech
I started noticing a difference in how we build software around year 2002. It was somewhere around 20 years ago that big players started emerging in the software creation field. Players such as Google and Amazon, etc. Today, we call those big guns the Big Tech.
So how did things change under the influence of the Big Tech? The first thing I noticed was the switcharoo from being a Programmer/Analyst to becoming a Developer. So what? What’s in the name, what’s the big deal in renaming the job? Well, as it turned out, the switch wasn’t insignificant. By removing the Analyst part from the job title, we have removed the ‘opportunity seeker’ side of the job. A developer started to more and more resemble a caterer. Software developers gradually morphed from systems building experts to order-takers.
As order-takers, we were suddenly ushered into the new era of standups. Why? Why do we have to stand up every morning and yap about our work? Well, Google is doing it, and since they are phenomenally successful, whoever else starts doing it will become phenomenally successful as well.
In all honesty, all those standups I’ve attended over the years always felt like nothing more than ‘monkey see, monkey do’. I could never glean any merit from wasting time doing standups. And yet we all persist to this day obeying the Ideology and going through the ceremony, going through the motions.
Accidental complexity
I started my professional career writing programs on IBM’s mid-range computer AS/400. That computer was what we used to call a turnkey-solution. It was a one stop shop. Anything a business needed to automate its operations was available in the AS/400. Any operational complexities of the underlying machinery were elegantly hidden from the eyes of programmers. We were only focused on automating the business policy rules that govern the business operations. The sophisticated operating system of the AS/400 was taking care of the rest. Wasn’t that marvellous?
Ah, but the AS/400 had only green screen terminals with 24 rows and 80 characters per row. Not sexy, especially considering that early 1990s saw the explosion of PCs with colourful monitors.
Then the web hit the streets. AS/400 was not fluent in TCP/IP and was left on the sideways.
Abandoning AS/400, we eagerly embraced the distributed, decentralized computing. But with that, we embraced the world of maddeningly bloated accidental complexity. Once you start building event-driven, distributed, decentralized systems, you cannot afford anymore to only focus on automating business policy rules. You now need to pay close attention to how to make that complex machinery, with so many volatile moving parts, actually stay together and function.
Suddenly, there was no time left for seeking opportunities, for analyzing what could potentially improve business processing. And most of the available time is now being wasted on taming and appeasing that accidental complexity.
The trust between the business and the creators of software started quickly eroding. I remember back during the first decade of my career how the businesses who hired me not only trusted in me, but also counted on me to come up with amazing solutions that would help them save money and increase revenue. But those days are now long gone. Why? Simply put, with mounting accidental complexity, things started slowing down. Very little progress is demonstrated, and the business started demanding more value for their money. And rightly so.
So, how is it that back in 1990s we were able to garner so much respect and trust, and now we are treated like disobedient pets who need to learn the ‘heel’ command and show their obedience every morning at the standup? The answer is simple — accidental complexity. And who brought to us this accidental complexity? My hunch is — the Big Tech.
We are stupidly trying to emulate the Big Tech despite knowing full well that their operating agendas have absolutely nothing in similar with our business agendas. And yet we slavishly mimic them, and continue pursuing the endless piling up of accidental complexity.
Isn’t it time we wake up and leave this nightmarish world of the Big Tech behind and go back to serving the business needs?
I keep hearing all the gurus and coaches peddling ideas how software developers should learn how to avoid the trap of being order-takers and grow into a role of being an equal partner with the business and collaborate and so on. But hey, we actually had all that back before the days of Agile and standups and user story points and velocity etc. Then we sadly lost it.
The time to reclaim our beautiful profession seems urgent. We must bring back the respect for the work we’re doing and the admiration for the process of software creation.