May 28, 2008

Evidence of Things Not Seen

One thing I think about is release frequency. How often should we release new, non-maintenance releases of our software? As often as possible? Bi-annually? Yearly? On the one hand, I like to give user continual improvements. When people come up with great suggestions, especially when they are straightforward, you want to get them out into peoples hands. Customers will sometimes say “How hard can it be to add XYZ” and often they are right (though just as often they aren’t.) Sales and marketing folks often like something new to talk about, but making them happy isn’t always high on my list. On the other hand, frequent releases can be a hassle for large (and small) companies. You might need to validate that the software doesn’t break something else you use. You might need to push the update out to lots of desktops. And the constant “noise” of releases can be annoying to decide if this release is worth the time of installing. This is, of course, separate from your development process and "internal" releases. You can still follow an agile style process, and just release externally on a slower calendar. So what’s the answer for Surround? I tend to lean more toward major releases every 12-18 months, with a minor release somewhere in the middle. The minor release should include few or no substantive user interface changes to existing functionality. Maintenance releases (with bug fixes only) as needed, of course. Hopefully that's often enough for users to see the product incorporate their ideas while not forcing them to constantly look at new releases to see what 3 new features are in it.