I went on vacation during Christmas and came back to a massive bill for roaming charges. I had tried to limit my roaming, but to little effect, it seems. I tried to figure out how I had eaten so much bandwidth. Some of it was obvious – people sending me large attachments for work and so on. However, most of the time, the bandwidth cost was less obvious to me – e.g., corporate logos embedded in email signatures to make them look professional, etc. Then there was the Internet surfing I had to do to respond to some of these emails. I believe, when all is said and done, that this will turn out to be the majority of the problem.
Developers have become accustomed to high internet speeds and the days of developers watching the bandwidth profile of an application like a hawk have largely disappeared. And that’s too bad because high bandwidth consumption is just as dangerous today as it was then. High bandwidth lowers peformance and raises costs for both your end user and your company. As I noted in a previous blog, responsiveness and delivery are the two pillars of performance for any application. Efficient use of bandwidth is at the heart of the delivery pillar. Yes, internet speeds have increased, but we all know that the connection speed advertised by an ISP is rarely the speed they actually provide you. Rate shaping and other issues tend to diminish the availability of true high-bandwidth connections for your end users. Moreover, mobile devices have become much more popular these days and they are not friendly platforms for bandwidth hungry applications.
If you are planning on monitoring your application, you should take a moment to ensure that you have access to reports on bandwidth consumption as part of that monitoring solution. These reports should break down your bandwidth usage by application and business function (e.g., by domain and URL in the case of web applications) so you can assess the ROI of that consumption. A good tool will also help you figure out where the application is spending your bandwidth so that you can fix the problem. A truly superb tool will help you understand the kinds of client platforms that are connecting to your application, the ISPs that are servicing them and the kind of bandwidth they are capable of handling, so you can set more realistic requirements for your developers. In my next blog, I will itemize the various ways that an application can waste bandwidth.
It’s always a good idea to maintain a healthy diet and a reasonable body weight, even if the clothing industry has made XXL a standard size. The same is true of your applications. They should never consume needless amounts of bandwidth, even if internet speeds will rise to accomodate it. You should always choose to have the lightest footprint you can have, since that usually promotes the best user experience at the lowest cost.