On every team I’ve been on so far in my career, a tug-of-war has existed between engineers and product managers over quality and feature work.
From the engineering perspective, we want clean abstractions. We want well-thought-through technical designs and implementations. We want to keep our code DRY and well organized. We also want tooling and automation to ensure our quality bar is consistent.
On the flip side, within software, we’re usually building a product to help a business meet specific objectives. Investments are made to help the business earn or save money. These investments aren’t infinite, so we’re given deadlines for when to ship or add certain functionality to the product.