3 ms·
I know most of this thread has been about making fun of Slack, but I wanted to write a somewhat serious response to this. I think "team software engineering" p
by godot 9y ago
I know most of this thread has been about making fun of Slack, but I wanted to write a somewhat serious response to this.
I think "team software engineering" plays a big part of this, if not even the main reason. When one developer is working on a program, the person tends to be able to keep track of program flow, memory usage in their head and know when things are about to go out of bound, memory shoots up, etc. When you have a whole team working on a huge piece of software, each person is working on one part of it at a time. If your feature grows memory usage by 100mb, it's not a big deal. 20 people doing that, memory usage just grew by 2gb. And then in modern software dev shops, you typically put devs on different features on a weekly basis. (unlike traditional, slow, non-agile development where a person owns a certain module/component and is the expert and works on it for years) When you move to a new feature, you need to pick up on all the details of how it works previously, and you build your stuff on top of it. You don't have context of the really nitty gritty details someone who wrote the original framework thought about. You're going to do something less than ideally efficient. Unfortunately, this is just the way modern team software engineering goes.
Or of course, you can still just say it's a Javascript problem and mock JS; which also has merits.
- eadmund 9y ago> I think "team software engineering" plays a big part of this, if not even the main reason. You're not wrong, but perhaps that's an indication that software companies should use language & environments which enable them to have fewer developers, and enable those developers to keep track of things like resource usage?
- arbie 9y agoBut then you end up with code sprints solely to optimize resource usage, handled by programmers that didn't code the original module(s). Inefficiencies get layered over inefficiencies.
- badosu 9y agoI think the point godot meant to convey is that modern software development practices disincentivize polishing and refactoring features for performance, as developers move around the application all the time; regardless of programming language. Whereas traditionally you would have an engineer responsible for part of the application as time goes by, making sure that it works better while maintaining quality.
- astrobe_ 9y ago> When you have a whole team working on a huge piece of software, Then don't freaking do that. There's no reason to make one huge app with thousands of features that justifies teams of dozens of devs instead of tools that do just one thing (and can be used in a modular way) correctly and nothing more. Actually, there's one terrible reason: the bigger the app, the higher the wall around the garden and that serves as a justification for the price tag. It's the wrong way of doing things because business. It's exactly the same evil principle as the one which is at work when the sugar or the tobacco industry do their slightly questionable stuff.
- salvar 9y agoSo when you say there's no reason, you mean that there are business reasons but you disagree with them?
- ajeet_dhaliwal 9y agoCouldn’t agree more. I see this all the time and it was echoed in that recent popular post by the guy who left Google after failing to get a promotion. Besides the modern software engineering approach this type of work (optimization) is also often not valued by leads. It’s all about visibility. Add new features fast and it’s visible. Good! Fix something, make sure your new feature isn’t hogging memory but take a little longer to complete the work? Bad. Added together no ‘owner’ for any specific part of the app and it’s like the public commons, the person who picks up the litter won’t be acknowledged. The incentives are screwed up. Ultimately though it’s also the customer, if they don’t care (and most of them don’t since Slack is highly popular) then why bother. In a market and business sense that makes complete sense too.