There are pros and cons to both approaches:
1. Feature boxed releases allow you to focus on getting the features the business side needs in the release and getting them right. However feature boxing is more easily prone to scope creep, continually pushing the release date, and spending too much time getting a feature “just” right instead of getting it in front of customers.
2. Time boxed iterations continuously keep the organization focusing on what’s most important and reliably get things done on a certain date at the cost of cutting features when estimates turn out to have been to low. You also spend a little less time actually implementing and more time planning, estimating, and meeting.
I think a preference for one or the other is largely a philosophical question. Do you value releasing early and often or correctness and completeness?
Having worked in both environments I strongly favor time boxed iterations because they provide a very light weight yet key form of discipline that many organizations lack including:
1. Getting the organization to make tough prioritization decisions early
2. Nipping scope creep in the bud because when projects start to run over developers start to make noise when a deadline is looming
3. It gets people thinking about breaking features down into per release iterations that they can get in front of customers quickly
The toughest part for many organizations is that time boxing requires a management team that’s willing to make difficult feature cutting/prioritization decisions instead of asking employees to work overtime. I think that’s why time boxing is often looked upon negatively by developers because they associate it with overtime.
At GreatSchools we do 2 week time boxed releases (although on occasion features will span a release or two) and we use Jira extensively for tracking each feature/project including estimates against actuals. So far the system has been working relatively well and has been extremely beneficial as a business planning and prioritization tool. Releasing often has also had the added benefit of forcing us to improve our processes and tools in the areas of release engineering, continuous integration, unit and functional testing, etc…
How do you manage releases at your organization and how has it been working for you?