In all teams, large and small, in all organisations, there is a constant pressure to deliver features at the expense of writing code well. The tension is between “do it now” and “do it right”.
When I speak to developers about this I remind them that they are a professional and that no-one (or at least no-one who isn’t a fellow software professional) should be telling them how to do their job right. If you say something will take 1.5 days then there shouldn’t be much picking apart of that, even if 0.5 days of that time is refactoring old code, shoring up the build system, or whatever. That’s what it takes to do a professional job. Not necessarily goldplating it, but doing it responsibly. And yet it frustrates all of us that developers are constantly beaten up on delivery time and pressured to cut corners, making short term gains at the cost of the long term.
But here’s a funny thing. Did you know that finance people do a thing called “double-entry bookkeeping”? This means that every time they capture a transaction they write it down and categorise it twice. Twice! And nobody questions them. Imagine how much faster your friendly local finance team could go if they weren’t busy goldplating their numbers! Now you may say something about finance being much more than just writing down numbers, but surely that’s a crazy suggestion — it would be like saying software development is more than just typing. And you may say something about needing to provide a fully-rounded view of the financial state of the company, but surely they should just get the numbers right first time and then work overtime to sort out any resulting problems. Because that’s what developers are supposed to do, right?
Or maybe — and I’m just throwing this out there — maybe people should respect the professionalism and experience of finance people, technical people, and others.