Well, it is that time of the year again isn’t it? Whether you are an “Apple Fanboy” or a “Google Fandroid”, you are likely watching the tech news and keeping tabs on the endless stream of debate and teasers regarding the latest release from Team iOS. Similarly, at time of writing I have just seen the release of the new Google Nexus 7 – the first device to ship with Android 4.3 out of the box.
With iOS 7 in particular, it seems that every few days there is a new developer release of iOS so that apps can be made ready in time for the big release day. Each release of course brings, at a minimum, another round of test system deployments and regression testing – yay! boo!
Looking at iOS 7, I think it brings some nice new features. Not everyone agrees but these things always divide public opinion. I have a combination of Android and iOS devices, I enjoy using both of them without preferring either of them over the other – sorry!
Looking at the iOS 7 pending release though, we see changes to some core services. The look and feel has been overhauled, Control and Notification Centres have been updated, Air Drop is there now giving more sharing and integration options and, most interesting of all, real multitasking is coming – a significant development as it completely changes the behaviour of applications.
What is of interest is that today, we see a new market driver for the enterprise. We now face the situation whereby the new release of a device or OS update brings the need for the enterprise to invest time and resources to ensure that the same functionality stills works as designed. Further, this additional investment doesn’t necessarily add value for that investment, it merely returns you to stable running which you already had prior to the announcement of the release.
This is a relatively new shift in demand for services. Any business that has a strong mobile apps presence needs to keep up and we see the situation where, in the case of iOS, an announcement of a new release is made in June, with general availability in the autumn. What is more challenging is that this would hint at the release of new hardware too; new hardware with new specifications.
If you are someone like Spotify or Pandora, Netflix or LoveFilm, all of which have excellent apps today, you are then against the clock to ensure your apps are ready so you can capture new market share by embracing the latest and greatest features.
As a business, this I imagine is quite frustrating as it essentially means someone else is dictating when you make an investment, albeit an investment to maintain the status quo. So what can we do to minimise this impact?
We all know that application releases are critical to brand value and loyalty. We saw a bit of a stumble recently in the UK with the release of a new sports TV channel app which experienced issues at launch. Not good when you are hoping to watch the first match of the new Premier League season!
So, we have to work out a way of minimising the impact of these new updates, we need to ensure adequate testing for functionality and performance and also need to ensure that we focus not only on the front end but also the back end systems that form the rest of the transaction path.
Is Agile Development The Solution?
I think this forms an argument for iterative development methodologies such as Agile whereby you build a repetitive, quality management model that accommodates frequent testing cycles so that your services are validated prior to release. Further, by taking an approach based around this frequent repeatability, it then makes automation a more obvious requirement.
By implementing efficient testing methods that are repeatable, maybe as part of a wider DevOps or continuous deployment solution, it is possible to build out a framework within which you can absorb a large degree of increased activity as a result of releases of new OSes. I have seen it with my own eyes!
But these are my thoughts! What is YOUR view on testing in the mobile space?
How do you ensure you maintain quality assurance on multiple devices and OS combinations? How do you deal with the advent of new releases? Do you align release schedule to coincide with what has become the generally accepted timeframes for new releases out of Cupertino or Korea? Do you test the full end to end services provided by your apps or do you use a simulation or stubbing approach to isolate mobile components in the system?
I am interested to understand what is implemented today as best practice.