Tuesday, October 28, 2008

Windows Azure - Microsoft's cloud platform

Microsoft doesn't seem to have changed it's strategy a little bit even though many have hailed this as a 180 degree turnaround. It is again copying what other startups and market creators have done (cloud computing, internet as a platform etc) and then executing on the plan so well that it is cheap(?), superior and accessible to everyone. At the same time, it also tries to win back the developers and defend its platform. So, what is new?

For those who missed the announcement, Microsoft came out with a comprehensive cloud computing platform for developers and organizations which can be used to host applications developed for the platform. To its credit, the platform is so comprehensive and well integrated that Google's equivalent AppEngine seems like.. well, something that was built on 20% time. (But, note that the Sql Data services seems awfully similar to the Google Bigtable model.) It also seems to have pulled the entire company including Office, SQLServer, Developer division & Windows platform around the idea which is indeed rare.

Some of the technical highlights are the use of a new hypervisor to host the client applications in VMs, evolution of SQLServer to SDS which is schema-less and provide a REST/SOAP/LINQ api, integration with Live & mesh services with a robust synchronization framework. Full SQL support is not expected due to it's inability to scale in distributed environment, but native apps will be supported shortly since hosting is based on VM technology.

The biggest competitor to Microsoft seems to be itself, since it is wooing ISVs but how would you convince someone to build on the platform when it seems to cover almost everything? And perhaps users who are wary of seeing BSOD in their internet boxes, but an impressive shift to cloud computing from a tech perspective.

Thursday, September 18, 2008

Thought Networking (from Primal Fusion)

This may be unknown to anyone outside Waterloo, but yesterday a local startup (Primal Fusion) which was in stealth mode for over 3 years talked about what they are doing for the first time. It was interesting to watch the understated local hype since it was run by Yvan Couture, who had succesfully sold his startup to Agfa for a good profit and is also quite active in the community. The only reason I was interested was because I had listened to a talk by Yvan recently at UW. He seemed like a genuine and trustworthy guy which is rather rare in business nowadays.

The core idea behind the company is related to thought networking. They hope to define what it is and be the leader for a new market category. The simple example given was to go from the approach of searching for something to have the required information delivered to you once you have defined your thoughts. Their goal is to capture your thoughts and represent them as semantic networks. After this, these semantic networks representing your thoughts can now be linked to the semantic networks built by the company using information in the web like new sources, wikipedia etc thus enriching your original thoughts. Finally, since your thoughts are captured instead of a static profile as in the case of a social networking site your thoughts can act as a proxy for yourself for frameworks like software agents. Sounds cool!

Finally my personal thoughts with the limited information I had (didn't get invited to private beta yet). It is a cool idea to be able to capture my thoughts online and have them act on my behalf, maybe you will chat to my thoughts next time on Second life. But, there are two key challenges faced by such an effort and I didn't get a good answer for either. It is difficult to capture anything but simple thoughts as there would always be assumptions. Semantic networks doesn't quite solve that problem. The second issue the classic problem with similar AI based systems. The system is a black box which does the magic and links your thoughts to come up with decisions on your behalf. But, if you cannot describe the mechanism of how the system thought about it there would be a trust problem for humans in a world of software agents. The lack of trust might be ok if you just come up with some news articles or travel recommendations for me.
The company is probably betting itself on web 3.0 where semantic networks are expected to replace today's web. If the market does pick up, then they could be selling the servers for businesses to host the internal thought networks, they could also lead the ecommerce market place with software agents conducting business for you and custom ad delivery. But, there is a lot of potential and 'if's at this point and I'd expect the product & offering to morph signficantly based on user feedback in the future before they succeed. Here is wishing success to another Waterloo startup...

Friday, July 18, 2008

Product quality - Dev & QA synergy.

Quality is a problem which every software development team has to deal with.
We have the usual bell curves etc which we use to gain confidence regarding overall stability before we ship.
But, here are some observations based on the timelines of the curve & potential dev/qa synergy.

There are some projects where many bugs are found after the 'code freeze'. This is a clear indication that the dev & qa team had issues.
It is possible dev didn't unit test properly or many changes were made late in the cycle and either QA took time to ramp up and understand the changes or were busy with other things.

There are some projects where many bugs are found immediately after 'code complete' and then taper off quickly. This may be the case with many projects and might be a good thing. It means the QA team was able to understand the changes quickly and cover new areas thoroughly.
It might also mean that the Dev team didn't have enough time to unit test or didn't do it properly also in some cases depending on the severity of bugs found. Otherwise, it is a healthy indicator.

There are some cases where bugs are not found after 'code complete'. It is too good to be true and in many cases it ends up being the case that QA was testing the product before code complete and doing a full test pass.
It might also mean that there is a problem where QA & Dev worked too closely that all problems are explained in dev terms which don't end up in bug tracking system which is obviously not good for the user..

Then obviously, you have the worst case scenario where the curve never tapers off. If you ship a product without being aware of such trends, then you need help & it may have nothing to do with synergy.

Finally, there is a tendency to blame QA for bugs found. But, obviously developers who take pride in their code, thinks about the design first, unit tests, thinks about multi-threading issues, supporting the feature after release & follows best practices make less mistakes. I'd leave the 'who to blame' issue as an open question then.. ;-)

Tuesday, June 10, 2008

mobileMe - Wow!

The sleeper announcement at the Apple WWDC was probably mobileMe. It is what MSFT, GOOGL etc. would have loved to build. I had earlier blog entries indicating that I liked .mac & how synchronization is the key to merge the web & devices (eg. SharpCast). Microsoft tried it with LiveMesh but failed before it even took off.(To be fair, I never tried the service) The seamless integration with iPhone, Desktop, Web & even PCs in mobileMe was amazing. No doubt it will be copied by many - it is true that even mobileMe concept is based on Exchange! And yes, I need to get a 3G iPhone this July - now, if only mobileMe was free!

Monday, April 14, 2008

Google App Engine - First impressions

* It is free, but with quotas. The business model is probably to get others to build apps so that Google can get users, searchable data & then eventually offer a business edition.
* You don't have to worry about hosting, load balancing & scaling which is indeed huge since writing the web application is the easiest among all of the above.
* The initial release is not ready for business apps, it doesn't have an SLA nor does it have a good support for authentication & authorization.
* You need to learn Python if you haven't already, but future support for ruby or php could be expected soon.
* There are no issues in hosting flash or flex application except for the login to google account issue.
* Python frameworks like Django are natively supported, but you can use your own framework as well.
* It is possible to do GQL queries and Google full text search support.
* And there is the full offline sdk for those who can't get an account yet.
* Just use your own user model instead of Google's to avoid lockin.
* Some have even gone ahead and ported AppEngine to Amazon EC2 even though without the BigTable support.
* I wonder how Amazon EC2 & other $5.99 webservice providers are going to react?

Thursday, March 13, 2008

iPhone SDK - First impressions.

This is probably the most comprehensive SDK released for a mobile OS, even though Windows Mobile probably is similar. It must have been easy for Apple since most of the functionality was already in in Mac OS, throw in a different UI framework & a bunch of innovations on touch, acclerometer and location sensing you have the mobile SDK. RIM's blackberry SDK is many years old but is so immature compared to this.

It is not without it's own set of problems though. The reliance on old Mac tools means you need a Mac computer running Leopard to use it. The support for favorites like Java(upcoming from Sun)/C# is minimal and programming in Objective C is closest to programming in Win32. So, developer productivity takes a hit and would automatically reduce the number of developers who can produce business applications for example. It also doesn't expose some of the phone & SMS functionality to prevent misuse unlike similar offerings from competitors.
The availability of Xcode makes debugging & deployment so easy that you can write the first application in less than 5 minutes. Some of the UI design guideline docs are a must read if you are interested in how to design a great UI experience on any platform.

The distributions problems etc are discussed all over the net, but I don't see anything wrong in Apple trying to keep it's platform secure. Besides, small time developers get marketing & distribution for a 30% cut. But for mass market applications there has to be some sort of an agreement which they can work out with Apple.