Ask a question like this, and you're likely to get a numberline as an answer...
"two weeks"
"three weeks"
"four weeks"
"one week"
"15 calendar days"
or, in general, n+1 answers for every n people asked.
Which is the correct answer for my team?
Turns out that it's all. Or none. Or one of these. Or sometimes two.. There are a variety of factors that can help determine what the "right" length of a sprint is for your team. And, it does vary by team. Some organizations have one team on a two-week cycle, and another team on a 4-week cycle. They coincide, so deliverables can be coordinated, and intra-team dependencies can be predicted. Other teams swear that the original proposed Scrum cycle should be 4 weeks, and that's that. Most teams are open to doing what works. However I have seen organizations prescribe to the team how long their delivery cycle should be, for one reason or another. This dictated timeframe seems to be a bit less effective than getting the team to decide. Also, larger teams tend to have more problems with estimation, as do very small teams. More than 7 or less than 4 on a Scrum team seem to be the limits for most effective delivery, in my experience.
Now then, there are certainly pro's and con's for each of the cycle lengths. A longer cycle means more stories can be included, but that the feedback cycle of estimation vs. delivery is longer and thus not as able to hone in on velocity. Too short a cycle sometimes feels like thrashing, and that not enough complete, thin slices of end-to-end functionality can be accomplished. Remember at all times, that a completed "done done done" story is "potentially shippable."
The truly completed "done done done" story is rare in my experience as an actual shippable unit, but that's an article of its own on how to pick and adhere to DONE criteria.
Let me discuss the merits and drawbacks of each of the cycle lengths above. For the sake of discussion, I will assume a Scrum team of 7, 4 developers, 2 testers, and a project manager. I personally have tried each and every one of these iteration lengths, so I do have the perspective of experience (on a small team). Your mileage of course may vary...
Two Week Cycle
This cycle length has been in my experience the sweet spot for a small, experienced Scrum team. It is just big enough to get "real work" done each iteration, and small enough that the feedback on estimation is frequent enough to get closer on story estimation and velocity determination. I have also found that this relatively short cycle is good for preventing "hijacking" of a sprint by one or more stakeholders, management, or others that work outside the Scrum framework. Almost always, a sprint in progress can be completed even in the face of changing requirements, or stakeholder directions. "We can start that the end of this week" or at the latest "the end of next week" is almost always a fine response to these winds of change. The time spent planning and demonstrating (meetings in general) is a good middle ground, and payback for this time spent is usually pretty good. The typical planning meeting is 4 hours, first thing Monday, and the demo is 1 hour, and the retrospective 1 hour, at the end of the day the second Friday. I am a big fan of sprints that start on Monday and end on Friday, rather than the middle of the week. Mid-week sprint endings sometimes allow for "between sprints" time which I don't tend to like, as the things getting done aren't accounted for in the velocity of either the prior or following sprint.
Three Week Cycle
Three weeks is a good compromise between those who want faster, and those who want bigger chunks of work done. However, I am still of the opinion that for most teams, there is too much wiggle room in 15 business days. Sometimes estimates are padded. Sometimes people end up working on things not on the backlog. Estimates tend to be farther off, because there is a perception that there is more time available to get things done. For a disciplined, experienced Scrum team that has worked at least 4 sprints together, this might be a very workable option. Provided that the organization plays by the Scrum rules, that the team keeps estimates to realistic values, and that the team is truly able to break down stories into small tasks.
Four Week Cycle
Most of the 4-week teams I have seen have ended up going back to a mini-waterfall approach. The first week tends to be design and investigation stories and tasks, a couple weeks of cranking out code, and the last week of testing, finding and fixing bugs. Not that it has to be that way, but that has been what I have most commonly seen. I think the reasoning was that the teams perhaps were not as experienced with Scrum, and the number of days left a perception that there was a lot of time to do things "the old way." Also, I have seen sprints hijacked by various issues and people, and totally taken sideways due to the length of the time. Feedback loop is much more difficult to perceive for most of the team, and as such, estimation may not just stay the same, it may get worse. Tasks tend to be lumped into large blocks of 15 hours, 20 hours, or more. A typical task on an experienced team with good estimation is not often over 4 hours, and
never over 10 hours. These teams tend to be able to peg the stories for story points more accurately, and are able to deliver the stories as complete. This iteration length doesn't seem to work well, in my experience.
One Week Cycle
"How can you expect us to get anything of business value done in
just one week? Especially given the Done criteria for potentially shippable?"
I think that's what I said anyway. My team was on a 2 week cycle, but we didn't have much experience with Scrum at the time. We were having lots of issues trying to break stories down into tasks. I recall several 40, 30, and other double-digit task estimates. They were just too big. We couldn't figure out how to break them down further. Planning sessions were a nightmare, lots of arguments about task breakdowns, and estimates. Fortunately we had an agile coach who suggested that we ratchet the iteration down to a 1-week period. At first, this seemed totally counter-intuitive to us. Shorter iterations? Wouldn't that make it even harder to break down tasks? As it turned out, that wasn't the case. We had to break our stories up from the epic stories we were using to actual user stories that delivered an increment of functionality that had business value. That was just the thing we needed to figure out what we couldn't do in the 2 week cycle. We tried one-week iterations for several weeks, and got a lot better at breaking stories and tasks down into smaller pieces. We as a team decided then that it was too much overhead to have a planning meeting, a retrospective, and a demo every single week. The stakeholders didn't really understand, and what we were demonstrating was such a small increment that they were starting to think that the project was just dragging out in delivering small pieces. The two week cycle was a good return on the time spent planning and demonstrating, vs. the time spent actually delivering work.
In the end, it should be up to the team to figure out what works best for them - given some input from the corporate culture and stakeholders. New teams just starting out with Scrum should perhaps plan to try first two sprints each of 2 weeks, then two for 3 weeks, and compare results. By the end of the 4th sprint, the team should have some reasonable idea of what would yield the greatest velocity. If there isn't a choice for iteration length and it's prescribed, you'll probably have to just make it work. In any case, try to avoid the con's above and see if you can get your scrum master to push back a bit on the powers that be and let the team have a bit of freedom to see what works best for all. Scrum should be a collaboration, so if at all possible, do the best you can at making sure everyone has their input represented and just hold the team accountable and let the team manage their own delivery.