I read an interesting article today. You should probably read it first to understand my thoughts but I’ll summarize since most of you aren’t gonna read it and it’s a bit long anyways… It’s talking about the decision Microsoft has to make with IE8. The problem is that IE7 and below are all bad browsers because by default they are in quirks mode (it means it renders the page funny… ie style). The dev team now has to decide if they want to go the same route or switch to standards mode which is what firefox, opera, safari does… and I know most of you are thinking oh of course switch to standards mode… but in reality the solution isn’t that simple because that mean’s millions of pages designed for IE (and IE8 is still IE) will now be broken. The question is do you piss off the people who will be building the stuff for your product (developers) or do you piss off the people who’ve been supporting you (customers).
I thought this article was interesting not because I care what decision Microsoft will ultimately make… but I think Liferay is finding themselves in this position with the release of 5.0. We’ve already made decisions (java5) that will cause us to lose some past customers… (hopefully that will be offset by new customers that will pick us because of the decision). I think we are at a crucial time where a lot of us are hoping to make even more drastic decisions that will further kill our backwards compatibility… but offer us in return the opportunity to make Liferay the best product it can be… like using Expandos or tighter integration with spring/hibernate or whatever… we shouldn’t be tied down to our past anymore if we want to make a better future product. But that’s never the path we take… (except java 5 which we were forced to do)… we always build for a way to be backwards compatible. The key word here is TO BE. We are not always backwards compatible by default (Neil found an issue with existing url's and the new JSR-286) which is why I of all people found this article interesting.
Everyone in Liferay is put into one of two sides: There are the core developers and then support/consultants. Yeah everyone does a little of both but primarily that is their job… anyways it’s hard as a consultant sometimes that the core team makes 80% of the decisions about the product when we do 80% of the (money-generating) work… I’m not being bitter like I think that’s the right way to go about it… just hard in that we have to figure out stuff like Neil’s URL issue without always knowing why it's happened (I've done every upgrade since 3.2 to the next version.. so I know how you're feeling Neil!). So this has been complained about a lot before to the core team (that knowledge must be transferred better)… and it’s not really the point… but rather new insight because recently I went to China with Brian (Chan) and Nate. I spent some time working on core and spent time seeing people working on core. And the improvements they are planning to make or are in the process of making is very exciting. So exciting that I think older companies might be willing to pay more money to have these new features even if they have to abandon some previous work.
Anyways, if there’s only one thing you read about this post… it’s this: the article I read was really about Idealists (in our company it would be people like Nate who preach standards, standards standards… if they don’t want to support standards then screw them.. we want to make Liferay the product AWESOME) vs. pragmatists (in our company it would be Ed Chung… standards are good.. but they can’t get in the way of our ultimate goal… not to make Liferay product better… but to make more money for the company). The article ended with this: “You see? No right answer. As usual, the idealists are 100% right in principle and, as usual, the pragmatists are right in practice.“ I realized that as a company, Liferay is constantly walking a fine line between the two, fighting to find that balance… and I think it’s also the reason Liferay hasn’t failed like so many other open source projects.