Saturday, March 28, 2009

10 Rules For Building A Great Organization

I'm reading "Enough. True Measures of Money, Business, and Life" by John C. Bogle, the founder and former CEO of Vanguard Mutual Fund Company. In the book, Bogle offers 10 Rules for Building a Great Organization:

  1. Make caring the soul of the organization.

  2. Forget about employees. (Vanguard instead uses the term "crew member")

  3. Set high standards and values - and stick to them.

  4. Talk the talk. Repeat the values endlessly.

  5. Walk the walk. Actions speak louder than words.

  6. Don't overmanage.

  7. Recognize individual achievement.

  8. A reminder - loyalty is a two-way street.

  9. Lead and manage for the long term.

  10. Press on, regardless.


A pretty solid set of rules if you ask me.

Thursday, March 26, 2009

Job Trends: Tomcat, Spring, Weblogic, JBoss, EJB

Forrester recently described a trend that they refer to as "lean software" in their paper entitled Lean Software Is Agile, Fit-To-Purpose, And Efficient. They state that "lean software is emerging as the antidote to bloatware" and that "the trend toward lean software has been building for years, but the worldwide recession is accelerating it".

Forrester mentions SpringSource as one of four companies at the forefront of the lean software movement. This is due to our leadership within the Spring, Apache, Groovy and Grails communities, as well as our active encouragement, via SpringSource dm Server, of enterprise OSGi as the basis for next-generation application infrastructure.

Since Spring and Apache Tomcat play an important role in lean application infrastructure strategies, I've researched what the job market looks like for developers with Spring and Tomcat skills as compared to EJB, Weblogic, and JBoss skills.


I used Indeed.com to generate the chart above. Indeed.com searches millions of jobs from thousands of job sites and provides a neat service that lets you see job trends for whatever search criteria you may have.

My criteria was Java Developers that have Tomcat, Spring, Weblogic, JBoss, or EJB skills. Click here to go to Indeed.com to see the latest view of my chart above.

The chart nicely illustrates that Spring skills (green line) are in highest demand, well ahead of the others, and has been on a steep incline for the past year. Weblogic skills (blue line) are next and have remained fairly flat over the years. EJB skills (red line) and Tomcat skills (orange line) are neck and neck behind that, with JBoss skills (black line) tracking behind Tomcat but on a similar path.

NOTE: I've been asked why I did not include Glassfish, Geronimo, or WebSphere CE in the above chart. The reason is simple: they were effectively zero on the graph and therefore statistically irrelevant for my analysis.

UPDATED ON MARCH 30 2009:
Let me reiterate that the point of this post is to show that Spring and Tomcat Java developer skills are as easy to find in today's job market as other popular enterprise Java developer skills. With that said, I've been asked why I did not include WebSphere in the chart above. One could argue that WebSphere as a brand is broader than the other items in the search criteria, but I've modified the criteria to include it; the chart now covers Java Developers that have Tomcat, Spring, Weblogic, JBoss, EJB, or WebSphere skills.

Click here to go to Indeed.com to see the latest view of the chart above.

Conclusions?
More and more companies are looking at lean application infrastructure to help them remain competitive, and the difficult economy is only accelerating this trend. These businesses not only need to feel comfortable with the technologies they embrace, but they also need to make sure they can easily find people experienced with the technologies.

Since I work at SpringSource, I have a keen interest in the health and vibrancy of both Spring and Tomcat. I'm happy to see that Spring and Tomcat are doing so well in the job market for Java developers. This fact will help my customers feel more comfortable choosing SpringSource Enterprise and SpringSource tc Server to power their applications.

Credits: I'd like to thank Indeed.com for providing this valuable job trends service on their website. It provides a great way to understand the past and current directions of whatever type of job you may be interested in.

Thursday, March 19, 2009

JVM as a Service: Mashup Azul and Amazon

This may be a crazy stupid idea, but I was having a conversation today about the kinds of things that make sense to be "as a service". Amazon EC2 and S3 are essentially compute as a service and storage as a service.

Since I'm a Java guy, I wonder:
Does it make sense to have a JVM as a service?

Why? Because while running Java workloads on Amazon may be cool for scale out scenarios, it does nothing to help with scale up scenarios for Java workloads. The classic JVM is a limiting factor in scale up scenarios because the more memory it has to deal with the more garbage collection time becomes a real performance issue.

Azul Systems offers a JVM compute appliance that illustrates the logical model of what I have in mind. Basically the Azul appliance centralizes JVM processing onto a machine designed to provide low response times, pauseless garbage collection, and efficient huge memory management. Basically each server has a JVM proxy that hands off processing to the compute appliance.

So, what if we mashup Azul with Amazon?

That is, what if we take the Azul JVM appliance concept and make it a cloud service? That could enable any EC2 instance running a Java workload to leverage a model where a JVM proxy on a given EC2 instance hands off its processing to a JVM as a Service. That JVM as a Service could then centrally handle dynamic scale up/scale down of JVM resources as well as eliminate the nasty garbage collection performance issues once and for all.

Now all we need is the JVM gurus at Azul or Oracle/BEA JRockit to get to work on it. I want my JVM as a Service guys, and I want it now!!! :-)

If you are a JVM guru, feel free to chime in as to why this idea is stupid and could never possibly work. Or if you have an equally outrageous "as a service" idea, please share.

Wednesday, March 11, 2009

Top 20 Most Commonly Used Open Source Licenses

My recent post "Tim Yeaton Snares Black Duck" gave me the encouragement to check out what Black Duck is up to these days.

While surfing the Black Duck Software website, I came across a very useful page worth bookmarking:
Top 20 Most Commonly Used Licenses in Open Source Projects

Black Duck's site says that they update the data in the table below on a daily basis, so please click over to their website for the latest data:
There is nothing unexpected or overly shocking in the data. For example, I have known that GPL 2.0 is the dominant open source license. I always thought the Apache 2.0 license was a little more prevalent, but the data is not far off from what I expected. GPL 3.0 appears to be doing really well since it is already above the Apache 2.0 and Mozilla Public License.

Anyhow, I figured I'd share the link. I'll certainly visit it periodically to stay abreast of the open source license landscape.

Monday, March 9, 2009

App Server SmackDown Panel 2009

I'm participating in a panel discussion focused on New Application Server Frontiers at SD West on Thursday March 12 2009 from 10:15 am - 11:45 am PT in room 204 at the Santa Clara Convention Center in Santa Clara, Calif.

The Panel is moderated by Chris Haddad, Burton Group vice president and service director, and the panelists include:
  • Shaun Connolly, SpringSource
  • Adam Gross, SalesForce.com
  • Rich Sharples, JBoss Division of Red Hat
  • Larry Cable, Oracle (BEA)
  • Jerry Waldorf, Sun Microsystems
  • Savio Rodrigues, IBM
Chris Haddad from Burton Group describes the session as follows:
"Cloud, server componentization, declarative programming models, and innovative application frameworks are forcing structural IT change and opening new server frontiers. Application servers, development frameworks, and tooling are adapting at either an evolutionary and revolutionary pace. ‘New Server Frontier’ panelists will describe how application stacks will either encourage exploration or strand teams and applications on a legacy island."

I simply describe the session as: App Server SmackDown Panel 2009!

Come see the fun!

For more information on SD West 2009, please visit: www.sdexpo.com.

One other note, SpringSource's Colin Sampaleanu will also be presenting a session titled: "Spring Framework 3.0 - New and Notable," on Friday, March 13, 8:30 am P.T. — 10:00 am P.T. in Room E at SD West. So if you want to hear the latest on Spring, then please go to Colin's session.

Friday, February 27, 2009

Virtualization Big Dog: VMware, Microsoft, Citrix, or Red Hat?

I was catching up on industry news today when I saw the following eWeek post: Red Hat Is Getting Ready to Take on VMware

It has been a while since I've written a "Big Dog" article, but this topic is worthy; so here goes.

Who is the virtualization big dog?

VMware is the incumbent big dog, of course. They have a compelling portfolio of offerings that are proven, feature-rich, and getting better all the time. Moreover, while I was at Princeton Softech, I was an avid and happy user of VMware's products.

Virtualization is big business these days and will only get bigger since it plays a fundamental and foundational role in cloud computing. VMware is faced with competitors interested in chipping away at their market dominance:
Just for fun, I've compared/contrasted the players in the Virtualization market with the players in the Enterprise Middleware market back in 2003/2004:
  • VMware and BEA: Early/dominant market leaders driving innovative technology
  • Microsoft and IBM: Huge players who think/execute over the long term
  • Citrix and Sun: Xen ignited these market dynamics; Java made the middleware market
  • Red Hat and JBoss/Tomcat: The power of bottom-up market groundswell
The middleware market leader was BEA Systems. IBM was the much bigger player applying top-down market pressure and working its usual long-term plan to gain market dominance. Sun was the vendor responsible for the technology that made the market but never became the market leader. And JBoss and Tomcat were generating significant and unyielding bottom-up market groundswell.

How did it play out? BEA became so focused on fighting IBM at the high end that they ignored/denied the bottom-up groundswell: BEA Chief Downplays Open-Source Alternatives. Alfred Chuang never gave credence to the JBoss or Tomcat threat and ultimately BEA got swept up by Oracle.

Bob Pasker (founder of Weblogic) had an interesting post after BEA got acquired by Oracle: JBoss (and possibly Tomcat) should never have happened. "JBoss launched an innovators dilemma attack against BEA, not with a revolutionary product, but with a revolutionary business model, one that BEA couldn’t hope to copy without cannibalizing its existing revenue stream. BEA fell right into the trap."

That Was Then But This Is Now
While there are some interesting similarities between the middleware and virtualization markets, the market dynamics today are clearly different. The open source model has clearly made its mark across many software markets. Neither Microsoft nor VMware are denying the power of open source or the threat that companies such as Red Hat pose to their business.

Add in the fact that VMware has Paul Maritz (ex-Microsoft executive) as their CEO and that changes things as well. While I don't like the article's title, I do agree with much of Chris Mellor's points in: VMware's one-trick pony: Destined to be a platform?. Chris highlights Maritz as an inspirational leader who has a great feel for where the market is heading.

So with all of that said, my answer to the question:

Who is the virtualization big dog?

VMware

Bottom-line: As long as VMware stays focused on creating great solutions to customer problems and honestly assesses the threats posed by the other market players, they should be able to retain their market leadership status for many years to come.

Friday, February 20, 2009

Programming Language Popularity

My 13 year old son has been programming in Lua, TI Basic and Assembler, ActionScript, JavaScript, and he's into C++/Dark GDK these days. While I've mostly focused on Java for the past few years, I've programmed in a wide range of statically typed and dynamically typed languages.

Since my son is just starting his programming journey, I naturally wondered:

What are the most popular programming languages these days?

I used tiobe.com and langpop.com to answer this question. Both sites provide programming language popularity statistics and rankings, and I was happy to see that Java, C, and C++ rank in the top three on both sites.

What I like about both of these sites is that they gather information across a wide range of search engines and websites in order to generate a popularity score. Neither site is focused on declaring the "best" programming language or the language in which the most lines of code have been written. They simply provide information that, as TIOBE states, "can be used to check whether your programming skills are still up to date or to make a strategic decision about what programming language should be adopted when starting to build a new software system."

TIOBE Programming Index for Feb 2009
TIOBE gathers information from Google, MSN, Yahoo!, and YouTube to calculate the ratings, and they have a great web page that defines how the TIOBE index is assembled. Below is a summary of the top 20 programming languages for February 2009. I especially like how they compare against last year's ranking so we can gauge how the language is doing year over year.

Below you will see that Java has been #1 the past two years. C++ and C# are on the rise. Visual Basic, PHP and Perl have declined however. I also find it interesting that while Ruby and Python generate a lot of buzz, neither has risen in rank over the past year.



LangPop Normalized Comparison on Feb 2, 2009
Below is LangPop's Normalized Comparison Chart that combines the data gathered across Yahoo, Craigslist, Amazon, Freshmeat, Google Code, and Delicious for 29 different programming languages. Click on the chart to see it more clearly.

Java is #2 behind C. Visual Basic is much lower in ranking than in TIOBE's ranking. Python, Perl, and Ruby are slightly higher than in TIOBE's results.


Conclusions?
Since I work at SpringSource and focus on enterprise Java (a la Spring) and dynamic languages that run on Java (a la Groovy/Grails), I'm pretty happy to see that Java not only maintains its relevance but continues to dominate as a top programming language.

With that said, the interest in dynamic languages such as PHP, Python, Ruby, and Groovy clearly tells me that developers crave more productivity and less complexity. Another reason I'm happy to be at SpringSource, since simplifying enterprise Java is our area of focus and passion.

Credits: I'd like to thank TIOBE and LangPop for maintaining and sharing the information on their website. They provide a valuable service and I will continue to visit their sites to stay abreast of how the programming language landscape evolves over the coming months and years.