3 ms·
I'd say that the really huge generational divide is the supply-chainification of software development. I'm just barely old enough to remember the days when a s
by nostrademons 5y ago
I'd say that the really huge generational divide is the supply-chainification of software development. I'm just barely old enough to remember the days when a software engineer was responsible for everything between the hardware and the UX. You wrote code that implemented algorithms and data structures; and made choices between what would be computed in CPU, stored in RAM, or paged to disk; and worked on the whole program from the network or disk layer up to the UI.
Now all of these are different roles. You have backend engineers and data engineers and data scientists and front-end engineers (who only deal with modern Javascript and its dozens of frameworks - even 10 years ago a front-end engineer was expected to know how a webserver and HTTP worked) and mobile engineers and AWS experts and Docker/Kubernetes experts to orchestrate it all. If you're actually responsible for the whole program, that's an architect or tech lead role and you don't actually write a whole lot of code. The jobs of each of the people who do write code largely consists of gluing together existing industry-standard frameworks. Algorithms and data structures are stuff you solve on a whiteboard to get the job, and then you never use them once you have the job.
It's the natural evolution of an industry, but it does make the job a lot less interesting. The observations the author makes are a natural outgrowth of this - when you have a lot of separate roles collaborating to build a program rather than a single person designing the whole thing, you need a lot more meetings and e-mails and testing.
- rachelbythebay 5y agoI suspect a lot of these extra steps are not contributing positively to the product. If two solid people could get the same result and there are two dozen people on something, where is all of that extra effort going? We don’t talk too much about this.
- thinkharderdev 5y agoIf two people could get the same result then that would be strictly better, but I think the issue is that two people couldn't (or at least the two people you actually have instead of two hypothetical people who maybe were more capable). But output doesn't scale linearly with number of people involved due to various coordination/communication issues. So I think the root of the intuition we have that there is more "wasted" effort is just that people are building larger, more complex systems that need larger teams to build and the larger teams spend more effort (on a per-person basis) on coordination.
- corpMaverick 5y agoIMHO. The effort is going to added complexity. Not doing the simplest thing that could possibly work. I suspect managers and directors allow this because they are just trying to grow the own teams as much as possible thus growing their careers.