Mobile Fragmentation Sucks: How to Cope
Device fragmentation is a nightmare for developers of all stripes looking to grow their user base. In fact, it’s the kind of problem that only gets worse the more successful your app becomes. The more users you have, the more diverse and divergent their devices they’re use to run your software will become. These devices vary in terms of form factor, underlying hardware, and operating systems. Even different versions of the same OS present some of the greatest development challenges – Android is a prime example.
Software companies are left with few options but to invest additional resources, time, effort and real money to deal with device fragmentation issues. Developers need to code, test and release multiple versions of the same application for every device and OS specification out there in the market, or at least take the different behaviors into account within their application.
It usually takes multiple iterations before a stable release is available that developers are reasonably confident will work on most mobile devices. Even then, developers need to compromise on performance, graphics quality, and sometimes even features to ensure it runs smoothly for every user. Optimizing this tradeoff is critical since failing to support diverse device specifications compromises profitability and market share.
Automated and continuous testing of each iterative build against performance, user experience and security ensure that your team gets closer to the optimal trade-off and intentionally decides to support certain devices and versions over others. This development strategy incur fewer resource investments, minimizes manual intervention and reduces major reworkings to fix defects for specific device categories.
Deployment, delivery, and release of feature improvements in small, iterative builds also helps teams more easily manage testing for multiple OS versions and hardware. Continuous feedback from the real-world testers (not just automated tests!) as well as input from actual users push further iterations in the right direction.
Device fragmentation is here to stay but automated and continuous testing significantly reduce performance concerns and the cost incurred to fix defects. This approach significantly reduces the total cost and efforts it takes to develop a mobile application good enough to work on (almost) every device out there.