I prefer a Kanban or Scumban model to Scrum. Running fixed-length sprints to me is arbitrary and wasteful and rarely in my experience works.
Some reasons I don't like sprints:
What if I'm coming up to the end of the sprint and running behind? Do I cut some corners to get it complete? Do I have the work cross over into the next sprint( now have to document a bunch of extra stuff).
What if I finish my tasks earlier than expected in the Sprint. Do I take it easy for a day or two waiting for the Sprint to end?
What if you have dedicated testing teams waiting on development to finish something? Are they waiting around til the end of the sprint for something to do? Or are their sprints staggered? That requires extra planning.
What if you don't foresee something, or something new comes up that is critical? It interrupts your sprint, or it waits.
With Kanban, you simply maintain a list of things to do, prioritize them, and as team members finish a task, they can take the next task off the top of the board and start working on it. The to-do list can be constantly updated and modified. Much more flexible, IMO. If something critical comes up, you can start work on it right away. If you forget something, you can add it in right away. If you have a dev-test pipeline, tasks can move from team to team whenever they are ready to move. If a task is easier than expected, great. Take up the next task when you complete it. If a task is harder, no problem - work on it until it is complete.