My best experience has been at a hyper growth company that roughly 10x’d in 2 years. The extreme focus on keeping up with demand meant that all manner of bullshit just melted away because nobody had time for that.
Ask any software developer how they work (or would like to work):
"Yeah I just do the thing until it's done, then I do the next thing"
But this doesn't work for management, so we end up with all of these charades, and we have to play along and talk about how "yeah that would be super helpful to have all of these tickets, and track the progress of our burndown chart, and what's our velocity this sprint compared to last?".
It's just a game to play with the company folks put in charge of watching over us doing our thing.
What happens is that you get yanked off the thing halfway through, only to have the same thing happen with a few other things.
Then folks ask why there’s 4 unfinished things lying around.
Any time I try to just update the branch to bring it rebase onto current master, I'm pulled into another task that is the highest of high priorities, so high, it can't even be added to TFS, and I must drop everything I'm doing to handle.
I will usually get 4-10 phone calls during the task (most take me under a 2 hours) asking for my status, and after the PR is submitted, it will get ignored for a couple of weeks until inevitably there is a merge conflict, so I then need to drop everything I'm doing to handle it.
I very rarely get to finish a task in my job without being spirited away for hours, days, weeks, months, or even years before being allowed back on that task.
Engineering teams that can more accurately estimate their delivery dates add tangible value to their company.
But marketing (reasonably) wants to know if an app launch is 4 weeks away or 8 weeks away and what features will be included so they can plan their campaign accordingly.
And then there are things that are immovable like a holiday or a legal deadline, where it’s helpful to know the progress and ETA as accurately as possible as early as possible.
If time is defined by management (ex. a Christmas sale), then engineering should estimate which features can be done by then.
But I’ve definitely seen clients try to define both the timeline and the scope of work and that’s not a successful outcome for anyone.
Agile works. But you have to actually do agile.
Yes, it’s hard. You have to hire good people and get out of their way. Trust is key. Let them do the work however they want, it’s gonna be okay. Focus on the outcome, not on feeling in control.