What technologies does QBSW use and how does it keep track of all the news that tech giants are coming up with? Read the interview with our CTO Dalibor Rak, where he talks about the ways we use technologies in our company.
How do you deal with the technology stack of your potential clients?
As we deal with various sectors such as finance, telecommunications or energy, our clients include large corporations, as well as medium-sized and small businesses. The approach to technology adaptation varies significantly.
With corporations, it is necessary to adapt to the technologies that the client uses for their solutions in the shortest time possible. Right team structure on our side plays a crucial role in this process. So does the timing of educational activities in cooperation with the client. We learn our client’s expectations through practical workshops, where we go through the client’s expectations and verify the possible ways of fulfilling their requirements in practice. To achieve the highest quality possible, we use both automated and personal code reviews.
For smaller projects, where the customer usually doesn’t have the necessary technological knowledge, we propose the complete technology stack. In these cases, we try to take into account the complexity of the solution, its expected flexibility, scalability and security aspect. While choosing the right technologies, we always care about following the standards that will simplify the implementation.
What are the biggest challenges that you face while building new teams?
Employees today have completely new expectations (notably the possibility to work from home, work with new technologies, have flexible working hours). This also applies to customers who require flexible team performance during the various project phases.
To cooperate correctly and fulfil the expectations of both parties, mutual trust and the identification of the client’s targets is essential. The clients often don’t have complete and correct ideas about difficulties of carrying out activities, that is why it is our goal to cooperate with the client closely and if possible, make them a part of the team so they can directly influence the execution of the project.
How do you make sure your project teams are flexible enough?
Nowadays, team flexibility is one of the key aspects that make the difference between successful and unsuccessful project realisation. In our teams, we achieve flexibility by adequately allocating the responsibilities among the team members and also by sharing human resources across multiple projects.
Each team has a set of permanent members who maintain the product and also keep the project know-how. Restarting a project and learning the information about a project on hold takes a lot of time and effort, and we try to prevent this.
Which technologies help boost productivity of your teams?
Tools that automate the non-creative activities of the development process are becoming increasingly important nowadays. These include the implementation of continuous deployment, automated application deployment to various environments with the help of Atlassian Bamboo or Gitlab or customisation of processes through BPM frameworks such as Camunda. Also, the use of frameworks that cover predefined modules with implemented non-functional requirements for the supplied solution such as Spring boot.
How do you keep up with the news coming from the tech giants every day?
It is not possible for anyone to track all the news. However, we need to keep track of the news connected to the projects we deliver to our customers. This is why in every team we create a space for the realisation of PoC (proof of concept) demonstrations, where we test the application of new technologies into a specific project. In addition to the proactive project changes, we also frequently organise internal workshops about the latest technologies emerging in the world of software development. Here, the presenter explains the principles and demonstrates their use on real-life examples.
What technology trends do you follow?
In addition to our core technologies Java, Spring and the web frameworks Angular and React, we also work with other technologies that we use to cover the specific needs of our clients.
We are currently working on developing our advanced analysis skills and prediction abilities as well as creating new facts through machine learning based on big data that we collect in our systems. Our goal is to bring elements of AI into our solutions that will help us analyse the existing data and get a new view of the values that are important for our customers.
To fulfil the requirements of our clients, we are developing our skills in the area of RPA (Robotic Process Automation) application development (for example with the help of the UI path tool) and using the Appian low code platform.