O2 Czech Republic is a major integrated operator in the Czech Republic. It is now operating more than six million lines, both fixed and mobile, making it one of the Czech Republic’s leading providers of fully converged services. In 2012 and 2013, O2 completely altered the landscape of the Czech telecommunications playing field when the company, as the first operator in the country, opened its network to virtual operators, and, in spring 2013, revolutionized the market with its unlimited FREE tariffs.
We spoke to Ondrej Sebelik, Cloud & Mobile Development Lead at O2 Czech Republic about their latest product launch and how they manage feedback and bug tracking using Instabug.
Can you tell us more about Smart Box?
At the beginning of August 2017, O2 Czech Republic launched the O2 Smart Box, a DSL modem, Wi-Fi router and smart home gateway in a single device developed specially for O2. All of the setups of the Smart Box is done through a mobile app where they've also built a stream processing cloud platform in-house for the project. The app is the single point of contact for the user and allows them to perform the initial setup ("onboarding"), pair smart home devices with the gateway and configure the router.
Since we are a telecom company, the Smart Box quickly became the epitome of our product (broadband service) and the application, as the interface of the Smart Box, also became a natural way for the customers to interact with us as a company. This is important because about half of the issues we receive through Instabug are related to the broadband service itself, not the application or the device. This way, the users have a tool that not only enables them to set up their home connectivity and control their smart home devices but also ask questions about the service or resolve issues. All of that in one app, seamlessly and effortlessly, in large part thanks to Instabug.
Can you tell us more about your team?
We're a team of nine, four of that are mobile developers. Of course, there are many other people in care channels and technical support teams, however, this is the core team working on the development of the Smart Box (the platform and mobile apps, the firmware in the Box are supplied by a French contractor).
What do you like the most about Smart Box?
Probably the best thing about the Smart Box is that it's never been done like this before. As far as we know, we're the first major operator that introduced a device, custom built for us, that combines a powerful modem, amazing Wi-Fi router and smart home gateway in a single elegant form factor. And although it's been on the market just a few months, we can already see that our customers love it.
"I personally feel that Instabug is a great tool not just for debugging the application but for communicating with our customers and listening to their needs and suggestions."
What's the vision for Smart Box?
At this point, we're still in early stages but the goal is for the Smart Box to essentially replace all existing modems and become the standard for our current and new customers, which means we're targeting higher hundreds of thousands of installations.
What questions do you ask yourself before launching a new version?
How will the user use this? What is important to them and what is not? Is it something we would want to use? How will they interact with the app and how to make the interaction effortless?
Can you share your tech stack?
For mobile development, it's mostly GitHub for code hosting/issue tracking, Jenkins (+ Fastlane) for CI/CD, Fabric (+ Crashlytics) for beta delivery and crash tracking and Firebase for UI testing.
What were the problems facing you with feedback and bugs?
The biggest problem we face on this project is a very specific one - we not only test the mobile app but quite often also a new release of the firmware of the Smart Box. Those are two completely different things and they have to communicate all the time, and without reliable bug reporting, it would be almost impossible to determine whether a particular bug is in the app or the firmware. Instabug helps tremendously with that.
Why did you choose Instabug?
Of all the options on the market, Instabug seems to best combine everything we expected from a bug reporting tool. Most importantly, we need to receive logs, have a two-way communication channel with the user, have screenshots available where needed and see user steps to be able to reproduce the issue. One of the things we didn't think would be that useful but turned out to be very helpful in a few instances, is video capture. If we had to choose one thing we couldn't live without though, it would be Instabug logs. Sometimes we just send ourselves bug reports even during development because it's just easier that way
Why did you integrate Instabug with Github?
Since we already use GitHub for code hosting and issue tracking, it was only natural to integrate Instabug as it allowed us to keep everything in one place. The most important thing is that thanks to the integration, the distance between the users and our developers has shortened and there is a clear link between reporting a bug and someone working on a fix for it. It hugely benefits both sides - users have a simple and easy way to communicate their issues and our developers can get all the details they need to be able to fix them.
In Instabug Beta we have set up automatic forwarding to GitHub so whenever any of our testers report a bug, it gets automatically redirected to GitHub where our developers can investigate it and work on a fix and we can also track the progress on our project board.
In production, the situation is a little bit different since many customers do not actually report bugs in the app itself but ask questions or look for help with their broadband service. So the bugs are first handled by our technical support team who either help the customer resolve the issue/answer the question or forward the bug to GitHub manually if they are not able to resolve it themselves. From there, it's the same as in Beta.
We test all the time and we mostly use GitHub labels and assignments. Before release, we usually have five to seven days of testing in beta and if everything goes well, the build is then published. Without the integration, it would be very difficult to efficiently track issues and would require a lot of time dedicated only to transferring the bugs back and forth and tracking their status.
Can you share with us tips to fellow entrepreneurs?
1-Test everything. We're running UI/unit tests for every change and every commit to git to make sure the code is thoroughly tested even before releasing to our (human) testers.2- Listen to your users. Even the best code is worthless if there is no one to use it. We're making apps for people, after all.3- Embrace your mistakes. There will be bugs and crashes in your app, inevitably. Don't worry about making mistakes but embrace them and your users will forgive you.