With the new year approaching fast, we wanted to share some of the insights from our experienced technology team regarding the software engineering trends that will dominate in 2019. Let’s see what they are, how they impact the world of business, and how you can adapt to get the most benefit from these trends.
Microservices are the new application platform that will serve as the basis for many apps in 2019 and beyond. Why? Because of the architecture that enables businesses to develop and launch new digital products much faster.
Microservices are not only faster to build, test, deploy, and scale but they also add reliability into the mix. If an error occurs, for example, it will only affect users of that specific service rather than the entire IT stack.
For engineers, microservices allow for more flexibility and productivity, enabling them to write code in the languages and frameworks they’re most comfortable with.
Recommendation: Start educating your internal team around microservices or hire a consultant to help you. Breaking down the monolithic architecture of the existing app will make it easier to maintain, refresh, and scale up.
Growth of serverless
Serverless technology is growing rapidly, attracting people who need computing beyond what containers can currently provide. These are also the people who care about scalability at low cost, or the ability to pay only when a function is actually used.
Many engineers are already using services like AWS Lambda, Google Cloud or Microsoft Azure due to their flexible, easy to scale, and cost-effective cloud infrastructure. The goal here is to reduce maintenance costs while allowing engineers to focus on the business logic instead of thinking about the infrastructure deployment.
Serverless is referenced as Function as a service (FaaS) which might be a better term as the approach went from microservices breaking it further into smaller execution points.
Evolution of Software Architectures
Some of the benefits are quicker software release cycles, auto-scalable, separation of concerns, simplified packaging and deployment, no system administration, billed per invocation, stateless.
Drawbacks can be: vendor lock-in, slow cold start, software architecture overhead, difficult to test locally, not efficient for long running applications.
Recommendation: Deep dive into FaaS is well worth the investment. Think of it as tiny services that do one thing and do it well. What is best about FaaS is that it’s deploy it and forget it (apart from documenting its existence). Good use cases are image/video processing jobs, data mining or scheduled reporting (e.g. billing and invoicing jobs).
In 2018 AI has been expanding its reach, touching numerous different industries. Gartner found the AI industry revenue will increase 70% compared to the previous year to reach $1.2 trillion by the end of 2018. This clearly shows the growth of everything ‘AI-enabled’ both in terms of products and new business models.
But what does this mean for software development? As companies increasingly embrace AI technologies, such as machine learning, finding the engineers with the expertise to develop in-house solutions with proprietary ML algorithms or to train the engines of pre-built solutions will become extremely difficult.
That’s because your typical software engineer isn’t necessarily a data scientist (and vice versa) even though they are uniquely skilled to learn and contribute significantly in this area. This scarcity of talent will also be one of the main software development challenges in 2019.
Recommendation: Start looking at the ‘off the shelf’ tools that can help you in running your business operations more efficiently and let you spend more time on strategy and new business development.
Blockchain solutions saw a major development in 2018 as companies in different industries looked for the ways to ensure that data can be trusted, especially when it came to management of distributed data.
Blockchain introduced a completely new way for enterprises to approach and manage data, but it also changed the way engineers write and sell software solutions.
In 2019, software engineers will be focused on building new solutions that leverage blockchain ledgers such as solutions to enable micropayments, e-voting, and smart contracts. Basically, in any area where there are privacy concerns and where anonymity is required.
Recommendation: Not every problem benefits from blockchain, but there are some areas that are a very good fit like supply chain management, healthcare, energy and digital identity.
Progressive Web Apps
Progressive Web Apps are getting to a point where you almost can’t tell them apart from native apps built specifically for Android or iOS.
Companies are increasingly taking this approach because of the significant savings in app development time and effort i.e. no need to develop separate apps for different mobile platforms. They only need to develop one version of the app and make it accessible to all potential users, no matter the device they’re using.
We wrote an article about why mobile apps will not matter in the future and why they’d be mostly replaced by PWAs.
Recommendation: Mobile first approach has been a need for years already, PWAs are the next step to make it easier for apps to run on different devices. Still, there are few things missing (especially on iOS), but apps that do not require background processing or access to hardware sensors are a perfect use case.
If we look at the above 5 software architecture and engineering trends for 2019, it’s safe to say there’s nothing but opportunity ahead to create resilient and scalable applications for your business, while spending less time on setting up and configuring infrastructure and more time focusing on the solution for the problem you are solving.
Advancements in ML services allow us to create trainable systems that will learn and adapt and become better at interacting with the customer, while technology like PWA will make technology more accessible to everyone on any device.