It is important to keep one thing in mind in all this. Or maybe two. Its not just that some things work well for you – its that different things work for you at different times. It all depends on the context.

An Iteration – which I have gone into projects with a two-week length in mind – is the heartbeat of the project. Typically I would start it with a planning session and end with a demo and retrospective. A lot of people expect QA to be part of the iteration but I have found that sometimes the automation tests are difficult to come by.

In the end it doesn’t really matter how you do it. Just understand the reasons why things are done and then you can tweak it based on this understanding.

Why have a planning session?

A planning session is not really meant to get the team to commit to work and then hold them responsible to get it done. I have never believe that the principle of sustainable pave goes with teams committing and then working long hours to get it done. A planning session is a good forum to discuss requirements and better the collective understanding of what is being built. Of course there will be times when stories added to an iteration cannot be completed. As there will be times when the team can work on more stories than they thought they could.

You are much better off keeping things open and letting it flow. Remember a planning session is where developers ask questions, do some tasking and raise questions or issues that might otherwise be discovered much later.

Why do a demo?

Having demos with a stakeholder is a good way for the team to demonstrate progress. It is also a feedback cycle that makes everyone get a sense of progress. It forces end-to-end development. It allows for the Product Owner to change their track if required.
A retrospective?
As lame as this sounds people tend to not voice their minds. There are many reasons for this – most of which cannot be solved. An open safe forum allows the team to improve. Its as simple as that. Consider sending out retro notes in advance and having it run by someone who doesn’t have skin in the game.

I have been on teams that have used velocity and others that haven’t. I still believe its useful to use story points at a high level but I think its not that useful to try and hit a magic number.