Ask HN: Is Accidental Complexity Growing Faster Than Essential Complexity?
Context intro to my answer: I&#x27;m come from a service economy. Much of what I&#x27;ve seen is from companies that go out there, get clients from various types of businesses - construction to finance - and create custom solutions for them that are then maintained by the same service companies. I&#x27;ve also seen a few product companies and I have worked with one for a year.<p>---<p>After reflecting on this question, I feel like a good way to think about it might be this:<p>Companies are hitting extreme points right now. On the one hand you have companies that have stuck to their way of working for years. It worked, and in the process of getting customers and making the money come in, they never really thought to upgrade the company processes. After all, back in the day, tech moved at a much slower pace and that&#x27;s what they are used to. There&#x27;s been little to no incremental improvement in the technology or even the practices that have been used throughout the companies life. These types of companies still use FoxPro for ERP&#x27;s, much much older Java enterprise tech stacks (and practices) for their server side stuff. I don&#x27;t say that that&#x27;s bad mind you. The ERP company has been around for over 25 years.<p>On the other hand you have the fresh companies started by people who really don&#x27;t want to enter the juggernauts of the market. The establishment. Guided by the excitment that reaches us from Facebook listicles, and Techcrunch, they want to ride their own paths and build a fresh future. They want to go in and show businesses that the establishment is giving them &quot;boring&quot; and that they can do it better. I&#x27;ve met with lots of these people as well. Generally they&#x27;ll start explaining their business by start from their tech stack. &quot;We are a SME ERP business using react and a full JS based stack&quot;. That is not an exaggeration. That is near verbatim.<p>In between these companies you have the graduates who need to pick a side to go work in. And those that are entering the establishment, want to make their mark. Their impact. They walk into a company that is using SVN for their source code management, and they groan. They see Java being used and they say &quot;why not NodeJS?&quot;. And what I&#x27;ve seen that happens, is that they run into the people of the establishment who have no interest in upgrading. Instead of having mentors who work with them towards incremental improvements where each improvement is justified by developer productivity and improvements to the customer they hear &quot;what we have is good enough. Forget it&quot;. Or the more common &quot;too much work. Don&#x27;t bother&quot;. As a personal note, the latter really bugs me. Of course it&#x27;s too much work. You&#x27;ve set it up to be too much work. But, what happens then is that some people will become the establishment, while the others will bide their time waiting for a greenfield project to come and for them to be given a PM role (mind you I see PM roles being handed out to people with almost no technical knowledge, little ability to evaluate tech or specs, after being in a company for 1.5 years). And when they get it, &quot;LET&#x27;S DO NODE JS!!!!&quot;.<p>Oh and what of those graduates who left college to join the &quot;entrepreneurs&quot;?. They too have gone through university being taught web app development using &quot;ASP MVC&quot; and &quot;Microsoft SQL&quot; and they long to be let out into the world to play with the tech that they hear their peers are working with around the world. Admittedly, the Open source world of react and angular and what not is super exciting in terms of pace of announcements these days. And then they join their peers and everyone gets to feel excited that they are working with new things because they believe new must mean better.<p>---<p>Ultimately the answer is yes. Accidental complexity is growing faster than essential complexity. Business practices change much slower than tech in today&#x27;s world. I also feel like understanding the reasons behind it is worth pondering on.<p>For me, I feel that a lack of mentorship has a lot to do with things. There are far too few Uncle Bob&#x27;s - veterans of the software industry who&#x27;ve kept pace with the change and understand things with a deep historical context - who lead architectural decisions and project management at a company. It doesn&#x27;t even have to be Uncle Bob level veterans. But my observation of companies from where I am shows me very clearly that after 3-5 years of being in the industry, the deeper level constant learning vanishes. Which means that the older employees and the relatively new employees have stopped growing and the mentorship they provide is based on a tiny amount of work that they&#x27;ve done at some point in their life.<p>So to recap, we have people who&#x27;ve come out into the industry, fascinated by the flashy stuff (which is fine! That kind of youthful enthusiasm is also needed in the eco system). These people quickly make their way up to the management level within a couple of years, and then get to push the flashy stuff, and it doesn&#x27;t go beyond there. Understanding the balance between tech decisions and what&#x27;s required to solve the problem efficiently for the customer doesn&#x27;t happen. And then these people guide the next generation which multiplies the effect.<p>From my POV and from where I live, this is the service industry today. Accidental complexity is a growing beast heading towards an exponential curve.