Get's too crowded at the top..

Sometimes it is better to be small, it is better not to grow especially when growth is not handled well!!
My company in all it's infinite wisdom outsourced all networking, desktop (well, now it's laptop ;) facilities and operations to another BIG company and it has been a nightmare eversince. Well, I had my worst dream recently :|.
I don't think that our company that is primarily into making, distributing software products did well when it made that decision..but well, decisions always look different after they are made :).

Anyways, we had a connectivity problem with a client recently and all hell broke loose..The first thing that was blamed was our application and then the client's and of course applications are always right ;). Well, in this case they were. We smelt rotten eggs in the network and called our BIG provider and all he asked for was whether we made any changes and when we vehemently denied that, he made us recycle our applications and verified that once more and then started the cycle ....

He called the company's situation manager.
That manager than called somebody from the firewall team who started blaming the client's network for this problem and obviously the client did not like this. The client blamed our company's network and soon it was a war of words with no resolution. We had to take control over the situation that was going out of our hands and get very specific logging enabled on the client's and our network and then had the problem resolved very soon! The whole experience made me think whether we complicate things more by trying to make things simpler? The company to whom we outsourced our processes is a very big company and ofcourse it has a lot of processes in place to handle situations adeptly, but well it didn't do us any good! I worked for a startup earlier and these issues never took this long to resolve!

We had NOC, Firewall, Coverage, DCNE, Situation Management teams on our side and the networking, operations on the client's side to resolve a simple networking issue and all this because the "problem had to handled by the right department" :). From my perspective, getting the problem resolved consuming as few resources as possible would have been the best solution! Isn't that why we streamline our processes? But, here this case is a classic example of overdoing it!!!!


AOP and merchandising ...

Aspect-oriented programming is more than just a clever means of adding tracing to in-field code. The language has matured to a point where it can support both development-time and production-time code aspects.

I have been developing software systems using object-oriented programming (OOP) techniques for many years. So when I read that aspect-oriented programming (AOP) addresses many problems that traditional OOP doesn't solve completely or directly, I wanted to better understand its benefits in real world application development. I thought comparing both techniques would provide some practical insight. So I decided to design a case study: an OOP application in which I identified aspects where AOP might be a good fit and was amused with what we could achieve with abstraction :).

We can surely abstract out logging, database management and other similar aspects of our code i.e basically services that are essential but are not core to our product. Infact, this is what the AOP evangelists prefer .. but a thought occurred to me which might have some merit .. Why not package and sell our code based on aspects? I thought about an application from our team and it kind of made sense too.. We have an application that authorizes, stores and gets merchant transactions settled. How about considering authorization, storing and retrieval and settlement as 3 aspects and package our offerings accordingly? Can we not do that..I am sure we would be able to...Decoration can also be one more aspect that can be sold as per requirements. We can sell flash heavy, very creative websites to customers who are willing to pay more and sell cheaper versions to customers who want plain vanilla websites by isolating decoration as an aspect....I am sure we would be able to do it and can think about numerous other applications where a similar thought process can be applied..

But well, it is not important to be able to do it in a particular way...It is important to do it the "right" way!! And I really need to think harder to see if this would be the best way to do it..but surely AOP has more merits to it than that are obvious..Only time and our warm open source community will decide how far we go with it!!


Java, J2EE and next ?

I have had this vague feeling for quite some time. Product innovation, exploration on the Java side has come to a plateau. Don't see many "new" changes coming by and surely not as much activity as there used to be a few years back!
Well, i know Ruby came in and then we put it on Rails, but even that IMHO is not a pathbreakingly different. I know Ruby is not Java but of the many things that changed in this software world, Ruby needs a worthy mention!

Recent focus surely has been to make things more simple, more usable and to build a larger and loyal user community. I cannot think of any other language that is as feature rich and as versatile as Java. User community and open source contributions for this know no bounds! I have a subscription to sourgeforge.net and get daily emails from it and the number of product notifications I see daily is really amazing. There is probably a product built every single day! May be even more !!

Well, now I am deviating surely...started out talking about how they was nothing new and am now towing the other line...Well, not exactly :)..
Java was a such a big thing when it happened (it still is!, but now it is an accepted reality) that anything and everything else pales in comparison! It changed so many things! Open source software is surely on the rise..Java runs anywhere and that is a big thing for a developer or a software product manufacturer..An open source developing will surely find it heartening that his creation would be "universally" used and his potential would be recognised by a bigger community..Wealth probably is not the biggest/only factor an open source developer would develop things for..Fame and Peer recognition and the satisfaction that his/her creation would be used many will surely rate higher or alongside wealth! And Java made all this easy....Opensource communities are surely very big drivers for innovation..Technology companies invest quite a bit in R&D, but that is not just sufficient. Opensource user bases are big and well glued and the motivation to build something different is not exactly driven by money and that is a big factor! When your objectives are not tied to each other, you do better..maybe because your focus is in the right direction and that is exactly what happens here..I can never forget something the CEO of Pramati (I used to work for this J2EE startup) said ... "Follow Saraswati with utmost dedication and Lakshmi will follow you". Sarawati is our Hindu Goddess for Knowledge and Lakshmi is our Goddess for Wealth. How very right he was !!!!! Pramati is surely doing very well now and can be counted as a very successful startup from India!
Coming to what next :)..I don't want to think about it :)..Even if I mention something now, it will surely be outdated by the time you read this....Such is this world !!!

Well, not exactly a good time for coffee now, but after talking about Java for so long, my mind needs a Java retreat. I will add something to my cup and make it better...tired of the same old stuff ;)