The conflict between "Now" and "Later"
We live by two rules when doing software development:
- If you see it - fix it now, because recording it, approval, job tracking - are all much more costly.
- Always put off what you don't need until tomorrow - as that is real interest on the money in the bank.
These two statements work. Anyone into any of the "Get it done" type work ethics will understand why. Mainly it comes down to this: If it takes less than 15 minutes, it is better to get it done now than put it off.
Put another way... don't over design for the future. I am sure one day you will need voting software on your web site - but don't start by adding every feature. On the other hand, you see a typo in your CSS variables which will have no impact on the site if fixed or not, but needs to be because it will cost later development - fix it now !
This later one is hard when working with commercial companies that charge for small units. I find when working with those types of companies that the state of code and jobs gets further and further behind. You get frustrated and end up doing it yourself - which puts even more strain on things.
The problem is that they are paid for their 5 minutes - do they put down in their invoice/time system that they spent 5 minutes fixing an unimportant spelling mistake, or improving the location of files, or automating a test for a system that was not broken - this is hard to justify when a project is late or over budget.
But because they don't, the 5 minute it cost then and there while your mind already had the full space now costs 2 hours. You may think I am crazy - but I have measured some of the communications, job tracking, and distractions that then come up because another developer (or the same one) see the bug yet again.
My only solution has been to make sure my customers realise that I get paid per day, not per hour, and definitely not per 5 minutes.
Overall - the customer wins !