Gofore projects exposed

So, what kind of projects do you do at Gofore? What technologies are you using? How are your projects organised? These are the questions I often hear when interviewing, or when in discussions with customers or colleagues from other companies. Sometimes even when travelling on early morning buses but never on the dance floor.

These are actually quite difficult questions to answer, as there are so many projects and they are all so different. Our company is also growing very fast and there tends to be new and exciting things happening every day. To shed light on these questions, at Gofore we conducted our second ‘project radar’ this spring. Gofore Project Radar is loosely based on technology radars published by various companies, but instead of discussing what kind of technologies are currently of interest, our approach is concentrated more on what kind of software projects we actually do and how we do them. It is worth pointing out, that even though this radar concerns only our software projects, at Gofore we work in a broad field all the way from designing services to leading digital transformation.

Our first radar was conducted in the autumn of 2016, this spring we tweaked it a bit and had another round. The main purpose of the radar is to show our own employees what kind of software projects we do, but it also serves as an interesting overview of our company to anyone who is interested. If you are seeking a developer job, technologies listed on the radar are the ones you should feel most comfortable with. If you are one of our customers or just interested in general, the radar gives you a nice perspective on what is going on in the field. In this blog, I am going to discuss some of the most interesting findings of our latest project radar survey.

There’s a new kid on the front-end block, again!

The last few years haven’t been exactly a walk in the park for people dealing with front-end technologies. Huge demand for creating ever more usable, architecturally solid and eloquent solutions has led to a situation where new frameworks (that promise to change everything) tend to emerge during your coffee break. However, according to our radar, it seems that two technologies with different approaches, React and Angular, are the survivors of this battle. If you are interested, you can read more about comparing these two approaches from our earlier blogs.

Currently, both React and Angular seem to be popular choices in our projects. In our radar survey, Facebook-backed React, with or without state handling frameworks, such as Redux, is considered the most popular front-end technology. It is being used in over 40% of our projects and 46% would choose it if the project was written again. Percentages preferring React are quite substantial, even though there is a small decline from 2016. Back then an even larger portion preferred React as the number one choice.

Angular is a solid player in the field, although it’s clearly less used compared to React. Google’s decision to write a new version of the framework without backwards compatibility to older AngularJS versions may be one of the reasons why Angular is now used less in our projects. There is a lot of older AngularJS code in the world and that is also the case in some of our projects. Despite these drawbacks, new Angular is still a somewhat popular choice: almost 20% of our respondents would prefer it.

Nevertheless, in the front-end developers’ world there is always something new and shiny coming around the corner. This time it is Vue.js, which seems, again, to be a little better and nicer than its competitors. Vue.js did not show on our radar at all in 2016, but now almost 15% of all the respondents would choose it for front-end work. Déjà vu!

Java, old chum

To me Java is like country music. It seems to never go out of style (if it ever was in style), and you are never quite sure if you like it or hate it. A few years ago, my opinion was that Java as a language will eventually disappear and more sophisticated, yet JVM-based, languages – such as Scala or Clojure – will surely replace it. According to our radar that is, well, not happening, at least not any time soon. Java still has the clear majority and no other language comes even close. Interestingly, Java is also considered a favourite technology for back-end development, should the project be written from scratch. Maybe it is because of the big improvements made with the advent of Java 8. Although Java is still very verbose and lacks some of the coolest features of its rivals, the language is steadily improving.

That said, the biggest reason for choosing Java is most likely in the customer requirements. In my experience, many organisations tend to safeguard their software development by favouring more mature and established languages. Companies are afraid that choosing less popular (yet promising) technology can turn out to be a very bad decision later, if there is, for instance a lack of proficient developers in the market or the community loses interest.

On the other hand, choosing the right tool for the problem can really turn the tables in development efficiency and thus time-to-market.  A few years back, a somewhat bizarre idea of using an open-source Javascript engine (originally developed for the Google Chrome browser) for server-side development was considered categorically horrible by some folks. Today, using Javascript and Node.js for back-end development is not only a valid but, the second biggest choice in our projects (16%) which basically means you do not always have to listen to Dolly Parton.

As the size of our company is increasing, we have also expanded our technology selection further to fulfil the needs of our customers. Since our last project radar, one particularly growing technology in our projects has been .NET Framework. Now, C# is used roughly in every sixth project for back-end development, which is quite an improvement on 3% in 2016. This does not mean that there have been technology switches from other alternatives in our customer projects, but rather many new projects are starting with Microsoft stack.

Lastly, Python has been, and still is a very viable option. It is often being used, for example, in our data-science related projects along with R. Several projects also use Python as a complementary choice for specific purposes.

Mom, those big boys are putting containers everywhere!

One pleasant result of our survey was that cloud services are being used in one way or another on 60% of our projects. This is great news for everyone (except traditional service providers) as cloud platforms often bring better ‘bang for the buck’ and enable a more dynamic environment for software development. This does not necessarily mean that the actual production environments are in the cloud. Instead, many still use more traditional service providers in parallel with cloud services, such as Amazon Web Services or Azure. Often, especially in public sector projects, legislation enforces that actual customer data remains within country borders. Even in these cases there are hybrid solutions that benefit from both cloud and traditional service provider offerings. This can be a great alternative for tackling, for example, cost effective load balancing and still maintaining customer data on private servers.

Things that go great together with cloud infrastructure are software container platforms. They are also becoming a more common alternative in our projects and the single biggest tool in this field is Docker. Using container technologies allows teams to handle development in better isolation of infrastructural issues and foster development and operation synergies. Over half of our respondents were at least assessing Docker and almost 40% were using it in production. However, it is not for everyone – one third was not considering it now and some 16% decided to put it on hold for now.

Where do we go from here?

Having a company-wide understanding of what is really going on in our software projects, what technologies we know well, and what the biggest trends are is essential. Gofore Project Radar is one way of gathering and sharing this information and our intention is to develop this even further. In the future, we aim to have even more accurate and up-to-date results and we would like to share these in public as well. We will get back to this subject in the autumn, but in the meantime let me ask: how is your project radar looking?