This is part two of our four-part series on the future of software development. Part one examines how the software developer role is changing. Part three looks at the role artificial intelligence (AI) will play in software development, and part four tackles how to future-proof your developer career.
If it feels like we’ve been talking about future tech like 5G and edge computing forever, we have. But they’re getting closer to reality which means they should be on a developer’s radar. We asked 14 DevOps practitioners, analysts and GitLab experts which technologies are most likely to have an impact on software development in the next three to five years. Here’s what they said.
Edge computing comes of age
The fast-growing Internet of Things (IoT) market – worth $212 billion in 2019 and projected to hit 1.6 trillion in 2025 according to market research firm Statista – means edge computing may be coming to your DevOps team sooner than you think. Edge computing will challenge developers to literally put processing power within the application (on the “edge,” in other words) rather than having to reach out to the cloud for computations.
Today’s edge computing is largely confined to telecom companies, says Carlos Eduardo Arango Gutierrez, a software engineer at Red Hat (and a GitLab Hero), but in three to five years he sees front end developers needing to get a handle on this. “Part of my work at RedHat now is a lot of IoT and edge computing and I think every Kubernetes developer today is going to need to be thinking about it,” he says. “Developers are going to need to be thinking about networking but also about new types of routers and hardware architectures to support this.”
5G is happening
Despite the immense hype, a 5G wireless network rollout is underway around the world (here’s an interactive map). Statista predicts between 20 and 50 million 5G connections as soon as the end of next year. Even if that forecast is optimistic, 5G will shortly upend mobile application use as we know it, and thus mobile application development. Dramatically faster download and upload times will give developers the chance to create more-feature-rich applications with better user experiences including potentially both augmented and virtual reality.
Really, it’s about networking
That’s all a long way of saying that these cutting edge technologies are going to require developers to understand how to tie them neatly together. “In the future it doesn’t matter if you’re going to be good at the front end and know languages like Go or Java,” Carlos says. “You’re going to need to understand everything about networking. That’s critical to the future.”
Hardware becomes a factor
Software developers tend to take hardware for granted, and why not? Today one phone or laptop is very much like the other but in a few years that will no longer be true. “As the speed of connectivity continues to evolve and as we hit certain thresholds we need to think about how we design solutions to take advantage of that,” says Rafael Garcia, director of digital services at insurance conglomerate Aflac. “When storage became cheap it changed how you designed solutions and now with connectivity and broadband you don’t have to be worried about size anymore,” he says.
Size is one consideration but there are many others, Carlos adds. Developers must move past the “if it works on a laptop it works everywhere” model and realize the production clusters and the distributed systems will have entirely different requirements for everything from design to security. “In the future, software developers need to understand the world is not your laptop,” he says.
Code (or secrets), heal thyself
The idea of self-healing code is something every DevOps team can embrace and it’s something GitLab CEO Sid Sijbrandij sees as a viable possibility. As an early example of this Sid points to Kubernetes custom resource definitions because they automatically know the state they should be in. “Viewed through a different lens it’s the same thing in technologies like Vault,” he explains. “Instead of secrets in a company system lasting for years or months it has dynamic secrets that continually refresh. It’s self-healing for secrets.”
Microservices go mainstream
Your DevOps team may not have jumped on the microservices bandwagon yet – in our 2020 survey only 26% of respondents fully use them – but Sid says they’re key to the future. It will also be important to know how to manage them, he says. “The interactions between services are going to be important particularly when it comes to distributed systems. We’re going to need technology for tracing and troubleshooting services.”
Why isn’t AI on this list? It’s so critical to the future it will be covered in part three of this series.