views:

56

answers:

3

I'm in the early stages of a project which is being built using the PHP framework, CakePHP. Currently, CakePHP has a stable release (1.2.5), and there has just been released their first alpha of the next version (1.3.0). The next version adds a lot of features that I want for my project (mostly in the way of performance increases), so eventually I'd like to move to using that.

As I said, I'm in the early stages of my project, so by the time my project is ready to go live, I would imagine that Cake 1.3 would most likely be stable.

Though my situation relates to Cake, my question could apply equally to any platform and third-party tool: Should you develop on the cutting edge, in the hope that any instabilities will be worked out, or should you stick to the stable and well-documented versions?

+1  A: 

It depends on:

  1. The time frame for your project and for the 3rd party tool. Do you plan to release a version in 1 month or in 1 year? Will there be a stable version of the tool by then? (this one is a "yes" in your case)

  2. How you designed you application for change. What if the tool introduces a breaking change when stepping to stable release? Will you be able to cope with it with minimum modifications to your code?

Konamiman
+3  A: 

When the project is important and you have a tight time schedule, then I'd stick with the stable versions. If you have some "spare" time then you might have a look at a mixed solution where you maintain a branch of your software that you try to code with the unstable framework. So you have always a fallback when the experimental stuff makes too much trouble. Disadvantage: Takes a lot more time if the framework "update" introduces a lot of changes. But you may try to use some abstractions to keep the differences between both branches low.

When you have plenty of time and the projects timeframe fits, you might have a try at the bold "put all on one card" solution. But for that the project should be pretty close to release and the targeted release date should be pretty soon. Release dates in the open source world are not made of stone, so be prepared for some pretty long delays. If this doesn't break your plan, go ahead... ;-)

Patrick Cornelissen
Agreed to this one. On any given project, there's only so much room for Risk. If you have a tight schedule or high quality requirements, choosing new (potentially unstable) tools is a bad idea.
CaseySoftware
+1  A: 

I think it would be a mistake to rely on a stable version being released before you need to go live. Who knows what could happen to a given TP project? Financial issues, lay-offs, even just an accident with their source code. I'd certainly wait until they were into beta before even looking at a next version as an option.

CodeByMoonlight