Sprint duration
What is some good guidance on what to consider to select the appropriate duration for sprints? Is there any good reference material on this?
The duration of a Sprint should maximize the release of value. This implies that the Product Owner should have a view which ought to be taken into consideration. The duration should not exceed one calendar month.
What about considerations for releasing a product to market or the composition of the team?
For example, I would think if the company wants to release a product every month, then maybe weekly sprints are ideal (or maybe 2 week sprints) so that the developers can get several opportunities to get feedback before a product release. For longer product release horizon, the sprints could be longer. So I would think the organization would consider their release cadence or ability to go to market as a consideration for sprint length.
Is the composition of the team a factor? I've read it is best to try to keep teams together as much as possible, so maybe this is not a factor in sprint length. However, what if the organization wants to be able to move developers around (for example, they need a certail skilled developer for other Scrum or non-Scrum projects)?
I think I would argue that there is not so much value in trying to find a great model that calculates a good Sprint length for the team. Personally, I would check for hard factors (<= 1 month, the company's decision you mention above, ...) and then ask for a short discussion in the Scrum team. Decide something that seems to make sense and then go for it. Use the Retrospectives to inspect and adapt.