In my 20+ years of experience in professional software development I have seen a lot. And I went through hundreds of hours of discussions on each of the dynamics I found hindering success.
During the past decade, I observed some disturbing patterns which resulted in headcount explosion with exponential productivity decline.
On a global scale.
This is the first part of a 7-part series in which I will elaborate my perspective on how we waste company resources.
Please find all other parts with the following links. We are happy to discuss the topics with you!
Somehow the software industry is very vulnerable to trends.
I believe one reason for it is that the amount of people in the industry has exponentially increased over the past decades.
There are simply not enough experienced developers available to properly train new talent, to discuss with new talent, let new talent participate in their learnings.
A lot of outstanding senior technical staff has also been dragged into non-technical careers (proof: author), further reducing the seniority of development teams.
The average software engineer today is between 25 and 34.
Some of the best engineers I know did not graduate before 34.
Another reason for this is that new technologies and architectural patterns always solve something well. In the context of the problem they solved, they can be pitched very successfully.
Technical staff love fancy things that promise to solve things better. So they opt for the trend.
Unfortunately, more than often, the trending technologies or patterns do not solve the problems of the people going for them.
Software projects are very diverse. The requirements are very different. Writing an application for 10, 1000, or several million of users has different architectural requirements.
Writing a script to convert a file has different technology requirements from building a platform to manage complex business processes.
Thus: No silver bullets. No technologies that solve everything well for everyone.
You need to think. You need to think hard about your problems and requirements, you need to understand the different options you have at hand, you need to analyse the impact of the decisions you are making.
If you do something because everyone else is doing it the same way, chances are higher that you will burn tons of money to create something largely inappropriate for the problem at hand.
For the next level: you need to learn to reflect on your past decisions. You need to be honest to yourself about the effect of those decisions.
Did they lead to high productivity? Remarkable outcome? Was the cost of implementation and maintenance low compared to the effect it had?
Is it still reliable and maintainable? Is it under control?
If not, chances are you did a great job burning company money and killing morale for a lot of people that have to work in that pile of dirt you built following a trend.
Do you agree? Did you also burn company money falling for trends before? I for sure did. Its a strong seven- or even eight-figure number.
I am looking forward to discuss this on LinkedIn
Also check out my other parts!: