A variety of devices. As an app developer, there is very little you can do to control your environment. As a hardware market is becoming more competitive, it is getting even harder to make assumptions about devices. Let’s say, a no-name factory releases a no-name phone. The AppDev team is the one to make sure that user experience on that particular phone is just as good. After all, you can’t tell your customer to buy a new device. From a design point of view, it is not the same like it was back in the days when you basically had only high or low resolution options. Now you have to create a product for users who might have absolutely different expectations depending on a device they use – from a netbook to a gaming rig with a 4-monitor setup.
A variety of users. Some users opt for simple features and easy-to-use apps. Meanwhile, the others want geeky stuff. Especially when we are talking about network security – some will be satisfied with checking their email, and others will be wiring up their entire house with IoT devices and controlling their Arduino lawnmower. Arriving at the right compromise between variety of features and simplicity is critical.
A reliability of testing. Certain app bugs are not easy to spot without real network conditions. Going through a QA checklist and running a bunch of automated tests in a phone farm can work for most application developers. However, none of these solutions can represent actual real life setting. How can we deal with that? One way is to artificially shorten time intervals and work on a better QA flow to replicate possible scenarios as accurately as possible. The ultimate goal is to observe a life cycle of an app over a long period of time under different network conditions.
A search for the next big thing. Everybody wants to work with cutting edge technologies. Nobody wants to be that geezer who sticks to an ancient technology and his FORTRAN 77 code base. But there’s a ‘but’. ‘Cutting edge’ does not necessarily mean the best for your user. If it isn’t broken, don’t fix it. Sometimes a more efficient way is to stick with a thing that works rather than chase trends. Migrations take time, money, and at the end of the day you can still find yourself falling behind the newest trends.
Unforeseen circumstances. Whether it’s Google deciding that Chromebooks can run Android apps, Apple releasing the iPad Pro, updates on operating systems that break APIs, or an ISP fundamentally changing their policies, customers expect that a company is prepared for all of this. In reality, sometimes these customers are where you get the news from. This means that you always have to be on the lookout for feedback and stay flexible. In times like these, comprehensive data about your user base is critical so you can anticipate where the changes will be coming from.