Network Responsibility

In the past 6 months, I’ve seen more and more infrastructure companies focused on network data optimization (and why shouldn’t they be with video consumption continuing to explode and now representing 40% of all data load). On the other hand, from an operator perspective, the introduction of data caps in creates the downside protection they need (eg if someone is being data abusive, they are paying a significant premium for it) – not a bad situation for the operator.

That being said, what I haven’t found much focus on is the shift of data consumption responsibility to the developer. Developers need to build network-efficient applications and unfortunately, I still haven’t found a best practices / guidelines for developers to adhere to.

I’m definitely not a network expert but certainly developers should keep in mind the following:

1. Chatty vs queued (I’ve heard that the opening/closing of network connections causes unnecessary pain; developers can design around this?)
2. WiFi vs 3G (It’s not difficult to determine network speed and then determine whether to do the “large” or “small” download. This is similar to how in prepaid days, apps may wait until nighttime to download data because of the cheaper tariffs)
3. Roaming or not (This would require network APIs to be available but assuming it is, this would absolutely impact when the application should be transmitting data)
4. Load on the network (Again, this would require network APIs, but knowing load can be used to a developers advantage)
5. Compressed vs uncompressed (Many argue that the PC resulted in inefficient app development and mobile made you efficient again with limited storage/memory/CPU etc. Now that mobile is the new PC, that may be happening again. If you have a server-based application, why not compress?)

And the list goes on…

Operators need to put more pressure on developers in writing network-efficient apps rather than pushing data caps, IMO. Let me know if anyone finds a list of best practices?