Paul Czarnik Issue: North America 2010
Article no.: 12
Topic: Enterprise wireless application performance: Load time is money!
Author: Paul Czarnik
Title: CTO
Organisation: Compuware Corporation
PDF size: 140KB

About author

Paul Czarnik is CTO at Compuware Corporation and has held engineering and management positions in Compuware Products, Services and IT organizations. During his career in the software industry, Mr. Czarnik has also specialized in medical software development. Paul Czarnik attended Wayne State University in Detroit and serves on the Board of Trustees for the Motown Museum in Detroit.


Article abstract

Although most CEOs recognize the importance of their web and mobile investments, many have a blind-spot concerning the performance of their mobile websites. Poor performance is endemic in many enterprise sectors, reflecting the lack of deployment of basic best practices while building applications. Proper implementation of performance best practices can transform the user experience.


Full Article

While attending the National Retailer Federation Expo in New York last February, I sat in several CEO panel discussions where the economy, obviously, was the major topic. What impressed me during these discussions was the knowledge that these CEOs had about everything that happens on their retail floor. They understand customer traffic patterns, what products are selling, item churn, what we pick up, put down, and even how much discretionary income we have to buy those impulse items. Demand forecasting, promotion performance, price optimization, vendor performance, location analysis, store loss prevention, cross-purchase profiling, demographic analysis, defection reports; all these figures about their stores were seemingly instantly available to these CEOs. It was obvious that the performance of their physical stores was very important to them. As I sat in the back of the hall with my smartphone, I decided to take a look at the performance of their mobile websites. Wow! The results I got from my ad-hoc monitoring showed sixteen-seconds, twelve-seconds, even twenty-seconds just to bring up the front page. Now, I could imagine if I had a twenty-second delay getting into one of these CEO’s ‘bricks & mortar’ there’d be heck to pay. But here I was, presumably ready to buy, and lots of impediments getting in my way. I wish now that I had confronted those very CEOs with the fact that, even though they state the importance of web and mobile investments, they had a huge blind-spot when it came to the performance of their sites. Later, when I did more in-depth monitoring of their sites, I found that poor performance was consistent across platforms, browsers and geographies. I wondered if they realized how much potential business they were losing just because of bad performance. You can only push customer loyalty so far. If you don’t treat their wireless device experience in the same way as you treat their web-browser experience or the way you treat them face-to-face, they will go away. They expect their wireless experience to be as good as their wired performance which should, somehow, be relevant to ‘in person’ performance. There are companies that have successfully done this. If you properly implement performance best practices, you can achieve this. It’s not a simple matter of mimicking your website on a mobile device. You have to rethink the experience from the very beginning, understanding how your customer wants to approach your site and making sure it performs at every level of the end-user experience. Decisions about writing your application for generic web vs. native applications are very important to performance. Android vs. iPhone vs. iPad; users on these devices not only require different visual workflow approaches, but also different performance approaches. How quickly a screen renders and provides useful information are critical decisions because every second that a user waits increases the likelihood of application-abandonment, which then increases the possibility of customer churn. You need to design, code and test your application in a way that considers performance across device, browser, location and backend datacenter. End-to-end performance visibility when developing and deploying applications is critical. Let me give another example: A couple months ago I had the pleasure of meeting with a CIO of an enterprise with a mobile presence and store. The evening before my visit, I sat with my Android attempting to purchase an item on his slow website. I finally gave up and decided to try a competitive website. Finding this to be a much faster experience, I ultimately bought from the competitor. The next day at the meeting I confessed this transgression. The CIO first gave me a dirty look and then looked across the table at his technical staff and demanded an explanation on the performance of their webstore. Their answer was “We know. It’s on the list”. As the meeting progressed, it became obvious that all issues related to performance were ‘on the list’. By the end of the meeting these issues suddenly had ‘business priority’ and were to be addressed very quickly. Being a programmer I felt bad for the technical staff but I did feel better that now they had upper management’s attention to address performance issues that had been considered low-priority. I’ve talked to quite a few CIOs, and quite frankly, I have been amazed how uninformed many of them are about the performance of their web-presence over wireless. In instances where they were aware of performance issues and struggling for solutions, I found that most of their problems were due to lack of applying basic performance best practices while building their applications. Sometimes it was due to lower-skilled developers or lack of proper performance testing before deployment. Sometimes it’s just a lack of realization that many applications are put together from services ‘in the cloud’ and congregated within the end device. These composite applications are quickly becoming the norm and not the exception and understanding how so many piece-parts affect performance is very important. When building enterprise applications for wireless deployment, consider the following: Location performance: Are your users likely to be in motion while using your application, crossing provider boundaries and moving away from the location of your content? Monitor from different regions and make sure you can compensate for slower areas by optimizing your application or utilizing content delivery networks. Cloud content: Understanding where all your content is coming from is very important. Third-party providers often rely on the cloud to provide content which may not always provide predictable performance. Your user will only know that your app is slow, not some other provider, so make sure you test and monitor these providers and insist on service level agreements. Wireless device performance differences: With so many devices, operating systems and browsers available, understanding what your customers are using is the first consideration. Optimize for the most popular devices but also make sure that you are not losing customers who may be on niche devices. The application itself: Implement best-practices before you begin the coding effort. Make sure that testing is done at each iteration in the development of the app. Build the application modularly so that piece-parts can be disseminated and deployed in a way for optimal performance. The back-end services such as databases, web-servers, and load-balancers all need testing and monitoring. Techniques that improve performance often seem more like art than science, but with continuous education on the topic you’ll come to find that it’s just another engineering exercise. There are many books and websites devoted to performance. You need to understand all the technical techniques and options available to design your wireless web presence to perform and scale. It takes time and discipline but in the end it’s going to pay off with happy customers. Finally, YOU! Have a ‘passion for performance’. It’s not easy; there are many moving parts to an enterprise wireless application, but the attention you pay to the details will pay off. It’s true that “Time is Money” both in application and human performance. Make sure your bosses understand the business value of performance tuning and monitoring. Imagine it’s a Friday afternoon and I’m ready to buy that new guitar I’ve been saving for. I can either: Get in my car, fight my way through construction to the mall, park a quarter-mile away, confront a navigation nightmare making my way to the store, wait forever for someone to help me while they complain about my choice of songs to practice on (What, you don’t like “Thick as a Brick?”) or: Turn on my smart device, find a well-designed, fast-performing mobile store, virtually play the instrument, research and blog about my preferences, select what I want and have it delivered the next day. If you build that app, let me know. I’ll be first in the queue at your store. That is, if it’s a finely-tuned, performing website!