In the software and tech industry, everything goes so fast that you can often feel left behind. Trends change, new methods are used and you always have to try and stay updated. So here’s a short article about a few tech trends in software architecture & development in 2017 and what has had a huge impact on software trends over the past years: data.

Latest tech trends for the year

Big data trends

Big data implies a big volume of data that a business gets on a daily basis, usually online and in the cloud. The volume is usually extremely large and complex to analyse, raw and unstructured. In the past few years, it has become a word on many people’s mouth, one of the most important tech trends 2016. In fact, with the increase of devices we use, the amount of data we have has become incredible and analysing it the right way could provide us huge amounts of useful information. Specially for organisations.

The IoT data

The Internet of Things has just started and is here to stay. In 2016, around 6,5 billion devices were connected to the internet and more devices will be connected in the years to come, and that, in almost all the industries. This means more data generated and therefore more tools to explore the data and get more insights.

If you’re interested in reading more about IoT projects with a strong impact, here’s an article I recommend to read.

Business intelligence trends

As the majority has become conscious of the possibilities that big data could provide us, companies have started storing their data but without really knowing what to do with it. And we have finally reached the period where we are trying our best to make good use of it, through analytics. And here comes what we call Business Intelligence or BI.

As mentioned earlier, having a huge amount of data is good but obviously analyzing it is the important part. Business Intelligence has a big variety of tools, apps & methodologies that helps in the analysis of the data. It’s a data-driven decision-making. It’s about generating, analysing, and visualizing of data to inform and facilitate business management. In fact reports, dashboards and data visualizations are done and all of that helps improving the decision making process of companies. Mainly because the processes are optimised, the efficiency is improved and the organisation gets a competitive advantage.

So yes, BI is about making managerial decisions. But when we talk about analytics, it’s more about asking questions: Are certain products selling better in certain locations?

If you’re interest in knowing more about how big data affects your business, here’s a good read.

Data discovery/virtualisation

Data discovery is a process where you “visually navigate” data to detect patterns. The idea is to fully take advantage of the data to take better decisions as well as to optimise business processes. To do so, data is getting more accessible, and analysing it is getting much more visual. Visualisation actually makes it easier to see and spot trends and special events. More and more we find ready to use guided advanced analytics functions that provide statistical information regarding the data.

Self service BI

People using BI tools are requiring more liberty, flexibility & responsibilities when it comes to reporting and analysis. Self-service BI tools empowers the users, enabling them to edit reports and dashboards, adapting them to their particular needs. Organisations are pushing to enable the BI users to build & design their own insights and to have access to the information at anytime and anywhere. This year, the users will more and more satisfy their own information needs.

Master data/data quality management

Data driven decisions are great… if the data used is correct. Organizations are more and more aware that a dashboard that looks great is not enough. If you have errors in the data you use, you won’t get too far. In 2017, data quality has become a must.

Data mining

What about data mining? Let’s say that it’s finding answers you didn’t even know you were looking for. In fact, when having so much information it’s difficult to get all the conclusions you could get. You can often end up skipping a few key points that would be of great help. Data mining is when we go through it all to try and find what has been overlooked. It’s the practice of searching in big data to find some patterns and trends using algorithms that help segment the data.

Artificial intelligence

When we talk about artificial intelligence, we talk about the machines that are able to execute what we humans, usually execute by complex intelligence. By 2018, it is predicted that more than half of all large organizations will be using advanced analytics and algorithms to be more competitive and the science that will be at the center of those algorithms is artificial intelligence. We are building machines that are more and more able to understand the data and that can do better predictions.

Tech trends: some software development trends

Software industry trends: Programming languages

TypeScript / JavaScript

JavaScript is one of the world’s most popular and powerful programming languages and is often used to make web page more interactive by adding some effects to pages, to create some games, animations, drop down menus and get great control over the web interface. This programming language is basically great for front end. JavaScript is used by 88% of all websites.

This year, TypeScript moved up the GitHub rankings. It is great because it compiles to any browser and any environment easily. It’s also very easy to code & learn because everything is a class or component. As it maintains JavaScript properties, it’s actually quite easy to create large JavaScript applications with TypeScript, while it provides you with some of the benefits of statically-typed languages.

Java 9 will be out soon and we can’t stop hearing about it! Java is an open source language and is considered to be one of the most adopted programming languages, worldwide. One of the reasons why it is so popular is its readability and simplicity. It was also designed to be able to run it on any device. It is therefore for software development for computers, smartphones and even smart TV’s and is specially used to develop native Android apps.

Kotlin is a programming language that was created by the same person that created IntelliJ IDEA and is fully supported by Google as a “first-class” language for Android. In its structure, Kotlin is very similar to Java; is solves the same issues, it’s object oriented and statically typed. But what’s great is that Kotlin has a syntax that is cleaner, it adds many features and has some ideas coming from functional programming.

Swift is a programming language that was developed by Apple. It’s a general-purpose, multi-paradigm, compiled programming language that is mainly used for iOS, macOS, watchOS, tvOS, and Linux. Swift has been growing a lot in the past years, it adopts safe programming patterns and adds modern features which makes programming easy & flexible. Writing code is Swift is very interactive and you can quickly get a grasp of it.

When object-oriented meets functional. Scala gives you this great opportunity to have the best of both worlds. Construct elegant class hierarchies for maximum code reuse and extensibility, implement their behavior using higher-order functions. There are very few Scala experts and the demand for Scala developers is growing!

Software industry trends: Frameworks

This JavaScript framework is maintained by Google and is used for building powerful web apps. It is open source and so completely free. It is used in Single Page Application projects and extends HTML DOM, making it more responsive to user actions.

Angular 4 is written with typeScript 2.1 helping many developers when it comes to building smaller applications. The smaller and faster version comes with changes that reduce the size of the code that is generated by more that half!

Although it’s a library, I include React.Js here with the frameworks because I consider it relevant. Quite new, it has become more and more popular. What we love about React is that it creates a virtual version of the web page and when you request to do some changes via that virtual DOM, it compares the new output with the standard one and just updates what needs to be updated! React is mainly for building user interfaces and is very fast and very practical because it refreshes automatically when there is new data available.

Spring is the standard used for building enterprise applications in Java and is actually one of the most mature Java web frameworks. What’s nice also about Spring is that when you use the Spring MVC you end up getting other Spring frameworks that are included.

Express.js is a very complete, minimal and flexible node.js web application framework. It provides a strong set of features for building big and scalable REST API’s as well as for building single and multi-page, and hybrid web applications.

Software architecture trends

Microservices

When we talk about Microservice architecture, we are talking about a particular way of designing software applications; services that are independently deployable and much more scalable. Each one is running in its own process and is built around business capabilities. and independently deployable by fully automated deployment machinery. Each service can be written in different programming languages and use different data storage technologies, it means that they can also be managed by different teams.

There are many advantages to using this type of architecture:

Each microservice is small and it is therefore easier for the developer to understand

As mentioned before, each service can be deployed independently so it is easier to deploy new versions of services on a regular base

It is much more scalable and each service’s management can be assigned to a different team and can be worked on at different times and independently

If you’re interested, you can read about the benefits & few examples of Microservices architecture.

Docker is an open source platform for developers to use. The idea is to create, deploy, and run applications, on laptops, data center, or on the cloud, by using containers. Why is using containers great? Because it enable us to package an app with all the parts that is needs and then ship it all as one and this means that the app will run on any Linux machine, even if it has customized settings. Using Docker increases performance and reduces the size of the app.

You can learn more about the benefits of using docker here.

Reactive programming

Reactive programming is not new but due to a very poor documentation, it wasn’t well known or used. But more and more, it has been gaining popularity with the growth of scalable & interactive architectures. Reactive programming is basically based on data flows and the propagation of change.

Resilient software design

Many confuse resilient systems to failsafe systems. But actually, resilient systems don’t fail, they recover back to the original state they were in. Based on a survey done to developers, we can that resilient software design gained popularity with 60% of the respondents interested in it compared to 54.5% last year.

Conclusion

Those are not the only tech trends in 2018 in the software industry, but they are the main ones we talk about in our environment here at Apiumhub. It’s an environment that changes and grows quite fast and it’s important to stay up to date to not be left behind. If you have any other tech trends you think could be a nice add up to the list don’t hesitate to add it in the comment section!

If you have an exciting project and you need help with software development or software architecture, let us know! We would be happy to know more about it!

If you liked this article about tech trends, you might like…