3 ms·
It depends on the team/company. I've worked on many teams/companies where: - Developers were encouraged to put in time to maintain and refactor code. (includin
by YZF 2y ago
It depends on the team/company. I've worked on many teams/companies where:
- Developers were encouraged to put in time to maintain and refactor code. (including forcing them to take time to focus on that and do nothing else)
- Engineering-centric work was prioritized over random product management asks.
- Schedules were adjusted to make sure the engineering work is done properly.
I'd say this was my typical experience, including S&P-500 multi-billion dollar companies, 100M-$1B companies, startups. I would also say that in all these cases there were experienced software engineers and managers that could be trusted to make reasonable tradeoffs and also pay attention to business needs. Often engineers interacted/worked directly with customers.
There has to be balance and that balance is typically achieved through people that can apply a balance. Striving for "perfect" can lead to never ending refactoring and never shipping. Ignoring technical debt or shipping garbage can lead to the collapse of the business over time. Neither of these extremes are the right thing. Where exactly you land on that spectrum also depends on the specific product, industry, customers, business.