We can debate the purity of scrum, but in practice, every company I've worked for has modified it to suit management desires, and those modifications have almost always been to the detriment of developers. For example, the "complexity" of a story is inevitably interpreted as "time". And the end of every sprint is often turned into a deadline that leads to tech debt. Creative development is not always a linear process, which scrum somewhat enforces. I think it could work if every story was treated as a spike, and every spike could be pre-empted by new spikes as you discover new things. If it was able to truly flow the same way software devs actually think and work, then it could work. The result of a spike could be a finished work, or perhaps many other spikes. This would model creative development better. But companies don't go for this because they cannot easily estimate time and schedules.