3 ms·
I'm not convinced an arbitrary date is a bad idea, and in fact, I continue to think it's a good one. If you don't have a point in time you are optimizing for as
by darkerside 5y ago
I'm not convinced an arbitrary date is a bad idea, and in fact, I continue to think it's a good one. If you don't have a point in time you are optimizing for as a developer, then why wouldn't you continue to gold plate and improve your code? Once you have a ship date, you know when it is time to knock it off and start heading downhill.
The real problem here is the leadership deficit. The manager got pushback on the estimates, and instead of explaining the reasoning and bargaining on scope, he caved and kicked the can down the road by letting the estimates crumble. Yes, estimating is hard, and you are probably going to be wrong, but once you have your finger on the scale to get a desired result, you can't blame that on the difficulty of estimating. Just deplorable leadership.
- papito 5y agoRight, but these dates should be intrinsically motivational, and not induce negative stress.
- FinanceAnon 5y ago>If you don't have a point in time you are optimizing for as a developer, then why wouldn't you continue to gold plate and improve your code? Because it feels good to complete work and I would like to move on to other features. How long can you work on improving a single piece of code before getting bored?
- darkerside 5y agoSo developers should work on features until they get bored of making them better?
- FinanceAnon 5y agoThat's not what I am saying. The parent post makes it sound like, if a developer doesn't have a deadline he will just work on a single feature forever. I am saying that most developers intrinsically want to complete features to move on to new stuff. If they are in a good environment, arbitary deadlines are not required. When I pick up a feature, I know roughly how long it will take and I will try to finish it within that time. I don't need an arbitary deadline from management.
- darkerside 5y ago> I know roughly how long it will take You've formed your own arbitrary deadline right there, because what I was trying to say with my admittedly brief and snarky comment is that a feature being "done" is subjective. You may have terrific business sense, and more importantly, one that is aligned with your stakeholders. That doesn't mean any other developer does. Agreeing on a deadline in many cases of a healthy team practice.
- FinanceAnon 5y agoArbitrary - based on random choice or personal whim, rather than any reason or system (first definition from google) I think that reasonable and technically-informed deadlines are fine. But arbitrary deadlines are not a good long term approach. We probably agree, but it's difficult to explain everything via comments :)
- ornornor 5y ago> gold plate At my current employer, managers love to use this term. We are asked not to gold plate. And yet they’re the least qualified to decide what is gold plating. Case in point, gold plating in my managers’ minds means: “code reviewing, refactoring, automating code quality (linting in pipeline etc), or writing any kind of test”. To the rest of us, this is far from gold plating, nice to have, or optional. Yet this is what gets cut every single time. And then we’re asked why we suck so much and “just fixing that one little button” takes a month and breaks five other things.
- darkerside 5y agoSounds like they need education on several of those points. Code review, and automated tests should be table stakes, not gold plating. Linting doesn't even seem to belong in that list because why would it add to development time? Refactoring is a bit different in my mind. I often discover better ways to write a piece of functionality while I am writing it. Sometimes it's worth essentially starting over, and sometimes it's not. That decision IMO should be heavily influenced by business deadlines. There are times to push back the deadline because of a major refactor, but they damn well better be a rare exception, and you (and your manager) damn well better be able to explain the business reasoning behind it. Lumping poorly judged refractors, last minute pet features, and optimizations (actual gold plating) in with critical technical practices like testing and review is probably part of the problem in your organization..
- ornornor 5y agoBy refactoring, I mean cleaning it up once it works. But in my managers mind, as soon as the code works it’s good enough. Doing anything beyond that like sensible variable names, comments, making the code easier to read and follow is gold plating. So the second your hacked together development code works, you’re supposed to merge it and move on to the next ticket. The pipeline stuff is gold plating because it takes longer than two minutes to configure and it then blocks merges and PRs when the code doesn’t pass linting etc (which slows us down right now, never mind that it’ll save a lot of time down the line) I’m mostly just venting with like minded peers though. At that point, I’ve given up on fixing anything. I’ve tried, it burnt me out, and had no effect. Now I just put my 8h in, get my paycheck, and watch as we’re setting piles of money on fire. You can lead a horse to water etc.