Please note: This blog is no longer updated and has moved to a new location: Scott Mark.

Tuesday, November 08, 2005

Open Source within the Enterprise

We recently brought Burton Group analyst Richard Monson-Haefel in-house for a discussion on what Burton is calling the "Rebel Frameworks". For us, this was a discussion on best practices and principles for evaluating more lightweight open source tools and frameworks so that we can be more architecturally Agile.

Richard has some interesting perspectives on this issue... he founded the MockEJB project, and authored 2 best-selling O'Reilly books on EJB and Java Web Services - you would think he is a big standards wonk, but guess again. Like many pundits who spent years under the mind cloak that EJB was a Good Thing, he is now extolling the virues of Ruby (along with people like David Geary, who wrote previously sang praises of JSF and JSP). It should give all enterprise architects pause when some seriously bright people are willing to walk away from what they have been saying for years, and admit they were wrong. Are standards so great when tons of doorstop-quality books are required to explain them, and their apologists even stop apologizing?

Being a fan of simplicity, I propose a very simple litmus test that can help with extremely quick assessment of API and frameworks. This simple test involves asking yourself honestly, if this approach seems ridiculously complex or whether it genuinely helps you get there faster. Think about your first Tomcat download and startup - definitely simple and quick. Now try it with JSF - ridiculously complex. Think about where portal technology was a couple years ago when it just hit the hype list - ridiculously complex (arguably only slightly better today, but getting there - smart enterprises are second-guessing vendors who sell it as a chainsaw that can cut butter, but that's another post). How about insert the name of the last large commercial offering your company procured here: ____ is ridiculously complex. Did that sound natural? Did that purchase really jettison your team down the delivery path? Or did you spend time negotiating it into your physical architecture, and trying to get high-paid professional services teams back in town to help you decipher log messages?

Large enterprises are usually skittish about open source - there is a PowerPoint-style comfort level to have a contract filed away somewhere. Some folks with 3 letters after their names think it's nice to be able to assign responsibility to people on the other end of the phone, even if they are in India and you need to work through 3 levels to get to the person who now maintains the code (the one who wrote it was outsourced). But what about maintaining control and ownership? What about the fact that many open source projects have as good or better customer service models than commercial vendors? I think every enterprise, especially large enterprises, have an obligation to explore and support these offerings. It might not get you a free lunch, but then again might make sure you have time for lunch...