Idealist vs. Pragmatists

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.


DT

Blogs
Hi Dave,
This is actually pretty funny that you bring this up now. I've been debating with myself on the role of principles vs. practice, not just in the technology sector, but in economics, politics, and philosophical dealings as well.

As for the split between core vs. consultant, I actually think it works well, in the same way that the bicameral houses of the US government work.
The idea was that you'd have the House of Representatives, who would represent the "common man"s interests, and the Senate, who would sort of be the more "elite" types with more government experience, etc.

This isn't to categorize either group in Liferay as elite or "common-folk" but more to stress the idea of having two aspects of the company help us keep each other in check.

There are two things I've learned is that a lot of times, consultants (all consultants, not necessarily Liferay ones) will do the quickest thing possible to get something done regardless of scalability or long term maintenance (which is smart, because you want to keep costs down, and get things done as efficiently as possible), and the other thing I've learned is that most types of "standards bodies" or in our case "core developers" can often go off on tangents and create things that have no real usable purpose.

The reason why I think we have limited much if not all of that, is that we have checks and balances between the two groups.
Consultants help us know what the real useful things are, while the core helps make sure it's sustainable and fits well in the product direction.

But yeah, I know you weren't arguing that point, I thought I'd just clarify.

As for my thoughts of "standards, standards, standards!", I am a bit of a standardista. But I also fully acknowledge that there are times when the standards don't cut it, or get in the way of doing any real work.

As for my feeling about Microsoft's decision, I whole heartedly support it, and not because I want to say "Screw the pragmatists!", but because it's the "right" thing to do in principle, and because it's been foretold for years now.
This shouldn't be a surprise, and standards based development has been advocated (and realistically acheivable) since 2002-2003.

So the people whose sites are going to break are people who were warned, told to develop the "right" way, for years now, and chose a different path.
This is the very thing those of us who preached standards warned about.

But the web cannot and should not be held back by the poor decisions of some.

I can totally sympathize with developers whose sites will break. But I can't say they weren't warned.

(Man that sounds heartless, but it's more or less just me being "pragmatic" ;)
After reading my response above, I think I should clarify.
I didn't mean to make it sound like our consultants do crappy work, nor that our core developers make stuff nobody wants, LOL.

More that both groups, if left untended can go off in those extremes. I'm looking particularly at the current web development groups, specifically random developers and the W3C.

Most developers are in the position they're in now of being upset at Microsoft because they did the hacks needed to "just get it up there".
Then you have the W3C which has almost no actual working developers that contribute, and instead is filled with people who have no vested interest in developing or innovating anything of worth, but things that adhere to some arcane and esoteric philosophy.

Luckily, in Liferay, while there is a general distinction between consultants and core, we do have passionate folks that communicate frequently about their needs and the best way to develop these types of things.

Okay, hopefully that clarifies it a bit emoticon
I agree that we are pretty good at maintaining a balance. We do need standards. Anyone who has been developing web applications the last 10 years has felt the shear agony trying to maintain an application that is cross browser compliant, let alone cross platform. Some of our clients will not shift their environment without extensive testing and we have to be prepared to support them, but at the same time we need to be at the forefront of technology, pushing for a better world.

It’s especially difficult as you mentioned being onsite as a consultant and finding yourself in an uncomfortable position of not having the answer for the client but we do a pretty good job of maintaining our professionalism and also providing them with answers as we have them. We have a pretty large group of very intelligent people at Liferay which is a great resource. There are still going to be times when we have to solve a new problem that no one has encountered or attempted to solve but a benefit is that we can then in many cases share that with the core.

And to 2nd what Nate said, we are very passionate about what we do. These conversations are good. They keep us all honest. emoticon
Great post - that's a nice article!

Pretty interesting read about the history of web browsers and web standards and why we're at the place we are today.

Its a good example though of how hard it is to find that delicate balance btwn idealism with pragmatism. I'm glad that the conversations about backward compatibility and integrating exciting new features are happening at Liferay. I think it helps keep that balance and will ultimately help make Liferay the best solution for existing clients and future clients as well.