Fragmentation: a case study.
The discussion on Android Fragmentation, how bad is it and if it matter at all is never-ending. I happen to lead the mobile division of an offshore outsourcing company. We develop for Android quite often thus I decided to share with you a recent (rather typical) situation when we had to deal with fragmentation. I think it's a good example, it demonstrate the very core of this phenomenon.
So, one of our recent projects is a photo-sharing software, not completely unlike Instagram. We are located in Eastern Europe, a customer is in US. A customer is technology-savvy, he understands the nuts and bolts of software development, thus we quickly agree on the list of the handsets we will test the software against. Among them is Samsung Galaxy S II, one of the most popular smartphones.
The software is almost done and works great on all our reference handsets. However, the customer reports one of his handsets cannot initialize the camera - a Galaxy S II. Our Galaxy S II works just fine. After a short research we find out his Galaxy S II is in fact Verizon Galaxy S II Skyrocket - a completely different model, even different model number, although the phone's name is the same. The camera initialization code works everywhere but on this particular phone thanks to its unique hardware/firmware. You can't buy one in Europe for debugging. We are fucked.
As the result, we are getting a handset from the States, pay for the hardware, pay for the mail, deal with customs, do additional QA, bug fixing - here we go, 20% over budget our profit margin is around zero and is falling.
Note, we did know we need to test agains particular handsets, we even enumerated them in contract. Didn't help. You can't even trust the model name - you need to go for a number in a crazy world of Android. You also should take into consideration some of the models you need to build for and test with wouldn't even be available in your home market - at least not with a particular carrier firmware - you need to get them somehow. Otherwise you might find yourself screwed.
We are not complaining. We will still be doing Android projects. We will get all the handsets we can from US and major Europe carriers, we will allocate more time for testing, sure. But be sure as well it will drive project budgets up. That's the reality - that's how the fragmentation affects the market. Development just gets more expensive.
At the current stage I see no work around, no way out of this situation. Android is a major force, we will still be doing this projects and the QA budgets would be huge. It kinda reminds me J2ME times. Still not as bad as then, but getting pretty close sometimes.
Conclusions? I don't have any. We are professionals, if we have to work in this environment, we will. I just wanted to share an example of fragmentation, thus the next time you hear someone mentions it, complains about it, you know exactly what's it about.