As I think we all know by now, there are countless possible combinations of devices, platforms, and channels that we could end up designing and developing solutions for.
I once worked at a retail organization, and they had different Channels like web, mobile, kiosk, and physical stores. Within these, the web team had to contend with the infinite versions of operating systems, web browsers, internet speed, etc. On the mobile team (which I was on), we handled all manner of development combinations of OS versions for Android, iOS, and mobile-optimized devices for tablets, phones, and hybrid laptops. Today, there are even more mobile devices – like smartwatches and Google Glass – and I have no doubt there will be more to come.
Question: Given the myriad possible combinations to build for, how do you decide what to focus on when building a system for your customers and users?
Answer: Do your research. Understand your market. Understand your users and their context of use. Understand their user journeys and their goals. This will help inform which route you should take.
When trying to break out a story by channel, you could have stories for building the same feature – but in different channels. For example, in my fake Recipe app, I could have the following stories:
Full disclaimer: I’m not a fan of splitting stories up this way – especially if you’re developing the code in an environment using something like Xamarin. It allows developers to code for the majority of platform-independent functionality, requiring them to only write custom code for the 20% of features that are unique to each OS or channel.
In this case, I would write one story that spans the different channels or platforms, and I would write separate stories to cover any unique aspects of each. I find this to be a much better approach than splitting whole features by channel/device/platform.
Questions to ask:
- Are any channels/platforms more important than others?
- Do you have a mobile-first strategy, or do you take a more traditional approach?
- Do you need to develop for all possible channels, or can you narrow it down to the most commonly used?
- Are there certain aspects of a feature that differ significantly across platforms?
Once again, I’m not a fan of this splitting technique unless there is a very compelling reason to do it.