Sunday, August 09, 2009

My Notes from Event Faster Websites by Steve Souders

Understanding AJAX Performance
Chapter 1
1. Principles of Optimization
- Cost of Program : Execution Time
- Optimizing Inner Loops
- Fixed Overhead of a Loop
- The Axes of Error
- Test Applications with Slow machines and Slow networks
- YSlow tool
- AJAX Data Packets should be small
- Use of YUI
- DOM API - Inefficient
- Velocity 2008 Conference
- Alexa top 100 pages
- Wow features - improve experience of the User
- Programs should be coded for correctness and clarity
- Do not tune to the quirks of particular browsers
- Measure before Optimization

Saturday, August 08, 2009

Breaking the Jinx

I gathered a delightful insight in the future of Indian IT Service Industry recently. While a lot has already been told and talked about in the media and other circles, a considerable amount of work is required to be done in order to break out of the notion of how IT Company works and profits in India.

When I say The Indian IT Industry, it reflects the IT Services companies in India, those who provide Development, Support and Maintenance of IT systems for all breadth of Customers. As the one who is a part of the same race, I tend to reflect most of the times, the way these companies operate and increase their profit margin. The typical IT Company starts by networking with key people, people who are part of its own Clientele, or Business partners or Independent Consultants, or even Big mammoth IT Companies (looking ways to cut down Operating and Production costs). Once the networking is in place, the company seeks information from the above networking agents, to find out the possible Clients. Once this search is over and the Company got a list of Clients that it can talk to, it starts with approaching the key people in these companies, either hawking them in Socialite parties or Business get-togethers. An exchange of Business cards, and they are talking. Sooner or later, it gets an indication that there is a possible requirement of a Solutions provider or a scenario where existing provider isn’t worth the price. This is the moment for which the IT Company waits for eternity. A possible deal. A close talk between the parties, and there is a Maintenance project that it could work on, and for that the preparation starts on the Ground. People are recruited, staffs rotated, all in a process of preparation. The Company starts the process, projects their expertise to the prospective department of the Client, and enumerates the previous work in the same field if they have. If there is more than one provider in the race, things become more competitive, and the discussion on price-performance benefits are done. If the situation demands, it goes to the extent of providing freebies or a company tour, the team meets, all in the hope that Customer likes them.

The above is just a narration on a possible process followed by an IT Company in breaking the deal, however it is not whole or complete and does not indicate in any way how it operates.

It is this Jinx that some of the providers are breaking very soon. The process of Selling that Indian IT Company has been using for last 5 – 10 years is in great need for change. I was lucky to encounter some great chaps from inside and other sources to discuss the same, and to my luck, all of them reiterate the same thing. We need to own the Client’s problems. Customer Centric behavior isn’t just keeping the customer informed, leveraging the best technology and people to solve the Customer problems, and having a sense of Empathy with them.

To this, the cliché saying comes to my head, A Friend in Need is a Friend Indeed, or should I change it to match the Indian IT industry, A Provider in Need is a Partner Indeed. Ram Charan in his book “What Customer wants you to know” clearly states the need for the companies to act like Partners of Growth for the Client. A Partner who stands by the Client in moments of truth and at the pinnacle of Success. There is a bunch of stalwarts who are championing this spirit, and are breaking the Jinx. We are saying to the Customer that we want to be the engines for your growth and in that process we earn our bread too. No longer is the success of the Project by a Vendor, a measure of good relationship. The “IT Aaj Kal” goes the following way : We as a Vendor want you to be profitable and successful, and would make sure the Projects we execute with you improves your odd, predictability and profit margins from what it was before we came in. And with this, bring in processes and standards in our way of work that promotes Creativity, Innovation, On-time delivery and Zero tolerance to Bugs/Issues, and a relationship that promotes future growth for both of us.
More on this in my later posts.

Wednesday, August 05, 2009

Writing Faster Javascript

Lately, I am researching into creating faster Web Application
FrontEnds using Javascript. And there is one quote that
smiles me most. It goes like, Users of Web application dont
really care for how faster your application is designed
and implemented, they more care about how the application
gives the impression of Speed. This is a great statement.
It all boils down to a great idiom in designing faster
and performance driven applications on Web. If you cannot
fasten or optimize a particular part of the application,
just make it look or behave like its fast. And it works too.
This apart, I also happened to watch Nicholas C. Zakas
talk on creating Faster Javascript Apps.
The whole talk sums up into the following points to consider
while debating on how to increase the performance of Javascript.

1. Minimize Global Variables Lookup
2. Cache the Global Lookup into Local variables
3. With Statement is bad
4. Minimize DOM Manipulations
5. Use DocumentFragment to reduce Reflow.
6. Minimize Object Property lookups
7. Cache Array Lookups

More on the above topics in my next posts.