A mistake less experienced software engineers make when it comes to estimations:

They break out maintainability/quality. Eg “building the feature is 2 weeks, adding automated tests another 3 days”.

What follows by less technical stakeholders is a push to remove the latter.

Non-functional requirements like correctness, quality, maintainability, performance etc should be baked into estimates, and not made part of bargaining. That bargaining is how sw can become less maintainable over time.

@gergelyorosz I argue the opposite.
I break out quality-related bullet points (even though you and I know that quality IS baked-in throughout the whole process) because that shows that it's a thing we've considered and that doing things right takes time.
However I don't negotiate on those bullet points. You can cut features etc but the quality elements are mandatory.
When there's pressure to shorten them it makes for a deliciously awkward conversation 😁