The folks who thought of Scrum were really smart guys. I don't say this because Scrum has worked for me but I say this because the more I think of Scrum, the more I appreciate it. For example, why does a Sprint need to gave a goal? Is it just because we want to divide the project into chunks and if each sprint or chunk of work is successfully executed we assume that we are on the right track? Or there is more than what meets the eye?
For me a sprint goal is not just an indication that the team is going in the right direction, it also caters to a great desire in me and in most developers - that is to get the feeling that you delivered something well and it calls for recognition and celebration.
If I analyze this more, we as humans are driven by purpose. Plus it gives us great satisfaction when our purpose is achieved and we are recognized by our peers. In waterfall, this moment came once in the life of a project (that too it was rare) when the project was successfully deployed to production. The Scrum guys, smart as they were, wanted to give us more opportunities to celebrate and pat ourselves on the back.
In essence, what I am saying is that it is a great feeling (generally) to plan for something and achieve it, be it a simple thing to reach a supermarket at a pre-determined time. Scrum wants to give us the same feeling. But I see we sometimes let go of this feeling because we miss a few essentials. So what are these essentials and how do we not miss them ?
Few suggestions that I can think of -
p.s. This is one of my gripes with Kanban as it never gives me this happy feeling so I never recommend it.