I was talking with Kaare yesterday and we were looking at the structure of the old code and the question came up "why don't you throw it out and start from scratch?" Obviously we haven't been in a position to do this because of a need to support existing users, but I was starting to think about this again as a result of his question.
One of the difficulties we have had for a while is the ability for new developers to come in and contribute, in part because of the code quality of the older code layers (most particularly the SQL Ledger codebase but also our earlier work) One possibility would be to establish a parallel release that would only be new code. One reason we haven't done that is that right now, if we did this, we couldn't meet anyone's needs.
But I was thinking. With the current work regarding GL, maybe in 1.6 we could start with a parallel release which would include only fully re-engineered code. In particular this would mean:
1 A more consistent set of dependencies
2. A more consistent codebase
3. Something we could point developers to and say "here is where you start."
4. Since the goal would be to get everyone on this version sooner or later, it would mean that this could prioritize next steps and functionality to move.
The biggest problem I see is that 1.6 would feature a very minimal application of this sort. Basically gl and financial reports only. Maybe we could get contact management in but it woudn't be connected to anything. A goal could then be to get ar/ap transactions (i.e. service invoices by amount only) in by 1.7, and then start on parts, orders and invoices after that.
What do people think of this idea?