Saturday, June 15, 2013

Why Wine is not more popular then Beer- iOS 7 UI first impressions

iOS 7 was just announced by Apple to the developer community at their WWDC last week. It sported a huge change to the skeuomorphic design  that all previous versions of iOS had. For the uninitiated, skeupmorphism means that the UI looks like real-world objects even if it does not have the same functional meaning. It's the reason iPhone's notes application is designed like a yellow legal pad or the game center is like a casino.  iOS 7 basically has got rid of this!! Modern Ux Designers believe that skeuomorphism restricts usability by making people think of objects in ways they are not. They also believe that a lot of younger folks won't enjoy the parallel to real-world objects like Analog Clocks or Legal Pads!! 

iOS 7 replaces skeuomorphism with a layered , simpler , cleaner(in their minds) look that gets out of the way and makes usability better. They have also added a number of improvements, to the apps like calendar, game center etc. and also have a new simpler color palette. 

My Verdict:- Brilliant Ux, Great Improvements but you have just killed the iOS Experience?

If this sounds a bit dichotomous, let me explain my reasons for the same:-

Great Ux Design:-  Some of the apps designed in a skeuomorphic faishon were just awful. This includes Notes, iCal(On Mac) and Game Center. By changing the way they look and work Apple just did everyone a favor.

After playing with iOS 7 for a while, I do admit that a flatter look is less intrusive functionally and using text instead of buttons sometimes makes me feel that it's better for usability overall.

Overall, the entire UX community is united in saying that this is the best design yet.

This is where we miss Steve Jobs:-

This is where I think Apple lacks the genius of Steve Jobs. Johnny Ive, is singularly talented and has done as good a job of iOS 7 as Picasso did in his best paintings.

The Problem:- Picasso's painting is not a mass-market item.

The USP of the iPhone has been it's Glitz, it's instant appeal and the fact that: It looked different and a cut above the rest.

The new iOS-7 makes iPhone looks just like an Android Phone or even worse a Windows 8 Phone(After all Windows 8 pioneered the flat look).

Remember, it only looks like an Android/Windows Phone, functionally it has got even more power and  great new API's and capabilities. Some of the apps too have become much more intuitive.

However, people only buy iPhones based on the glitz they see in the first 10-15 seconds of using them. So, never mind the usability, people will just stop buying this since they don't get the "feel".

In 2010 when iPads first launched, whenever people came to me and asked tablet I should buy, I said- iPad. They countered with Android's features like USB, Openness etc. etc. I simply gave them an iPad and asked them to spend a night playing with it. I demoed basic options and apps. One demo of iBooks and the Page Flip effect or the lovely glossy icons and their jaws would drop. Invariably 90% bought an iPad. But they hardly used it for more than a week.

The constant feedback was that people were buying apps, they were buying iPads, but they were not using it for extended periods of times. 90% of apps don't get used more than once after install with 40% not even opening after install. Clearly, Apple's teams were working to solve this problem.

But in doing this, they have removed the very incentive for people to buy these devices-1.) To show off how great and unique they are.

People are now going to look at an iDevice and say, hmm...I saw a similar look and feel for the windows phone and it works so much better as it has better device memory, open CPU's etc. Maybe, I will just use windows or Android or Blackberry.....

Hence, the main mistake Johnny Ive and Tim Cook have done is this. They have assumed any great design will be liked by the masses. If this was true, Wine would be more popular than Beer. This is what  Steve Jobs got. There is a difference between buying and using. People, buy on glitz and glamor. not on simple usability.

The blogosphere has in-general given positive reviews to iOS. However, a quick sentiment analysis has shown that 25%  of the material of the new UI is negative. Given, that most people who do these blogs are technology folks, these results are academic.

The true test will come when people start upgrading to iOS 7 whenever Apple releases it. Apple, watch out I think you have just had your Vista Moment!!!

Thursday, May 2, 2013

Politics, Lies and HTML-5- Part I

"Three Rings for the Elven-kings under the sky,
Seven for the Dwarf-lords in their halls of stone,
Nine for Mortal Men doomed to die,
One for the Dark Lord on his dark throne
In the Land of Mordor where the Shadows lie.
One Ring to rule them all, One Ring to find them,
One Ring to bring them all and in the darkness bind them"
- Lord of the Rings

This poem typically describes the "promise" of HTML-5. HTML-5 has been touted as the "Holy Grail" of development. A language that finally delivers what Java Applets could not, a way to write applications once and make them work on all platforms Web/Mobile any OS anywhere. Managers(especially high-level CTO's) are typically taken in by this and dictate that instead of writing everything multiple times we shall write it once in HTML-5 and use it across. 

However, the recent "Facebook" volte face on HTML-5 and my own experiences as an HTML-5/CSS programmer has shown that managers must choose extremely carefully if they want to tread the path of HTML-5. If you go on the internet, there are people opinionated on both sides. There are ardent HTML-5 Fans and ardent HTML-5 haters. 

In a series of post's I will like to talk about HTML-5, broadly as follows:

Part-1 :The politics and history behind HTML
Part-2: The contemporary state and when to and when not to use HTML-5
Part-3: Evaluation of the best JavaScript frameworks for mobile development

History Lesson: The Making of HTML-5
So what is HTML-5 ? Where did it come from ? And what happened (or might have happened) behind the scenes to suddenly make it such a marketable term.

Let's look at the computing scenario a few years ago(say 2005):
1.) Dominant Consumer Operating System(Mainly PC's and Laptops): Windows (>90%)
2.) Dominant Browser: Internet Explorer(>90%)
3.) Dominant Server Platforms: Fragmented

Whenever a platform is fragmented, there is always a push to try and make "Cross-Platform" code. Most of the code written in the world is not rocket-science and so it is a pain for small startups and shops to write code for every platform. It is this "fragmentation" that was exploited by SUN/Java to make J2EE a dominant enterprise software platform. However, as most people from the early 2000's know, J2EE is and was very slow. Writing, anything cross-platform reduces  performance.

Something happened around this time, we call this the Web 2.0 phenomenon. Computing started moving towards the web and away from the PC. The logical culmination of this is the cloud. Thus PC's began to transform into nothing but portals for the web.

This was fueled by two things:-

1.) Better User-Interfaces using ActiveX, Flash, SilverLight...
2.) Better(But not as great as Point 1) User-Interfaces using Web 2.0 technologies.

The best UI's were written in Flash(or ActiveX for enterprisy programs like Test Director). Web 2.0(AJAX) improved the Ux, but nothing could match Flash. 

Why was the famed- "Web 2.0" not able to replace Flash:- Because they could not hook into native os code, like the way flash did in a manner consistent on all platforms.

Flash became the JVM that never was. You program to flash and flash would ensure it would work cross-platform. It was a great deal.

If you have to program in "Web 2.0" you needed to take care of a multitude of things:-
1.) Will it work in IE 6,7,..
2.) Will it work in Firefox
3.) It might be right code, but oops..IE has a bug in rendering it that way
4.) Did you know there are 2 different Ajax objects....

Add to that the following:-

5.) JavaScript rendering was slow
6.) No way to do Video, Audio, Animations, etc...
7.) Very little tooling support(Firebug was not invented yet)
8.) No standardized way to integrate.

In other words writing a serious Web 2.0 app was a major challenge. On the other hand Flash had a drag-and-drop IDE with full tooling support. 
Flash promised the one thing Web 2.0 couldn't- Predictability.

The Empire Strikes Back- The politics and rise of HTML-5

So when did we move Web 2.0 to HTML-5 and what problems does it solve. Well HTML-5 attempts to solve some of the problems above, but does not manage to solve any of them completely.

Let us consider the thinking behing HTML-5 and why it was being developed by the major software platform vendors:-

1.) Microsoft had no interest in developing HTML-5. They were pushing for Silverlight and proprietary extensions. A lof of what you can do in HTML-5 could be done using Active-X.

2.) Google(Pre Android Acquisition) had the most stake in developing HTML-5. Google, wanted the "Web" to be the OS and wanted to control it via "Chrome"(Browser) and later "Chrome OS". Hence. it needed a new platform- HTML-5.

3.) Firefox(Mozilla) wanted to beat IE, and hence bet on HTML-5.

and then it happened: then came the iPhone and the mobile 'revolution'

The entry of Apple

So Apple in 2007 unveiled the iPhone and iOS. The device took the mobile world, by storm and it became the dominant computing platform for mobile phones. This was followed by the iPad another revolutionary device.

But it was more than that, it was an "Eco-system". Apple earned on app-store submissions and via native apps.

So what did Apple want:"They wanted developers to develop native apps and stick to their platform".

This sparked the whole question:- "Mobile Apps or Mobile Web". 

A enemy of an enemy is a friend 

The question that Apple asked is:- "Who is the biggest competitor to my user-experience?". The answer was not HTML or Web 2.0 , it was Flash.  Had Apple, allowed Flash to run on iOS people would have programmed even more in Flash as now they could do complete cross-platform using it.

So what did Apple do:- "They promoted HTML-5 by attacking flash". All the comments about Flash being unusable and a battery hog, were only partially true. Apple wanted to kill Flash/Silverlight etc and replace it with a puppet ruler: HTML-5, which they know isn't strong enough to challenge native authority.

And to ensure that it cannot: "Apps developed using HTML-5 do not have access to the Nitro JavaScript engine in mobile safari thus being even slower than a mobile web".

This was simple old-school colonialism:- Replace the current king who can resist, with a weaker puppet and further diminish his powers all the time .

Apple single handedly made  HTML-5 that any user-experience other than native could not dominate.

Meanwhile...back in Google Land
Google suddenly found that their dreams of the web being the true platform were being overtaken by the mobile revolution. What do they do? They acquire Android.

Now, one must remember this: Android and Google were different companies and this still reflects.

Android was the answer the to the iPhone and became more mass-market. But Android, had the same aim as iPhone:- "Make native apps cool".

Google still had the aim to make the web-cool, so they continued investing in Chrome, however Android did not catch-up.

Android's default browser did not catch-up with Chrome and hence it continues to have a horribly bad performance vis-a-vis chrome.  The team put HTML-5 as a "lower priority".

How to make HTML-5 Cool?

So how did Apple and Google make a sub-standard or not ready platform - "Cool" for everyone to use.

Let us first understand what makes a platform cool. It can be bought down to just one word-  "Animations".

Try this out, open an iPhone and Android and play with it, then open the mobile website and play with it. Everything in iPhone and Android animates  smoothly.  Whether it is going from the homescreen to the apps or vice-versa.

To make HTML-5 Cool, it was critical that we had "animation" built into the browser.

Enter the Vikings- WebKit

So what really made HTML-5 cooler than Web 2.0. The answer surprisingly  lies in a software developed by a company which is widely considered dead in innovation:- Nokia.

Nokia, developed the "Webkit" engine which is the "rendering" engine that  powers a host of browsers. It all started with an effort to make a desktop UI for Linux(KDE) and then a "cross-platform" framework for native development(QT). The Webkit project was collaborated on by devs from Apple, Google and Nokia to define a system to make great UI's, great transitions etc.

Later it formed from KDE to develop into a rendering engine, and this was the rendering engine that powers Chrome and Safari.

So how to make it cool:- "Add webkit specific properties to do things like animations etc."
Webkit, allowed rounded corners, animations , video and a host of other features that meant you could make a UI that would look just liked the native animated cousins.

On top of that Apple added a bunch of tags to make it look like you can make great apps by wrapping webkit inside an app and could make great web-sites etc. by adding hardware acceleration etc.

However, there was a catch. "Android" did not implement all the features fast-enough and Apple made sure the WebKit experience was great in "mobile safari" but always lower than native apps. For example till iOS 6, you could not do file uploads in mobile safari and with iOS 6 you can only do this for Photos and the Gallery.

What about the other kings...

1.) Mozilla reacted to the growing increase in Chrome usage and in mobile safari by adding some of the same effects(using -moz tags). Later, everyone agreed to make them a standard in HTML-5.

2.) Microsoft, was loosing out big time. Neither was their browser king anymore nor their mobile platform and the OS was well only being used because it was legacy. It needed, do something fast. It did the stupidest thing imaginable. It removed support for Silverlight and joined the HTML-5 bandwagon with IE 10.

3.) Blackberry(Previously RIM) and other mobile vendors like HP realized that they needed to get WebKit on their side. So, they re-wrote their browsers by even buying companies, so they could get WebKit and hence "HTML Developers" to write code for them.

and hence was bor HTML-5, the true cross-platform language.

What's the current state

So, is HTML-5 really a puppet king, really sub-standard. Well, as the Americans learnt about the Taliban and Dr. Frankenstein about his monster, be careful who you make a puppet king, he may just come back and the next post we will see where HTML-5 is and what can be done with it....

Sunday, November 25, 2012

Scrum and outsourcing

I was recently in a project that was based on the "Scrum Methodology" of working. I like Scrum and general Agile principles. I think when applied within a co-located team working to create a product it's a really good thing. However, I primarily work for an Indian IT Services Firm a.k.a- "Outsourcing". Things get very complicated in using such a methodology when it comes to outsourcing or working with teams which are in different companies.

A small history of software development models

In the early part of the new century CMMI was the "in-thing". The CMMI model primarily employed by offshoring companies was a way to assure customers who were wary of outsourcing their work that Indian companies who would be polar opposites culturally and time zone wise, could carry out the tasks given. It is a highly formal model very well-suited for Indian IT of that time which tended to hire low-wage and low-talent workers, put a process around them and get work done. This worked exceedingly well for repetitive boring work and with companies that had tons of money to spend, especially since Indian Outsourcing was cheap. It gave the statisticians and the QA guys great insight and software was reduced to a commodity. However, the key thing is that this only works in low value software tasks where everything is highly structured and certain. 

The problems with the waterfall approach and CMMI are apparent to any company trying to build a new product or idea, it is just too structured and life can't follow that. Silicon Valley, and contemporary software went to the other end XP , Agile, Scrum and Kanban became buzz words for software development. I find these models much more suitable for working in situations where things are not so certain and structured like building a new product.

The outsourcing problem

Another change that has happened in the past 4-5 years is that offshoring and outsourcing to India has gone from just grunt work to a lot of high value work. People, are not just looking for vendors but partners. It was obvious that Indian companies would cash in on such buzzwords like XP, Agile, Scrum etc. to further show that they too can follow innovative processes and work in an unstructured manner. 

Meanwhile, a lot of work went from Time and Materials to Fixed Bid. Outsourcing companies get typically  higher margins on Fixed Bid work and customers get to control their costs. 

The problem in my opinion with Agile Processes is two-folds:-

1.) There is no mention of the "Bid" or Proposal Stage. In this stage typically a vendor is supposed to bid for a project at a fixed price. Vendors, have to "estimate" the requirement and give a quote for the same.  This very process is the root of all problems. To "Estimate" a requirement there needs to be clarity of the requirement, but the whole reason for the XP/Agile methodologies is because the requirements are complex and not clear.

2.) Consider the Product Manager role and the Product Backlog. If this is done by a client, he will ensure that even if it does not make sense the vendor delivers all the features mentioned in the proposal.

I have seen this play-out in funny ways. A project I was working with, we had defined a feature 'X' in the system during the requirements stage. However, 3-4 months into development, the team which consisted of the vendor product manager and us both concluded that feature 'X' did not make much sense. However, the 'Management' still forced us to do something to do feature 'X' even though it made absolutely no sense. 

On the flip side the Product Manager's role can be given to the vendor. However, this is counter-productive as well. This first of all would need the Product Manager to sit in the client side and do all the business meetings required by "Stakeholders". This is generally hard to do especially in a vendor-client relationship. 

Also a vendor PM in a fixed bid project has a different agenda- "deliver fast" than the business. Once again, he faces the problem that he cannot re-define scope on his own.

Thus both methods suffer in a fixed bid agile process based project. In a time and materials model this would work but then that is no different for a company to hire contractors.

The point I am trying to make is that a lot of the so called "Software Development" models do not take into account commercial considerations when multiple companies work together to make software. Their assumption of co-located teams working in synchronization and harmony breaks down in many such scenarios.

What  I think is needed is that newer models that take into account - "Commercials" and "Organizational Boundaries" need to be developed to increase the success rates of IT Projects around the world.

Tuesday, November 20, 2012

The horrible lack of customer centricity in enterprise software

I have been working with enterprise software for a while now. At first, I liked this world, it seemed to be doing good things. However, recently I have come to appreciate how really bad some of the customer facing software actually is.  Most enterprises, don't really care about their customers. They have  a "Business Process" that they want to automate and guide without fully understanding if this is the way their customers think. This is especially true in financial services. 

I read a blog by Joel  on mental models. He talked about how if a software or hardware matches the mental model a user has it will be a hit. This fact is so totally ignored in enterprise software and I am surprised many companies get away with it. The surprising bit is, some companies actually want this to confuse their users more. 

As technologists, we need to take spread the revolution to make simple and easy to use software that customers can instantly relate to. I am sure the first company to do that will achieve the same kind of dizzy success Apple has had in the telecom/devices arena.

Friday, September 23, 2011

Why Microsoft is abandoning the PC and Android Tablets are so expensive

There has been tremendous hype about Tablet and Mobile Computing. However, I often get doubters, in fact myself doubted whether this was just a "Fad" which would dissipate in a few years or was there something concrete. The utility of tablets vs. PCs have been debated endlessly and this blog is not about the technical merits of one or the other.

A few recent trends in the PC world has convinced me that PC computing as we know it is going to be "abandoned" by major manufactures. PCs might not die easily(Hell, even mainframes are not dead, with a major competitor of my client still selling new AS/400 based systems), but it will easily loose prominence and support and cede the way for the tablet and this has nothing to do with technology.

To understand this phenomenon we have to understand the eco-system that supports the PC world. In the PC world "Wintel"(Windows+Intel) was king. People, wanted a Windows PC running the latest Intel X86 Processor(486, Pentium, i3,i7...the list is endless). Everything, else was just pricing. Windows and Intel were making most of the money and here is the key point:
Hardware Manufacturers had profit margins in single figures or lower double figures.

Indeed, it was this lack of profit margins that made IBM , the inventor of PCs to sell of it's PC business to Lenovo!!. IBM(wisely) decided to concentrate on the much higher margin software business. HPs recent declaration to do the same citing profit margins further corroborates this. HP(since it consumed Compaq) is the largest seller of PCs in the world and wants to sell this off. The problem for hardware manufacturers is that margins are razor thin at 6%-11% for American companies. The problem is even worse for Asian companies with some selling at margins of nearly 2%. The eco-system is shown in the figure below:

Source: DataInsights

Why do hardware manufacturers still make PC's if the margins are so low. The answer, is simple: Volumes!!! HP's 5% margin on it's PC business still contributes to half it's revenues and profits of nearly a 9 Billion Dollars.

So clearly in the PC world Intel and Windows were king having profit margins in the 30-40% level while PC manufacturers were to use the economic term: commoditized.
But what about Apple you may ask!! Apple being in control of their entire chain always maintained high profit margins even for Macs. Apple gets more profit from the sale of 1 Mac as compared to 7 PCs by HP. Apple however did not get the volumes in the Mac as compared to HP and Dell and Pcs and such were things until something disruptive happened: The tablet was born(re?) with the iPad.

It is clear from all market data that the iPad and tablets are cutting into PC sale volumes. The figure below shows the trend of notebook sales(Source: OnlineMarketingTrends)

Indeed IDC PC Watch has shown that overall Year-on-year in 2010 and 2011 PC/Netbook shipments have fallen by about 4.2% with the only silver lining being a bullish sales of MacBooks and Lenovo in the US..

Compare all this doom and gloom with the tablet market. Apple's Profit Margins on the iPad is rumored to be at: 42%.

But here is the real deal: When you go and buy a tablet you buy an Acer, a Playbook, A Samsung Galaxy not Android+ (Whatever Processor) or iOS.

This means that once again hardware manufacturers are free and the wide range in specs for the tablets means that they can get much higher profit margins with high volumes(oh joy!!).
Add to this the fact that Android is free(Google makes no money in it) and you can see why all hardware manufacturers are moving like droves to the tablet market.

And this is why non-iOS tablets are so expensive. In trying to keep their margins high, manufacturers like HP, BlackBerry and the rest are trying to sell it at prices comparable to the iPad but not having the same features.

The aim is simple, to quickly become a market leader in this area. This is no different from IBM who in the first few years of the PC era was making profits at 40% before being beaten down by nimbler competitors like Dell, Compaq and subsequently HP.

But what about "WinTel". Both companies have missed the bus. Intel lost to ARM and NVIDIA as most tablets are powered by these processors and Microsoft is increasingly seeing the carefully built OEM eco-system being completely taken apart.

But more surprising are Microsoft's moves, however logical considering the big picture:
  • Partner with Nokia(another struggler) to get the hardware edge
  • Reveal "Metro" UI as default UI for Windows 8. The "Metro" UI is more optimized for touch rather than click.
  • Make Windows 8 work on ARM without support for older Intel Based Apps!!!
  • Remove Plug-ins from Windows 10 "Metro Browser"
  • Make the Programming for Metro as HTML+JavaScript in preference over .NET
In other words Microsoft has relegated the "Desktop" to second place. Though, it will still support the desktop, it is clear that the desktop will in a few years be what Win 95 is to us. A relic of times past.

Even their Server strategy has taken a major change. Windows 8 Server beats the pants out of cloud computing technology like Citrix and other major cloud systems. Gone are it's emphasis on .NET servers alone.

Clearly in the long-term(3-5 years?) MS is betting that the changed economic systems means that PCs and Netbooks are relegated to ancient technology pieces with hardware manufacturers literally forcing the tablets down the throats of users.

We live in interesting times and the chess game has just begun as the industry sorts itself out. This entire situation is an ode to the man who started the PC revolution, lost, started the animation revolution , the mobile apps revolution and finally the tablet revolution: Steve Jobs!!!. Let the chess game begin

Saturday, July 10, 2010

Status Updates

It has been a long time since I blogged about anything. I have had a great number of ideas, but got busy with doing a lot of things at the same time. I will blog about some of those ideas later.

A colleague of mine, suggested I start a pure technical blog to document my work with technology for the technology geeks. I was reluctant in starting a pure technical blog since I believe there are too many of those out there anyway. But, I have increasingly noticed my habit of forgetting, important things, especially when I do some analysis years ago and try and remember what it was that I did.

Hence, the technical blog is more like a research journal and is actually for me to document my work. I will feel great if someone actually benefits from it.

You can access the blog at It is aptly labelled Memoirs of a Certified Geek.