As I understand it, Scrum should have been developed to simplify the lives of developers.
No, that's what agile software development was created for. Scrum was created to ensure that management retains roughly the same level of control it had before agile software development existed, and that it can continue to work pretty much as before without having to adapt too much, and still be able to sell the idea of "we're agile now" to developers without having to become truly agile itself.
Agile development itself does not require most of the things that Scrum introduces. And I don't see how anything that Scrum introduces really makes life easier for developers compared to agile development without Scrum. I only see how it makes life easier for management and those who want to have more control over the developers and the development process, as if it was development prior to agile.
However, due to the points mentioned above, I have the feeling that the exact opposite is happening.
This is why so many companies love Scrum, because Scrum allows them to misbehave just like they did before agile development. Scrum itself does nothing to prevent this misbehavior, it just hides it behind new names (roles) and on top of that makes it easier for management to blame every failure on the developers (they made wrong estimates, their performance was too low according to the burndown chart, they didn't finish a feature by the deadline), while in reality it is mostly management mistakes and false promises to customers. And because developers have been told that they are now in control and everything is their responsibility (neither of which is remotely true), they often believe it's their fault and blame themselves.
Don't get me wrong, you can use Scrum without abusing it in this way, but many companies only use Scrum so that they can claim to be "fully agile", when in reality they are just hiding the fact that they are not. And if you just wanted to be truly agile, you wouldn't need Scrum at all. Scrum just makes everything more complicated than it needs to be and only adds extra overhead to the development task, which always has a negative impact on performance, as every second you spend on following the scrum protocol beyond what agile itself dictates, is a second you don't spend on agile software development itself.
The agile manifesto is basically:
- Individuals and interactions over processes and tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following a plan
But Scrum is a process and deadlines after burndown charts are contract negotiations. The whole idea of being agile is, well, being agile. Agile in the sense of being flexible and fast and getting things done instead of following static rules... static rules like a whole set of rules created by Scrum. It's management that wants more rules, because rules mean control.
If the development team delivered great products without management, which most development teams certainly could, 9 out of 10 managers would no longer have a justification for their job. This is why Scrum creates an additional role for these people, not because the role is necessary or because the agile manifesto requires the existence of such a role at all. Rather, this role adds a new barrier between developers and customers, which the agile manifesto actually wanted to tear down, as it was convinced that the closer the developers and customers get together, the better the product will be and the better it will ultimately meet customer needs.
As for time estimations, I go with Uncle Bob ("Robert C. Martin", author of "Clean Code: A Handbook of Agile Software Craftsmanship" and inventor of the SOLID principle), who basically says that you cannot estimate software. You simply cannot know how long it will take to create something you've never created before, because following the DRY principle, you should only ever write new code and otherwise re-use what's already there.
So according to him, an estimation for work should just a value between 0 and 5. Why? Because programmers are good at doing relative estimations but they are bad at doing absolute ones. What does that number mean? Nothing! 4 is more work than 3 and no, it's not twice as much work as 2. A higher number means more work, a lower number means less, but these numbers have no relation to hours, days or weeks and they have no relation to each other except that higher means more and lower means less. In another talk he said that 0 can be a valid option and would mean "no work at all" for cases where nothing needs to be done if you are happy with a particular implementation that really requires no work, otherwise it must be at least 1.
When forced to give a time estimate for a concrete implementation task, he always gives three figures: Best case, worst case and nominal case, whereby the range between best and worst can be large, which expresses the realistic uncertainty. Whether such an estimate is useful is another question, I suspect not, but that's a management problem and not your problem, unless you are hired as manager and also paid as a manager.
And the point of a burndown chart is not to monitor individual performance (again, any kind of live monitoring goes directly against the agile manifesto), but to see how many points the team is able to deliver in a sprint, what gives those points actual meaning, and to see if certain changes in the team or work environment make the team more effective or less effective. The system shall never impose pressure on anyone, as it shall not measure individual performance, but team performance. And if a team can only deliver x points a week, then it can only deliver x points and that is not problem, no matter how low x is, this is information the management has to deal with when they decide about deadlines or make product promises to customers.
The whole idea of the agile approach is to trust the developers. To trust them to do a good job and work as much and as fast as possible without sacrificing the quality of the code (= the product). Forcing developers to work faster and sacrifice quality to meet arbitrary deadlines is exactly the problem the agile manifesto wanted to eliminate! If a customer needs the product faster, they need to cut features or simplify parts of the product in consultation with the developers - that's what is meant by "customer collaboration over contract negotiation". The basic idea is that the customer can decide what features need to be in the product, or they can decide when the product needs to be ready, but they can't expect the list of features they have come up with to be ready on the arbitrary set date they want, that's not how things work and management must also not make promises like that.
If you rush code, you create bugs, and bugs cause problems, and problems slow down development, so you end up creating less and less while trying to create more, which is moronic. Code builds on other code, and if the code it builds on is already buggy, the code it builds on won't work right either, and eventually nothing works right, and everyone spends days to weeks fixing bugs instead of implementing new features. You can choose from several alternatives the one that is quickest to implement when time is of the essence, but you can't expect developers to write bad code on purpose. If I want to make something out of steel and I get behind because the welding takes too much time, I can redesign the product so that less steel needs to be welded, but I can't go to the welders and tell them, "Just make worse welds to speed things up," because then they wouldn't have done their job right, and in the end a few of those welds might break and the whole thing falls apart, and then you have no product at all. Welders don't ever intentionally make bad welds, that's totally against their work ethics. If you need to speed things up, you need more welders or must reduce the number of welds to be done, that's how this works. Or as Uncle Bob once said: "We will not ship shit!"
Here's Uncle Bob himself speaking on time estimates:
https://youtu.be/Qjywrq2gM8o?t=3346
And here he speaks about point estimates:
https://youtu.be/l-gF0vDhJVI?t=3473
The entire presentation he gave is very valuable. It's not about agility in general, agility is only mentioned at the very end. Lots of interesting topics for programmers, and even if you don't agree with everything, you can change your perspective on certain things. But even more important than for developers is the talk for managers, because mismanagement is much more often the main problem in software development than what the developers do. You can have the best team with the best developers, if it's led by a lousy manager, you're just going to get lousy results.
And that seems to be your actually problem:
Your managers apparently don't know how to do good management, they haven't understood agile development, they hide behind Scrum to repeat all the classic software management mistakes and to put the blame on the developers for their own management failures. And that's why Scrum sucks for you, because the scrum concept can be misused as it does not setup any rules that would prevent such a misuse and IMHO this can only have one reason: The possibility of such a misuse was intentionally kept open for those managers who want to have agile development without really having agile development and who are not willing to give up any control to the team as they should and who just want to hide the fact, that above the developer team nothing has really changed and all past mistakes are repeated. If those managers read a book about true agile development, they freak out but then they read a book about Scrum and think "Oh, I can make this concept work without having to change a lot, without having to change myself or the way I manage those software guys". And that's why Scrum is the popular among managers and thus used by so many companies.
Update
Here's another video from Uncle Bob I found that's entirely focused on time estimations and why managers simply have unrealistic expectations about it.
https://youtu.be/eisuQefYw_o
Quote: "There is a fundamental truth to work breakdown structure (WBS) estimation: The only way to estimate using a work breakdown structure, to really accurately get the number right, is to implement the project. [...] So you have to make sure that managers understand that there is an extremely high cost involved with refining the estimate."
Product owners always want to persuade you to make false promises because then you either punish yourself and do everything possible to keep the promise, or you fail, but then all the blame lies with you. That alone is a violation of scrum protocol. Product owners have no say at all when it comes to estimates. The developers make estimates and don't have to justify them to the product owner. The product owner only has a say when it comes to picking which stories go into the next sprint.
If the product owner knew better, he would implement the software himself instead of hiring developers to do it, because it would be much cheaper and apparently he can do it much faster than trained professionals, right? The fact that he's paying you to do it already disproves this claim, and if he can't do it, he can't know how long it will take you. All he wants from you is a false promise, so the blame lies with you and not him, after all most product owners have people above them that they have to justify themselves to and they want you to be their scapegoat when things go wrong.
Show them that you can meet your estimates. If you estimate 5 days and they push you to estimate 3 days, but it ends up taking 5 days, point out that your original estimate was actually correct. There is no point in improving the estimate if it ends up taking the same amount of time as the original estimate. Managers need honest estimates, not good-looking estimates. Good-looking estimates are sandcastles over the rainbow and totally worthless. They look good on paper but they have no real business value, as you cannot use them to estimate how long the project realistically will take or what it will cost or when you might be able to ship it. They just look good, but that's all they do.
Update 2
I like to add two more talks here from Allen Holub, as they are straight on the point. 1990 Allen Holub wrote the book Compiler Design in C, still considered a reference book as of today, and some may also know his book Taming Java Threads.
In his first talk, he basically explains why agile doesn't work for most companies and why Scrum is not agile (he covers a lot of the same arguments I've already covered above, but I didn't even know his talk, when I wrote my reply; especially he agrees that the whole point of Scrum is to fake agility and prevents companies from truly becoming agile as become agile means change and companies don't want to change their existing structures):
https://youtu.be/vSnCeJEka_s
In his second talk, he explains why time estimations in agile software development are totally nonsense and themselves violate the agile concept (and he also confirms that if your company is truly agile, the first thing you want to get rid of are most of your managers as you won't need most managers anymore as they cannot perform any meaningful work in an agile company):
https://youtu.be/QVBlnCTu9Ms
Update 3
Here's another very good source. An interview of Allen Holub by Dave Farley (you may know his YouTube channel named Continuous Delivery, which is all about modern software development):
https://youtu.be/WSflPE_oIRI
Two quotes from that interview:
[Scrum is] shitty agile for enterprises [...] One of the reasons [...] why Scrum kind of became synonymous with agile, because it was the easiest one to cheat.
- Dave Farley
and
the original intend was to make something that actually was agile more palatable to the business and by that what they mean is more acceptable to someone who doesn't really understand or want to be agile.
- Allen Holub
This perfectly supports pretty much everything I wrote. Scrum is fake agile for business, and that's why it's so unsatisfying for developers, because it changes everything without actually changing anything.
All the problems that developers had before still exist with Scrum. There are just new roles, new names, and new processes, but there's still hierarchy, there's still management control, there's still time and work pressure, there's still forced commitment, it's still business over code quality, and there's still a fundamental lack of understanding of how software development really works and what it takes to get high quality software that's future proof, bug free, and delivered on time. And on top of that, there's now a new layer that makes it even easier for managers to blame developers for their mistakes, because developers are told they have total freedom and it's all up to them and if the project fails, it must be all their fault and nothing could be further from the truth.