The Agile process breaks down work into a Sprint. The sprint length can be as short as two weeks or as long as four weeks. This is just a recommendation that I have seen. I have heard of companies doing one week and even one day sprints. Progress occurs in a series of “sprints”. Small features will be completed in one sprint where larger features are broken down over multiple sprints.
When to release is something that we struggled with when I worked at Dice. “Do we need to release after every sprint?” This really depends if your code is ready, sometimes you may have large features that may take a few sprints to complete. The product or feature is designed, coded and tested during the sprint. To accomplish this you really need to break down things to be workable in your sprint cycle. This is where the normal six-month objectives must be divided up. At Dice prior to our Agile changeover we had six-month objectives that were large and would change. Getting people to really focus on what was the highest priority for the next sprint proved challenging.
Once you determine your items for the next sprint you must lock in on those and not change them during the course of the sprint. If you start changing your items during the sprint cycle you could get into some “thrashing” where little is accomplished but causing frustration to the team.