New Perspective

I was at QCon in San Francisco (qconsf.com) lats month a couple months ago. Coming from a Microsoft infused environment and lately being involved in Java world, it was a great experience. Seeing the open-source view of the software world was a real eye opener. I am not really at a point where I can say one view is better than the other, but there are quite a bit of differences in how software is designed and developed.

While I was there I had a couple of observations.

1. Java as a platform

I was part of a few discussions where there was growing distrust in Oracle in terms of keeping Java up to date and supplying the fresh features to the Java software community. There is a clear trend of creating specialized languages to solve certain problems on the Java stack. JRuby and Scala are two that are the two that come to mind right away but I think there will be quite a number of them in the coming years.

This may go many different ways but realistically I think this trend will follow and reach almost a biforcation at the JVM itself. I would not be surprised to see specialized implementations of the JVM in the coming years. Which begs the question, can the fragmentation of the JVM resemble the Linux distributions?

Frankly, I hope this does not become true as it would create yet another management nightmare for IT folks all around the world.

PS: Seeing that Oracle has been checking in some code that deals with commercial JVMs only strengthens the argument above.

2. Polyglot Programmers are increasing in number

The number of tools at the disposal of software architects are increasing in number. From NoSQL solutions to programming languages, there are a plethora of choices out there. This is especially true in the non Microsoft world (where most tooling and platforms are provided by Microsoft with some open-source library/framework that has been recently picking up).

This movement creates specialization opportunities for programmers. You can now be a Clojure guru or a memcached expert and create the best looking cocktail of technologies for the project at hand. The long term impact of this movement may have an impact on the average team size that is needed to support an operation. Although not a big concern for start ups, I think enterprises will be vary of this as it will require a larger number of people on staff to support these non-uniform solutions.

3. Agility is propagating

A couple of years ago, agile development was the buzz word. Although certain organizations and people confused it for doing a haphazard sloppy job, certain companies got it right. Now the trend is to move agility from just software creation to product creation, and in some cases organization management. More and more product companies are implementing agile in all aspects of their operations not just producing code. This is going to re-shape employee expectations in the coming years.

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s