Monday, December 06, 2010

Richness Vs Simplicity in Products

Richness is a great feature for your product. If your product is rich in capabilities, then it will have all the options 90% of users will ever need. However you may end up building a product (say user interface) that is hard to use, because of the plethora of options you have added.

Simple products have lesser features. It will be just good enough for many, to derive a business case out of it. It can sell better on its own, without much training. This is great if your goal is to just enjoy the journey of building products.

While building products you can decide whether you want to tilt towards richness or simplicity of the product.

If your goal is to sell software with no fuss, no sales people, then, "Less is more" may be a good strategy.

Companies may choose to keep products simple so that they can reduce support and training cost and enjoy the fruits of higher productivity in their organizations.

Monday, November 29, 2010

Scala an alternative to Java for programming


Scala as an alternative programming language looks credible.


Being a Java programmer, my summary is going to be more from that perspective. Java developers could look at it as a replacement for "javac" or in simpler words, a new ".java File parser" for Java which supports a new Programming style. Of-course there are scala (Java) classes /APIs to support that. It finally generates Java code and byte code ! That's similar to what JRuby or groovy does. It runs on the JVM.

Hence it could look like a language created to solve the top X problems perceived in Java from a programmer productivity point of view, rather than a language built from the ground up from a performance / stability standpoint. That is fine as long as it is done well, overall. As a matter of fact, it could make sense, as the Java strength is the maturity of the JVM.

Another way to look at Scala is something that Java itself did not do till date. Making more intelligent use of the compile time knowledge. It would be great if Oracle could bring this to the table. Another main capability is Scala bringing in more previously framework features right in to the programming language.

Some cool stuff : Lots of stuff that could be done in Java itself in compile time has been done.

- Primitives treat very very large objects the same way as smaller types. [Java fuss] Why have BIGINTEGER class for it ? Make it as simple as handling int values.
- maps contain a - calling a method in operator notation : In Scala everything is a function. Including operators. At-least that's what they want us to believe.
- Lots of smart compiler time gimmicks like the "Conversion Method" eg. he talks about that avoids an extra public static method call to create a Wrapper Object just for compilation sakes. This can reduce calls to Integer.parseInt.... It works by picking up just one resolving identifier from scope. if more present, it gives error.
- Using three "=" sign is a new syntax introduced for assertions. Eg. assert (result === 17)
- Usage of triple quotes to insert CSS etc are good syntactical makeup.
- Everything is a method. so =, +, == etc are also treated as methods.
- Duck typing : is the ability to call methods of another class, with the same method structure of a class, even though they have no common super object. Same method structure eg. getLength method in MyOwnClass.java and Array.java can be called by a parent method easily.
- Scala's additional features will reduce the need for tools outside of the language (eg. Spring Framework) and this will help programs become more maintainable.
- You can use all the Java APIs inside Scala as its finally generating Java Code. Hence you still have the capability to use all Java APIs out there, inside Scala. No re-inventing the wheel.

Anecdote :
Of course there are arguments that, many of the design patterns spread by the gang of four were actually programming language constructs and not patterns.

Some of the things that make me feel a bit edgy are :

a) It still uses the JVM. Hence we still run the same risk from a licensing perspective (from Oracle).
b) Not sure if it is mature enough for projects that run for over five years with medium sized teams. I stress on this as I have seen that Java as a programming language is very useful in this case as it reduces the effort to make changes or introduce changes. This is something I feel a company like us should really worry about long term. Writing "Hello World" programs are not enough. For eg. imagine the flexibility of "threadlocal" as a simple concept that allows SAS magic on any mickey based products etc.. Programming platforms should support that level of "insight" built in.

c) Debugging will look odd : The runti me is as stable as the JVM, as its finally byte code. The fact that your code will be called by a wrapping Java class will make it feel odd. For peculiar errors, you may actually go to the Scala generated Java files. Look at it like, sometimes we go to the generated .java Servlet file when trying to debug a peculiar problem in the JSP.

d) Being a Wrapper around normal Java code means that it is not superior than Java performance, but could still strive to be better than other programming languages like Ruby or python from a performance standpoint.

Anecdote :
Nearly all languages first bootstrap the new language in some existing language, and then rewrite the compiler in the new language they create. So Scala is written in Scala and Javac in Java.

References : Video on Scala named "The Feel Of Scala" by Bill Venners. Bill Venners is a very credible Java guy (Artima fame), great presentation style.

Tuesday, November 02, 2010

Product Objective

We must categorize a product objective clearly. There is a diff between an Add On for a product, Add On Product and a Standalone Product.

Add Ons help complement your overall Product portfolio. "Add On Products" help complement the overall "Corporate Product Strategy". That is, they complement the s
tandalone products.

Standalone Products need to have the depth that helps it sell on its own. These Standalone products are more strategic. These main stay products could be the platform on which the other categories of products revolve.

For Add On Products, Less is More works just fine. Some products are meant to be Add On  products. Identify and mark them early.

Add On Products help sell more of the Standalone Product. They are sometimes more of a checklist item, and does not need too much depth in capabilities. These checkbox services could also be capabilities that help market the core offerings and reduce the actual cost of brand building and market acquisition.

Tuesday, October 12, 2010

Innovation

Innovation does not mean implementing what the world has never seen. Innovation includes making changes in the way you do work today. Implementing what others may have already done, but integrating it, in your work life, for the better.

Atleast trying to.

Thursday, September 23, 2010

Good quote by Oracle President, Safra Catz

The below is a quote made by Oracle President, Safra Catz, when Mark Hurd joined Oracle, after quitting, HP.

"..As Oracle continues to grow we need people experienced in operating a $100 billion business..."


People win a lottery not because they deserve it. They win it because they just happened to have bought the winning ticket or have bought enough of it to increase probability to win. Unless its a lottery win kind of success they are hoping for, companies targeting high growth, need to have maturing thought process and people, to outgrow their current size.

Monday, September 13, 2010

Less is more. What does it mean ?

Here is my take on what "Less is More" means.

Some 3-5 years back I did a study on how the web analytics market was shaping up and whether there was space for newer vendors targeting the SMB space. I had concluded that it was a market which was very hard for a new ISV to compete in. This was mainly due to the presence of Google Analytics. At that time itself, they were giving it away for free, to websites up to 5 million pageviews per month !
Google Analytics has tons of capabilities. Similarly there were others (like Microsoft etc) that were threatening to do the same as Google.

Now in 2010, looking back at new vendors like CrazyEgg in this space, it looks like there could have been space. I think CrazyEgg has done what I feel is actually "Less is more".

The service gives you just enough actionable data. Very light and simple to use.

Does that mean, less is more or "Less is Enough" for some ?

Friday, July 09, 2010

Kitten. Cat. Turning in to a tiger?

John has a tea shop on Gold Street. He sells only tea. His most popular drink is the Chinese Green tea. Selling Chinese tea helped him grow from $1,000 profit to over $8,000 a month. It also helped him introduce comfortable sofas and antique furniture, just to sip tea. His business is flourishing.

Just down the road, there is an ex-serviceman,
Bill, selling coffee, tea and all sorts of things. However Bill does have something that sells really well. Australian cookies. As a matter of fact, selling cookies gets him a lot more profit than anything else. Bill also sells green tea and strangely almost 30% of people buying green tea buys these cookies!

The talk of the town is that both John and Bill make nourishing green tea.

Now John could learn to make cookies and possibly eat in to Bill's business. How can Bill the ex-serviceman survive on the long run?

Well Bill can make it hard for John, by dropping prices for Green Tea and attract more people to his shop. This would put pressure on John to reduce prices. This would make it harder for him to bootstrap his business and possibly diversifying in to Bill's business. On the short run it may reduce revenues for Bill, but not necessarily as Bill may be selling more cookies now.

Can John try the same strategy ? Yes, if can take the risk to hire a good Australian baker. Well Bill better take care before that happens.

Wednesday, January 13, 2010

Who will Oracle acquire next ?

If you see the acquisitions by Oracle in the last 5 years, they have done upto $10 billion dollar acquisitions every year. Last year was Sun Micro Systems at around $7.4 billion. What will Oracle acquire this year ? Here is my take.

Oracle will acquire VMWare ($1.8 billion revenue) or Citrix ($1.5 billion revenue). The chances are high that it will be VMWare.

Maybe I am trivializing acquisitions.

But I would also not be surprised if VMWare acquires PostgreSQL in the next 1 to 2 years, and Oracle acquiring VMWare after that for around $10 billion. I got that thought as Sun did the same favor for Oracle by acquiring MySQL.

Now, why VMWare ? Two reasons.

Oracle is trying to accelerate its capabilities in the IT Operations space
. VMWare is a very interesting company by suddenly being the champion facilitating data center consolidation. VMWare has also shown that they are interested in open source - Spring framework > Hyperic etc.

Hence VMWare incidentally acquiring PostgreSQL does not seem to be a bad idea. This way Postgres also comes to Oracle "accidentally". Remember they have acquired Siebel and PeopleSoft and J D Edwards (indirectly) too and PostgreSQL should be next. It now becomes more compelling and "convenient" for Oracle to acquire VMWare (and PostgreSQL).

For VMWare too this could make sense. It will help VMWare fight Microsoft and Citrix in the virtualization space better when its along with Oracle.

One more company that can challenge Windows Server Dominance ?
What if you can run specific applications directly on the Virtual machine ? What if the Sun's GuestVM becomes a reality ? Now that, it is with Oracle. Or if the Oracle BEA's LiquidVM for WebLogic goes real aggressive and makes it available for any Java Application ? (old news) This could allow the Java VM to run directly on the VMware hypervisor, without the need for an OS like Windows or Linux !

Now can this kind of direct deployment of Application Platforms hurt the Windows Server market itself ?

Well interesting game changing options ahead.


Update on Dec 10, 2010 : I think there are a few more signs that Oracle will try to acquire VMWare. Salesforce acquires Heroku. Just a few month back SalesForce and VMWare were cosing on VMForce. Now, here is another big acquisition in the PAAS space by SalesForce. Of course Oracle and Salesforce may not go well with each other.

Monday, January 04, 2010

Open Source Projects can complement your marketing

That's a complement to the market reach & power of popular Open Source projects. Confluence a SaaS enterprise wiki from Atlassian has reached 70% of enterprises ! IBATIS (open source Java/ .NET persistence framework), AppFuse etc and surely 100s of others use Confluence for their open source community documents(via their WIKI). The traffic that gets generated is probably one of the best brand building exercises for Confluence. 37signals built a cult like following for basecamp. Interestingly, however, no prizes for guessing who is behind the Ruby on Rails. Open source community can help your marketing efforts by getting the traffic to the SaaS service you provide. Its a win win if you give it fully free for these projects.

Thursday, December 17, 2009

Taste your own dog food Vs Eat your own dog food

ISVs need to build products that customers are willing to pay for. In the process, if you can use it, there is nothing like it. However, if you are a large ISV, and if your dog food is half baked, pushing it to your whole organization will be counterproductive. Select teams capable of giving useful feedback and then standardize on it.
In short, first taste your own dog food before rushing to eat it.