Mobile apps have exploded from niche software to being one of the biggest ways we enjoy digital services. News24 and the various other sites at Media24 are no different: the new News24 app – launched in February 2020 – is already one of South Africa's most popular news apps.
24.com, Media24’s consumer product technology division, develops and maintains these apps, and it’s one of the most exciting places to work as an app developer. We wanted to learn more, so we chatted with Nico-Ben De Villiers, Software Engineering Lead for Mobile, whose team builds and maintains the News24, Netwerk24, and Landbou mobile apps.
How are apps or app features chosen and created at 24.com?
Generally, somebody somewhere will have an idea that is logged and eventually prioritised. The moment it’s prioritised, our product teams, and usually our design teams, work closely with our internal stakeholders or whoever’s requesting the feature, to set the requirements and ensure what we’re going to build aligns with their needs. During that process, they’ll speak to me and the other engineering leads: Is what they’re pitching technically feasible? Once we have all that bedded down, we build it. One of our main drivers is that we write the code ourselves and build everything. And then, of course, we maintain everything.
What does maintenance involve? Isn’t it done when you launch?
No, mobile apps keep evolving – they are very dynamic! We have quite a lot of tools that tell us how stable we are on Android, iOS or Huawei, which are the three main platforms we support. And then we’ll dig around to figure out if there’s anything that needs doing. We also have support teams that liaise with users. They’ll reach out to users, getting more information for us until we’re at a point where we understand the problem well enough to solve it.
You didn’t initially study software. How did you end up in app development?
Yes, my background is in civil engineering, which I then realised about three-and-a-half years into a four-year degree I didn’t like! I finished the degree and signed up for postgraduate courses in civil engineering informatics, which is just a long-winded way of saying computer science applied to civil engineering problems. I ended up doing a PhD in that but found I didn’t like academics very much either. Software was always just a tool for me to solve problems. So, by the time I was developing commercial software, the exact field and problems I was solving became far less interesting than the environment I worked in, the software I used and the people I worked with. Mobile apps were where the opportunity was. Since then, I've learned a lot that makes me love app development. But foremost, it's an interesting environment. A really challenging but fun environment.
What kind of development tools do you and your team use?
We work in a cross-platform environment, so we don’t build native apps. We don't write specifically for Android or specifically for iOS anymore. We did until a few years ago, when we moved to React Native. Most of what we build in React Native is proprietary. Of course, there are libraries and other tools we integrate. A big one is something like Firebase, which we’ll use for authentication. We also write a lot of native code, since we have third-party dependencies that don’t support Reactive Native. So, we also maintain and build some of our own native modules.
Is building apps at 24.com exciting?
Yeah, without a doubt! As an example, there are thousands of different Android device models, each of which we support. They all have slightly different versions of Android. So, you’ll get a report from an Android user saying, “Hey, this thing doesn't work”. It becomes extremely challenging to figure out what on earth is going on. There’s frustration in that. But it’s also extremely rewarding when you do figure out what’s gone wrong. We have been in scenarios where we’ve actually met up in person with users, and attached their devices to our computers so we can see what’s going on.
24.com is known to have a strong focus on solving user problems, but what other challenges are you commonly also faced with?
There's a lot of challenging stuff that comes up all the time. Chief among them is that we don’t own the app stores. Google or Apple can require that by this date, you’ve got to have X thing implemented. Otherwise, you can't update. It’s not a matter of just flipping a switch. And once you’ve updated, something else might break as a result. If it’s your code that breaks, you can fix it. But if it’s vendor code or third-party integrations code, that becomes very challenging. It’s a very dynamic environment. There’s always something new, and it’s always challenging. It’s never boring.
How do new developers fare in such a busy environment?
We take onboarding new team members super seriously and we have a whole system in place for this. Because our workplace is hybrid, I want newcomers to meet the whole team. At no point ever is my word the law – my voice doesn’t count more than anyone else’s. We want everyone to work together and feel comfortable with each other. We encourage people to buddy. If new joiners need help at any time, they can pick anybody, and that person will jump on a call with them. They’ll likely end up pair-programming. The whole team constantly does that all day.
What is fundamental to a good app?
A couple of things; foremost is having a good user experience. The app must solve the problem and do it well. It must feel like a mobile app, not a mobile website. There are certain expectations, like no “page loading” screens. For me, it’s maintaining the app to feel instantaneous and fast on a mobile device, and that the user experience is fantastic. Everybody in my team really engages with our design and product teams to ensure what we're building is best practice for the platform.