matter what agile or lean approach you are using.
If senior management needs to know how long the entire project will take, the best way is still to explain, "We need three iterations to be able to estimate. We will track our velocity for three iterations and give you a reasonable three-point estimate at the end of that time, OK?"
Anyone who won’t wait six weeks, or three two-week iterations, for a reasonable estimate wants a SWAG—a “scientific, wild- tush guess.” In that case, you can say, "Christmas," and don't provide a year. This is the "Happy Date" schedule game. You’ give them what they want to hear, because reality will intrude soon enough.
If you are transitioning to agile, here are guidelines I have found useful:
Make your stories small enough so that you, the team, can finish more than one story inside an iteration. My rule of thumb is that you should be able to complete a story every day or, at worst, every two days. If you can complete stories more often, that's even better. If you can't complete a story at least once every two days as a team, your stories are too big. Yes, there are exceptions, but you'd better have a darn good reason.
Remember that velocity is personal to a team. As soon as you change a team's makeup, velocity can change. So, don't change the people on a team if you want any sort of predictability about estimation.
If you really want some predictability, make the stories really small, so that people can pair on them and still finish them in a day or less. Then, all you need to do is count the stories to have a rough idea of how long the team needs to finish the project. "That's a lot of stories, JR!" Of course it is. That's why you're paying people to work on the project.
I no longer estimate my work. I make sure my chunks of work are tiny. That way, I just keep chugging along. That would work for your team, too.
But, whatever you do, give up the notion of stories spanning iterations. If your stories are big enough that they need to span iterations, stop right there. Stop with the partial credit. Put those stories on a diet. Separate the stories—not into tasks, but into multiple, independent, smaller stories that the responsible person or product owner can schedule into the most appropriate iteration and rank when it's time for that story to be implemented.