In the world of software delivery, nothing is for nothing.
This is a key principle you absolutely need to get embedded into all of your team at an early stage in the project. It’s well worth taking the time to make sure, as it will potentially payback big-time in the long term.
The assumption is that you start off knowing what you need to do. If you don’t, then you have bigger problems to sort out; so best you do that first.
Still here? Good, you must know what you’re delivering. Now, anything to be done in your project should be assessed against what you need to do. If you do actually need to do it, fine, get it done. If you don’t need to do it, ask yourself why are you doing it?
There are many good reasons to do things you don’t actually need to. But with each of them comes a cost to your project, either in time, manpower, resources, or a combination of things. The cost of doing stuff certainly isn’t zero.
It’s up to you to assess that cost and weigh it up against the benefit of doing it. Then you work out what you can get back for it.
The cost side will generally be straightforward; do the sums.
The benefit side can sometimes be a bit more tangential; Maybe it will make things easier for your project later, maybe it will make things easier for someone else, maybe it will expand the scope of your project, in a beneficial way.
Once you’ve worked that out, you can then work out what you can get in return. Maybe you can get some extra budget, from another project, or someone will owe you a favour, or maybe you stack up some brownie points, or improve your credibility, all of which is worth something.