
Originally Posted by
vincink
Having worked in software development for decades, this is truly disappointing to read. Software isn't like a light switch, with only a few components. Software is like a metropolis-- a huge city with many systems, sub-systems, sub-sub-systems, etc, that no single developer can fully understand end to end. Working with one version of software whose complexity is equivalent to a metropolis is impossible; having two separate versions of the same software increases in the complexity of the entire product not linearly but exponentially. Now imagine a "new generation of developer" trying to understand the exponential complexity of two separate versions of the same software. Most software worth its weight in gold builds a library of knowledge over its life that is equivalent to the sum of all of Oxford's libraries.
You're asking developers to become gods when you say this, much as you might pretend you're not saying this.
More people exponentially increases the communication channels. Humans are terrible at communicating information. Adding another person may theoretically create a "bigger bucket" to hold more water, but it also adds more holes to said bucket. Information leaks rapidly in human communication and is subsequently lost. Do you use SharePoint at your place of employment? Or some equivalent knowledge repository? Microsoft intended that to be the solution for leaky and lost information. What it's turned into is a black hole. Even with AI agents that cull through it, the context of the original information is gone. No AI can restore that, and context is what brings value to information. Not the information itself.
Hiring skilled people in bulk and expecting a 100% increase in productivity is foolish and is the mistake there in that scenario. Sounds like whoever demanded more labor did not have work ready for three-quarters of the hired labor force. The best decision there is to keep the 2, fire the 8, hire 3 young, motivated developers as apprentices and train them up over the course of a few years so that they become a solid experts. Repeat. Apprenticing is the best model we have for transferring information, wisdom, and skills. Have a look at Canada's civil engineering history from roughly the late 1960s to 2020 to see how eliminating apprenticing nearly cost the entire nation of Canada its electrical grid. It's a great and humbling lesson in how to ensure knowledge, wisdom, and skill is sustained and increased over generations, and how to hire the right amount of people and keep them motivated (i.e., stave off laziness).
I'll let you in on a secret: since computer systems first appeared in the 1930s, the user has always been a tester. It cannot be any other way. Whoever uses software (or hardware, for that matter) is exercising it, and based on the user's unique input they are effectively testing the software, even if that's not their intent or desire. The QA department is simply a bunch of testers with some specialized skills and tools for testing software. And they have never been charged with the mission to find every possible defect in software. That is impossible.